{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Location.DescribeTracker
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves the tracker resource details.
module Amazonka.Location.DescribeTracker
  ( -- * Creating a Request
    DescribeTracker (..),
    newDescribeTracker,

    -- * Request Lenses
    describeTracker_trackerName,

    -- * Destructuring the Response
    DescribeTrackerResponse (..),
    newDescribeTrackerResponse,

    -- * Response Lenses
    describeTrackerResponse_kmsKeyId,
    describeTrackerResponse_positionFiltering,
    describeTrackerResponse_pricingPlan,
    describeTrackerResponse_pricingPlanDataSource,
    describeTrackerResponse_tags,
    describeTrackerResponse_httpStatus,
    describeTrackerResponse_createTime,
    describeTrackerResponse_description,
    describeTrackerResponse_trackerArn,
    describeTrackerResponse_trackerName,
    describeTrackerResponse_updateTime,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Location.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeTracker' smart constructor.
data DescribeTracker = DescribeTracker'
  { -- | The name of the tracker resource.
    DescribeTracker -> Text
trackerName :: Prelude.Text
  }
  deriving (DescribeTracker -> DescribeTracker -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTracker -> DescribeTracker -> Bool
$c/= :: DescribeTracker -> DescribeTracker -> Bool
== :: DescribeTracker -> DescribeTracker -> Bool
$c== :: DescribeTracker -> DescribeTracker -> Bool
Prelude.Eq, ReadPrec [DescribeTracker]
ReadPrec DescribeTracker
Int -> ReadS DescribeTracker
ReadS [DescribeTracker]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTracker]
$creadListPrec :: ReadPrec [DescribeTracker]
readPrec :: ReadPrec DescribeTracker
$creadPrec :: ReadPrec DescribeTracker
readList :: ReadS [DescribeTracker]
$creadList :: ReadS [DescribeTracker]
readsPrec :: Int -> ReadS DescribeTracker
$creadsPrec :: Int -> ReadS DescribeTracker
Prelude.Read, Int -> DescribeTracker -> ShowS
[DescribeTracker] -> ShowS
DescribeTracker -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTracker] -> ShowS
$cshowList :: [DescribeTracker] -> ShowS
show :: DescribeTracker -> String
$cshow :: DescribeTracker -> String
showsPrec :: Int -> DescribeTracker -> ShowS
$cshowsPrec :: Int -> DescribeTracker -> ShowS
Prelude.Show, forall x. Rep DescribeTracker x -> DescribeTracker
forall x. DescribeTracker -> Rep DescribeTracker x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTracker x -> DescribeTracker
$cfrom :: forall x. DescribeTracker -> Rep DescribeTracker x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTracker' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'trackerName', 'describeTracker_trackerName' - The name of the tracker resource.
newDescribeTracker ::
  -- | 'trackerName'
  Prelude.Text ->
  DescribeTracker
newDescribeTracker :: Text -> DescribeTracker
newDescribeTracker Text
pTrackerName_ =
  DescribeTracker' {$sel:trackerName:DescribeTracker' :: Text
trackerName = Text
pTrackerName_}

-- | The name of the tracker resource.
describeTracker_trackerName :: Lens.Lens' DescribeTracker Prelude.Text
describeTracker_trackerName :: Lens' DescribeTracker Text
describeTracker_trackerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTracker' {Text
trackerName :: Text
$sel:trackerName:DescribeTracker' :: DescribeTracker -> Text
trackerName} -> Text
trackerName) (\s :: DescribeTracker
s@DescribeTracker' {} Text
a -> DescribeTracker
s {$sel:trackerName:DescribeTracker' :: Text
trackerName = Text
a} :: DescribeTracker)

instance Core.AWSRequest DescribeTracker where
  type
    AWSResponse DescribeTracker =
      DescribeTrackerResponse
  request :: (Service -> Service) -> DescribeTracker -> Request DescribeTracker
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeTracker
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeTracker)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe PositionFiltering
-> Maybe PricingPlan
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> ISO8601
-> Text
-> Text
-> Text
-> ISO8601
-> DescribeTrackerResponse
DescribeTrackerResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"KmsKeyId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"PositionFiltering")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"PricingPlan")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"PricingPlanDataSource")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"CreateTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"TrackerArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"TrackerName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"UpdateTime")
      )

