{-# 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.DescribeMap
-- 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 map resource details.
module Amazonka.Location.DescribeMap
  ( -- * Creating a Request
    DescribeMap (..),
    newDescribeMap,

    -- * Request Lenses
    describeMap_mapName,

    -- * Destructuring the Response
    DescribeMapResponse (..),
    newDescribeMapResponse,

    -- * Response Lenses
    describeMapResponse_pricingPlan,
    describeMapResponse_tags,
    describeMapResponse_httpStatus,
    describeMapResponse_configuration,
    describeMapResponse_createTime,
    describeMapResponse_dataSource,
    describeMapResponse_description,
    describeMapResponse_mapArn,
    describeMapResponse_mapName,
    describeMapResponse_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:/ 'newDescribeMap' smart constructor.
data DescribeMap = DescribeMap'
  { -- | The name of the map resource.
    DescribeMap -> Text
mapName :: Prelude.Text
  }
  deriving (DescribeMap -> DescribeMap -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMap -> DescribeMap -> Bool
$c/= :: DescribeMap -> DescribeMap -> Bool
== :: DescribeMap -> DescribeMap -> Bool
$c== :: DescribeMap -> DescribeMap -> Bool
Prelude.Eq, ReadPrec [DescribeMap]
ReadPrec DescribeMap
Int -> ReadS DescribeMap
ReadS [DescribeMap]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMap]
$creadListPrec :: ReadPrec [DescribeMap]
readPrec :: ReadPrec DescribeMap
$creadPrec :: ReadPrec DescribeMap
readList :: ReadS [DescribeMap]
$creadList :: ReadS [DescribeMap]
readsPrec :: Int -> ReadS DescribeMap
$creadsPrec :: Int -> ReadS DescribeMap
Prelude.Read, Int -> DescribeMap -> ShowS
[DescribeMap] -> ShowS
DescribeMap -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMap] -> ShowS
$cshowList :: [DescribeMap] -> ShowS
show :: DescribeMap -> String
$cshow :: DescribeMap -> String
showsPrec :: Int -> DescribeMap -> ShowS
$cshowsPrec :: Int -> DescribeMap -> ShowS
Prelude.Show, forall x. Rep DescribeMap x -> DescribeMap
forall x. DescribeMap -> Rep DescribeMap x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeMap x -> DescribeMap
$cfrom :: forall x. DescribeMap -> Rep DescribeMap x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMap' 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:
--
-- 'mapName', 'describeMap_mapName' - The name of the map resource.
newDescribeMap ::
  -- | 'mapName'
  Prelude.Text ->
  DescribeMap
newDescribeMap :: Text -> DescribeMap
newDescribeMap Text
pMapName_ =
  DescribeMap' {$sel:mapName:DescribeMap' :: Text
mapName = Text
pMapName_}

-- | The name of the map resource.
describeMap_mapName :: Lens.Lens' DescribeMap Prelude.Text
describeMap_mapName :: Lens' DescribeMap Text
describeMap_mapName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMap' {Text
mapName :: Text
$sel:mapName:DescribeMap' :: DescribeMap -> Text
mapName} -> Text
mapName) (\s :: DescribeMap
s@DescribeMap' {} Text
a -> DescribeMap
s {$sel:mapName:DescribeMap' :: Text
mapName = Text
a} :: DescribeMap)

instance Core.AWSRequest DescribeMap where
  type AWSResponse DescribeMap = DescribeMapResponse
  request :: (Service -> Service) -> DescribeMap -> Request DescribeMap
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 DescribeMap
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeMap)))
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 PricingPlan
-> Maybe (HashMap Text Text)
-> Int
-> MapConfiguration
-> ISO8601
-> Text
-> Text
-> Text
-> Text
-> ISO8601
-> DescribeMapResponse
DescribeMapResponse'
            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
"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
"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
"Configuration")
            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
"DataSource")
            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
"MapArn")
            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
"MapName")
            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 DescribeMap where
  hashWithSalt :: Int -> DescribeMap -> Int