instance Prelude.Hashable DescribeTracker where
  hashWithSalt :: Int -> DescribeTracker -> Int
hashWithSalt Int
_salt DescribeTracker' {Text
trackerName :: Text
$sel:trackerName:DescribeTracker' :: DescribeTracker -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
trackerName

instance Prelude.NFData DescribeTracker where
  rnf :: DescribeTracker -> ()
rnf DescribeTracker' {Text
trackerName :: Text
$sel:trackerName:DescribeTracker' :: DescribeTracker -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
trackerName

instance Data.ToHeaders DescribeTracker where
  toHeaders :: DescribeTracker -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DescribeTracker where
  toPath :: DescribeTracker -> ByteString
toPath DescribeTracker' {Text
trackerName :: Text
$sel:trackerName:DescribeTracker' :: DescribeTracker -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/tracking/v0/trackers/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
trackerName]

instance Data.ToQuery DescribeTracker where
  toQuery :: DescribeTracker -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeTrackerResponse' smart constructor.
data DescribeTrackerResponse = DescribeTrackerResponse'
  { -- | A key identifier for an
    -- <https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html AWS KMS customer managed key>
    -- assigned to the Amazon Location resource.
    DescribeTrackerResponse -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | The position filtering method of the tracker resource.
    DescribeTrackerResponse -> Maybe PositionFiltering
positionFiltering :: Prelude.Maybe PositionFiltering,
    -- | Always returns @RequestBasedUsage@.
    DescribeTrackerResponse -> Maybe PricingPlan
pricingPlan :: Prelude.Maybe PricingPlan,
    -- | No longer used. Always returns an empty string.
    DescribeTrackerResponse -> Maybe Text
pricingPlanDataSource :: Prelude.Maybe Prelude.Text,
    -- | The tags associated with the tracker resource.
    DescribeTrackerResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeTrackerResponse -> Int
httpStatus :: Prelude.Int,
    -- | The timestamp for when the tracker resource was created in
    -- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
    -- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
    DescribeTrackerResponse -> ISO8601
createTime :: Data.ISO8601,
    -- | The optional description for the tracker resource.
    DescribeTrackerResponse -> Text
description :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) for the tracker resource. Used when you
    -- need to specify a resource across all AWS.
    --
    -- -   Format example:
    --     @arn:aws:geo:region:account-id:tracker\/ExampleTracker@
    DescribeTrackerResponse -> Text
trackerArn :: Prelude.Text,
    -- | The name of the tracker resource.
    DescribeTrackerResponse -> Text
trackerName :: Prelude.Text,
    -- | The timestamp for when the tracker resource was last updated in
    -- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
    -- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
    DescribeTrackerResponse -> ISO8601
updateTime :: Data.ISO8601
  }
  deriving (DescribeTrackerResponse -> DescribeTrackerResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTrackerResponse -> DescribeTrackerResponse -> Bool
$c/= :: DescribeTrackerResponse -> DescribeTrackerResponse -> Bool
== :: DescribeTrackerResponse -> DescribeTrackerResponse -> Bool
$c== :: DescribeTrackerResponse -> DescribeTrackerResponse -> Bool
Prelude.Eq, ReadPrec [DescribeTrackerResponse]
ReadPrec DescribeTrackerResponse
Int -> ReadS DescribeTrackerResponse
ReadS [DescribeTrackerResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTrackerResponse]
$creadListPrec :: ReadPrec [DescribeTrackerResponse]
readPrec :: ReadPrec DescribeTrackerResponse
$creadPrec :: ReadPrec DescribeTrackerResponse
readList :: ReadS [DescribeTrackerResponse]
$creadList :: ReadS [DescribeTrackerResponse]
readsPrec :: Int -> ReadS DescribeTrackerResponse
$creadsPrec :: Int -> ReadS DescribeTrackerResponse
Prelude.Read, Int -> DescribeTrackerResponse -> ShowS
[DescribeTrackerResponse] -> ShowS
DescribeTrackerResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTrackerResponse] -> ShowS
$cshowList :: [DescribeTrackerResponse] -> ShowS
show :: DescribeTrackerResponse -> String
$cshow :: DescribeTrackerResponse -> String
showsPrec :: Int -> DescribeTrackerResponse -> ShowS
$cshowsPrec :: Int -> DescribeTrackerResponse -> ShowS
Prelude.Show, forall x. Rep DescribeTrackerResponse x -> DescribeTrackerResponse
forall x. DescribeTrackerResponse -> Rep DescribeTrackerResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTrackerResponse x -> DescribeTrackerResponse
$cfrom :: forall x. DescribeTrackerResponse -> Rep DescribeTrackerResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTrackerResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'kmsKeyId', 'describeTrackerResponse_kmsKeyId' - A key identifier for an
-- <https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html AWS KMS customer managed key>
-- assigned to the Amazon Location resource.
--
-- 'positionFiltering', 'describeTrackerResponse_positionFiltering' - The position filtering method of the tracker resource.
--
-- 'pricingPlan', 'describeTrackerResponse_pricingPlan' - Always returns @RequestBasedUsage@.
--
-- 'pricingPlanDataSource', 'describeTrackerResponse_pricingPlanDataSource' - No longer used. Always returns an empty string.
--
-- 'tags', 'describeTrackerResponse_tags' - The tags associated with the tracker resource.
--
-- 'httpStatus', 'describeTrackerResponse_httpStatus' - The response's http status code.
--
-- 'createTime', 'describeTrackerResponse_createTime' - The timestamp for when the tracker resource was created in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
-- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
--
-- 'description', 'describeTrackerResponse_description' - The optional description for the tracker resource.
--
-- 'trackerArn', 'describeTrackerResponse_trackerArn' - The Amazon Resource Name (ARN) for the tracker resource. Used when you
-- need to specify a resource across all AWS.
--
-- -   Format example:
--     @arn:aws:geo:region:account-id:tracker\/ExampleTracker@
--
-- 'trackerName', 'describeTrackerResponse_trackerName' - The name of the tracker resource.
--
-- 'updateTime', 'describeTrackerResponse_updateTime' - The timestamp for when the tracker resource was last updated in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
-- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
newDescribeTrackerResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'createTime'
  Prelude.UTCTime ->
  -- | 'description'
  Prelude.Text ->
  -- | 'trackerArn'
  Prelude.Text ->
  -- | 'trackerName'
  Prelude.Text ->
  -- | 'updateTime'
  Prelude.UTCTime ->
  DescribeTrackerResponse
newDescribeTrackerResponse :: Int
-> UTCTime
-> Text
-> Text
-> Text
-> UTCTime
-> DescribeTrackerResponse
newDescribeTrackerResponse
  Int
pHttpStatus_
  UTCTime
pCreateTime_
  Text
pDescription_
  Text
pTrackerArn_
  Text
pTrackerName_
  UTCTime
pUpdateTime_ =
    DescribeTrackerResponse'
      { $sel:kmsKeyId:DescribeTrackerResponse' :: Maybe Text
kmsKeyId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:positionFiltering:DescribeTrackerResponse' :: Maybe PositionFiltering
positionFiltering = forall a. Maybe a
Prelude.Nothing,
        $sel:pricingPlan:DescribeTrackerResponse' :: Maybe PricingPlan
pricingPlan = forall a. Maybe a
Prelude.Nothing,
        $sel:pricingPlanDataSource:DescribeTrackerResponse' :: Maybe Text
pricingPlanDataSource = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:DescribeTrackerResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeTrackerResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:createTime:DescribeTrackerResponse' :: ISO8601
createTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreateTime_,
        $sel:description:DescribeTrackerResponse' :: Text
description = Text
pDescription_,
        $sel:trackerArn:DescribeTrackerResponse' :: Text
trackerArn = Text
pTrackerArn_,
        $sel:trackerName:DescribeTrackerResponse' :: Text
trackerName = Text
pTrackerName_,
        $sel:updateTime:DescribeTrackerResponse' :: ISO8601
updateTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pUpdateTime_
      }

-- | A key identifier for an
-- <https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html AWS KMS customer managed key>
-- assigned to the Amazon Location resource.
describeTrackerResponse_kmsKeyId :: Lens.Lens' DescribeTrackerResponse (Prelude.Maybe Prelude.Text)
describeTrackerResponse_kmsKeyId :: Lens' DescribeTrackerResponse (Maybe Text)
describeTrackerResponse_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Maybe Text
a -> DescribeTrackerResponse
s {$sel:kmsKeyId:DescribeTrackerResponse' :: Maybe Text
kmsKeyId = Maybe Text
a} :: DescribeTrackerResponse)