hashWithSalt Int
_salt DescribeMap' {Text
mapName :: Text
$sel:mapName:DescribeMap' :: DescribeMap -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
mapName

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

instance Data.ToHeaders DescribeMap where
  toHeaders :: DescribeMap -> 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 DescribeMap where
  toPath :: DescribeMap -> ByteString
toPath DescribeMap' {Text
mapName :: Text
$sel:mapName:DescribeMap' :: DescribeMap -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/maps/v0/maps/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
mapName]

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

-- | /See:/ 'newDescribeMapResponse' smart constructor.
data DescribeMapResponse = DescribeMapResponse'
  { -- | No longer used. Always returns @RequestBasedUsage@.
    DescribeMapResponse -> Maybe PricingPlan
pricingPlan :: Prelude.Maybe PricingPlan,
    -- | Tags associated with the map resource.
    DescribeMapResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeMapResponse -> Int
httpStatus :: Prelude.Int,
    -- | Specifies the map tile style selected from a partner data provider.
    DescribeMapResponse -> MapConfiguration
configuration :: MapConfiguration,
    -- | The timestamp for when the map resource was created in
    -- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
    -- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
    DescribeMapResponse -> ISO8601
createTime :: Data.ISO8601,
    -- | Specifies the data provider for the associated map tiles.
    DescribeMapResponse -> Text
dataSource :: Prelude.Text,
    -- | The optional description for the map resource.
    DescribeMapResponse -> Text
description :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) for the map resource. Used to specify a
    -- resource across all AWS.
    --
    -- -   Format example: @arn:aws:geo:region:account-id:map\/ExampleMap@
    DescribeMapResponse -> Text
mapArn :: Prelude.Text,
    -- | The map style selected from an available provider.
    DescribeMapResponse -> Text
mapName :: Prelude.Text,
    -- | The timestamp for when the map resource was last update in
    -- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
    -- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
    DescribeMapResponse -> ISO8601
updateTime :: Data.ISO8601
  }
  deriving (DescribeMapResponse -> DescribeMapResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeMapResponse -> DescribeMapResponse -> Bool
$c/= :: DescribeMapResponse -> DescribeMapResponse -> Bool
== :: DescribeMapResponse -> DescribeMapResponse -> Bool
$c== :: DescribeMapResponse -> DescribeMapResponse -> Bool
Prelude.Eq, ReadPrec [DescribeMapResponse]
ReadPrec DescribeMapResponse
Int -> ReadS DescribeMapResponse
ReadS [DescribeMapResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeMapResponse]
$creadListPrec :: ReadPrec [DescribeMapResponse]
readPrec :: ReadPrec DescribeMapResponse
$creadPrec :: ReadPrec DescribeMapResponse
readList :: ReadS [DescribeMapResponse]
$creadList :: ReadS [DescribeMapResponse]
readsPrec :: Int -> ReadS DescribeMapResponse
$creadsPrec :: Int -> ReadS DescribeMapResponse
Prelude.Read, Int -> DescribeMapResponse -> ShowS
[DescribeMapResponse] -> ShowS
DescribeMapResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeMapResponse] -> ShowS
$cshowList :: [DescribeMapResponse] -> ShowS
show :: DescribeMapResponse -> String
$cshow :: DescribeMapResponse -> String
showsPrec :: Int -> DescribeMapResponse -> ShowS
$cshowsPrec :: Int -> DescribeMapResponse -> ShowS
Prelude.Show, forall x. Rep DescribeMapResponse x -> DescribeMapResponse
forall x. DescribeMapResponse -> Rep DescribeMapResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeMapResponse x -> DescribeMapResponse
$cfrom :: forall x. DescribeMapResponse -> Rep DescribeMapResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeMapResponse' 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:
--
-- 'pricingPlan', 'describeMapResponse_pricingPlan' - No longer used. Always returns @RequestBasedUsage@.
--
-- 'tags', 'describeMapResponse_tags' - Tags associated with the map resource.
--
-- 'httpStatus', 'describeMapResponse_httpStatus' - The response's http status code.
--
-- 'configuration', 'describeMapResponse_configuration' - Specifies the map tile style selected from a partner data provider.
--
-- 'createTime', 'describeMapResponse_createTime' - The timestamp for when the map resource was created in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
-- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
--
-- 'dataSource', 'describeMapResponse_dataSource' - Specifies the data provider for the associated map tiles.
--
-- 'description', 'describeMapResponse_description' - The optional description for the map resource.
--
-- 'mapArn', 'describeMapResponse_mapArn' - The Amazon Resource Name (ARN) for the map resource. Used to specify a
-- resource across all AWS.
--
-- -   Format example: @arn:aws:geo:region:account-id:map\/ExampleMap@
--
-- 'mapName', 'describeMapResponse_mapName' - The map style selected from an available provider.
--
-- 'updateTime', 'describeMapResponse_updateTime' - The timestamp for when the map resource was last update in
-- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
-- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
newDescribeMapResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'configuration'
  MapConfiguration ->
  -- | 'createTime'
  Prelude.UTCTime ->
  -- | 'dataSource'
  Prelude.Text ->
  -- | 'description'
  Prelude.Text ->
  -- | 'mapArn'
  Prelude.Text ->
  -- | 'mapName'
  Prelude.Text ->
  -- | 'updateTime'
  Prelude.UTCTime ->
  DescribeMapResponse