-- | The position filtering method of the tracker resource.
describeTrackerResponse_positionFiltering :: Lens.Lens' DescribeTrackerResponse (Prelude.Maybe PositionFiltering)
describeTrackerResponse_positionFiltering :: Lens' DescribeTrackerResponse (Maybe PositionFiltering)
describeTrackerResponse_positionFiltering = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Maybe PositionFiltering
positionFiltering :: Maybe PositionFiltering
$sel:positionFiltering:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe PositionFiltering
positionFiltering} -> Maybe PositionFiltering
positionFiltering) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Maybe PositionFiltering
a -> DescribeTrackerResponse
s {$sel:positionFiltering:DescribeTrackerResponse' :: Maybe PositionFiltering
positionFiltering = Maybe PositionFiltering
a} :: DescribeTrackerResponse)

-- | Always returns @RequestBasedUsage@.
describeTrackerResponse_pricingPlan :: Lens.Lens' DescribeTrackerResponse (Prelude.Maybe PricingPlan)
describeTrackerResponse_pricingPlan :: Lens' DescribeTrackerResponse (Maybe PricingPlan)
describeTrackerResponse_pricingPlan = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Maybe PricingPlan
pricingPlan :: Maybe PricingPlan
$sel:pricingPlan:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe PricingPlan
pricingPlan} -> Maybe PricingPlan
pricingPlan) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Maybe PricingPlan
a -> DescribeTrackerResponse
s {$sel:pricingPlan:DescribeTrackerResponse' :: Maybe PricingPlan
pricingPlan = Maybe PricingPlan
a} :: DescribeTrackerResponse)

-- | No longer used. Always returns an empty string.
describeTrackerResponse_pricingPlanDataSource :: Lens.Lens' DescribeTrackerResponse (Prelude.Maybe Prelude.Text)
describeTrackerResponse_pricingPlanDataSource :: Lens' DescribeTrackerResponse (Maybe Text)
describeTrackerResponse_pricingPlanDataSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Maybe Text
pricingPlanDataSource :: Maybe Text
$sel:pricingPlanDataSource:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe Text
pricingPlanDataSource} -> Maybe Text
pricingPlanDataSource) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Maybe Text
a -> DescribeTrackerResponse
s {$sel:pricingPlanDataSource:DescribeTrackerResponse' :: Maybe Text
pricingPlanDataSource = Maybe Text
a} :: DescribeTrackerResponse)

-- | The tags associated with the tracker resource.
describeTrackerResponse_tags :: Lens.Lens' DescribeTrackerResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeTrackerResponse_tags :: Lens' DescribeTrackerResponse (Maybe (HashMap Text Text))
describeTrackerResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Maybe (HashMap Text Text)
a -> DescribeTrackerResponse
s {$sel:tags:DescribeTrackerResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeTrackerResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The response's http status code.
describeTrackerResponse_httpStatus :: Lens.Lens' DescribeTrackerResponse Prelude.Int
describeTrackerResponse_httpStatus :: Lens' DescribeTrackerResponse Int
describeTrackerResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeTrackerResponse' :: DescribeTrackerResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Int
a -> DescribeTrackerResponse
s {$sel:httpStatus:DescribeTrackerResponse' :: Int
httpStatus = Int
a} :: DescribeTrackerResponse)

-- | The timestamp for when the tracker resource was created in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
-- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
describeTrackerResponse_createTime :: Lens.Lens' DescribeTrackerResponse Prelude.UTCTime
describeTrackerResponse_createTime :: Lens' DescribeTrackerResponse UTCTime
describeTrackerResponse_createTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {ISO8601
createTime :: ISO8601
$sel:createTime:DescribeTrackerResponse' :: DescribeTrackerResponse -> ISO8601
createTime} -> ISO8601
createTime) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} ISO8601
a -> DescribeTrackerResponse
s {$sel:createTime:DescribeTrackerResponse' :: ISO8601
createTime = ISO8601
a} :: DescribeTrackerResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The optional description for the tracker resource.
describeTrackerResponse_description :: Lens.Lens' DescribeTrackerResponse Prelude.Text
describeTrackerResponse_description :: Lens' DescribeTrackerResponse Text
describeTrackerResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Text
description :: Text
$sel:description:DescribeTrackerResponse' :: DescribeTrackerResponse -> Text
description} -> Text
description) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Text
a -> DescribeTrackerResponse
s {$sel:description:DescribeTrackerResponse' :: Text
description = Text
a} :: DescribeTrackerResponse)