newDescribeMapResponse :: Int
-> MapConfiguration
-> UTCTime
-> Text
-> Text
-> Text
-> Text
-> UTCTime
-> DescribeMapResponse
newDescribeMapResponse
  Int
pHttpStatus_
  MapConfiguration
pConfiguration_
  UTCTime
pCreateTime_
  Text
pDataSource_
  Text
pDescription_
  Text
pMapArn_
  Text
pMapName_
  UTCTime
pUpdateTime_ =
    DescribeMapResponse'
      { $sel:pricingPlan:DescribeMapResponse' :: Maybe PricingPlan
pricingPlan = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:DescribeMapResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeMapResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:configuration:DescribeMapResponse' :: MapConfiguration
configuration = MapConfiguration
pConfiguration_,
        $sel:createTime:DescribeMapResponse' :: ISO8601
createTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreateTime_,
        $sel:dataSource:DescribeMapResponse' :: Text
dataSource = Text
pDataSource_,
        $sel:description:DescribeMapResponse' :: Text
description = Text
pDescription_,
        $sel:mapArn:DescribeMapResponse' :: Text
mapArn = Text
pMapArn_,
        $sel:mapName:DescribeMapResponse' :: Text
mapName = Text
pMapName_,
        $sel:updateTime:DescribeMapResponse' :: ISO8601
updateTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pUpdateTime_
      }

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

-- | Tags associated with the map resource.
describeMapResponse_tags :: Lens.Lens' DescribeMapResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeMapResponse_tags :: Lens' DescribeMapResponse (Maybe (HashMap Text Text))
describeMapResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMapResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeMapResponse' :: DescribeMapResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeMapResponse
s@DescribeMapResponse' {} Maybe (HashMap Text Text)
a -> DescribeMapResponse
s {$sel:tags:DescribeMapResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeMapResponse) 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.
describeMapResponse_httpStatus :: Lens.Lens' DescribeMapResponse Prelude.Int
describeMapResponse_httpStatus :: Lens' DescribeMapResponse Int
describeMapResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMapResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeMapResponse' :: DescribeMapResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeMapResponse
s@DescribeMapResponse' {} Int
a -> DescribeMapResponse
s {$sel:httpStatus:DescribeMapResponse' :: Int
httpStatus = Int
a} :: DescribeMapResponse)

-- | Specifies the map tile style selected from a partner data provider.
describeMapResponse_configuration :: Lens.Lens' DescribeMapResponse MapConfiguration
describeMapResponse_configuration :: Lens' DescribeMapResponse MapConfiguration
describeMapResponse_configuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMapResponse' {MapConfiguration
configuration :: MapConfiguration
$sel:configuration:DescribeMapResponse' :: DescribeMapResponse -> MapConfiguration
configuration} -> MapConfiguration
configuration) (\s :: DescribeMapResponse
s@DescribeMapResponse' {} MapConfiguration
a -> DescribeMapResponse
s {$sel:configuration:DescribeMapResponse' :: MapConfiguration
configuration = MapConfiguration
a} :: DescribeMapResponse)

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