-- | The Amazon Resource Name (ARN) for the tracker resource. Used when you
-- need to specify a resource across all AWS.
--
-- -   Format example:
--     @arn:aws:geo:region:account-id:tracker\/ExampleTracker@
describeTrackerResponse_trackerArn :: Lens.Lens' DescribeTrackerResponse Prelude.Text
describeTrackerResponse_trackerArn :: Lens' DescribeTrackerResponse Text
describeTrackerResponse_trackerArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Text
trackerArn :: Text
$sel:trackerArn:DescribeTrackerResponse' :: DescribeTrackerResponse -> Text
trackerArn} -> Text
trackerArn) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Text
a -> DescribeTrackerResponse
s {$sel:trackerArn:DescribeTrackerResponse' :: Text
trackerArn = Text
a} :: DescribeTrackerResponse)

-- | The name of the tracker resource.
describeTrackerResponse_trackerName :: Lens.Lens' DescribeTrackerResponse Prelude.Text
describeTrackerResponse_trackerName :: Lens' DescribeTrackerResponse Text
describeTrackerResponse_trackerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {Text
trackerName :: Text
$sel:trackerName:DescribeTrackerResponse' :: DescribeTrackerResponse -> Text
trackerName} -> Text
trackerName) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} Text
a -> DescribeTrackerResponse
s {$sel:trackerName:DescribeTrackerResponse' :: Text
trackerName = Text
a} :: DescribeTrackerResponse)

-- | The timestamp for when the tracker resource was last updated in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
-- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
describeTrackerResponse_updateTime :: Lens.Lens' DescribeTrackerResponse Prelude.UTCTime
describeTrackerResponse_updateTime :: Lens' DescribeTrackerResponse UTCTime
describeTrackerResponse_updateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrackerResponse' {ISO8601
updateTime :: ISO8601
$sel:updateTime:DescribeTrackerResponse' :: DescribeTrackerResponse -> ISO8601
updateTime} -> ISO8601
updateTime) (\s :: DescribeTrackerResponse
s@DescribeTrackerResponse' {} ISO8601
a -> DescribeTrackerResponse
s {$sel:updateTime:DescribeTrackerResponse' :: ISO8601
updateTime = ISO8601
a} :: DescribeTrackerResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Prelude.NFData DescribeTrackerResponse where
  rnf :: DescribeTrackerResponse -> ()
rnf DescribeTrackerResponse' {Int
Maybe Text
Maybe (HashMap Text Text)
Maybe PositionFiltering
Maybe PricingPlan
Text
ISO8601
updateTime :: ISO8601
trackerName :: Text
trackerArn :: Text
description :: Text
createTime :: ISO8601
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
pricingPlanDataSource :: Maybe Text
pricingPlan :: Maybe PricingPlan
positionFiltering :: Maybe PositionFiltering
kmsKeyId :: Maybe Text
$sel:updateTime:DescribeTrackerResponse' :: DescribeTrackerResponse -> ISO8601
$sel:trackerName:DescribeTrackerResponse' :: DescribeTrackerResponse -> Text
$sel:trackerArn:DescribeTrackerResponse' :: DescribeTrackerResponse -> Text
$sel:description:DescribeTrackerResponse' :: DescribeTrackerResponse -> Text
$sel:createTime:DescribeTrackerResponse' :: DescribeTrackerResponse -> ISO8601
$sel:httpStatus:DescribeTrackerResponse' :: DescribeTrackerResponse -> Int
$sel:tags:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe (HashMap Text Text)
$sel:pricingPlanDataSource:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe Text
$sel:pricingPlan:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe PricingPlan
$sel:positionFiltering:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe PositionFiltering
$sel:kmsKeyId:DescribeTrackerResponse' :: DescribeTrackerResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PositionFiltering
positionFiltering
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PricingPlan
pricingPlan
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
pricingPlanDataSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
createTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
trackerArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
trackerName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
updateTime