-- | Specifies the data provider for the associated map tiles.
describeMapResponse_dataSource :: Lens.Lens' DescribeMapResponse Prelude.Text
describeMapResponse_dataSource :: Lens' DescribeMapResponse Text
describeMapResponse_dataSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMapResponse' {Text
dataSource :: Text
$sel:dataSource:DescribeMapResponse' :: DescribeMapResponse -> Text
dataSource} -> Text
dataSource) (\s :: DescribeMapResponse
s@DescribeMapResponse' {} Text
a -> DescribeMapResponse
s {$sel:dataSource:DescribeMapResponse' :: Text
dataSource = Text
a} :: DescribeMapResponse)

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

-- | The Amazon Resource Name (ARN) for the map resource. Used to specify a
-- resource across all AWS.
--
-- -   Format example: @arn:aws:geo:region:account-id:map\/ExampleMap@
describeMapResponse_mapArn :: Lens.Lens' DescribeMapResponse Prelude.Text
describeMapResponse_mapArn :: Lens' DescribeMapResponse Text
describeMapResponse_mapArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMapResponse' {Text
mapArn :: Text
$sel:mapArn:DescribeMapResponse' :: DescribeMapResponse -> Text
mapArn} -> Text
mapArn) (\s :: DescribeMapResponse
s@DescribeMapResponse' {} Text
a -> DescribeMapResponse
s {$sel:mapArn:DescribeMapResponse' :: Text
mapArn = Text
a} :: DescribeMapResponse)

-- | The map style selected from an available provider.
describeMapResponse_mapName :: Lens.Lens' DescribeMapResponse Prelude.Text
describeMapResponse_mapName :: Lens' DescribeMapResponse Text
describeMapResponse_mapName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeMapResponse' {Text
mapName :: Text
$sel:mapName:DescribeMapResponse' :: DescribeMapResponse -> Text
mapName} -> Text
mapName) (\s :: DescribeMapResponse
s@DescribeMapResponse' {} Text
a -> DescribeMapResponse
s {$sel:mapName:DescribeMapResponse' :: Text
mapName = Text
a} :: DescribeMapResponse)

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

instance Prelude.NFData DescribeMapResponse where
  rnf :: DescribeMapResponse -> ()
rnf DescribeMapResponse' {Int
Maybe (HashMap Text Text)
Maybe PricingPlan
Text
ISO8601
MapConfiguration
updateTime :: ISO8601
mapName :: Text
mapArn :: Text
description :: Text
dataSource :: Text
createTime :: ISO8601
configuration :: MapConfiguration
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
pricingPlan :: Maybe PricingPlan
$sel:updateTime:DescribeMapResponse' :: DescribeMapResponse -> ISO8601
$sel:mapName:DescribeMapResponse' :: DescribeMapResponse -> Text
$sel:mapArn:DescribeMapResponse' :: DescribeMapResponse -> Text
$sel:description:DescribeMapResponse' :: DescribeMapResponse -> Text
$sel:dataSource:DescribeMapResponse' :: DescribeMapResponse -> Text
$sel:createTime:DescribeMapResponse' :: DescribeMapResponse -> ISO8601
$sel:configuration:DescribeMapResponse' :: DescribeMapResponse -> MapConfiguration
$sel:httpStatus:DescribeMapResponse' :: DescribeMapResponse -> Int
$sel:tags:DescribeMapResponse' :: DescribeMapResponse -> Maybe (HashMap Text Text)
$sel:pricingPlan:DescribeMapResponse' :: DescribeMapResponse -> Maybe PricingPlan
..} =
    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 (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 MapConfiguration
configuration
      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
dataSource
      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
mapArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
mapName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
updateTime