{-# 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.DescribePlaceIndex
-- 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 place index resource details.
module Amazonka.Location.DescribePlaceIndex
  ( -- * Creating a Request
    DescribePlaceIndex (..),
    newDescribePlaceIndex,

    -- * Request Lenses
    describePlaceIndex_indexName,

    -- * Destructuring the Response
    DescribePlaceIndexResponse (..),
    newDescribePlaceIndexResponse,

    -- * Response Lenses
    describePlaceIndexResponse_pricingPlan,
    describePlaceIndexResponse_tags,
    describePlaceIndexResponse_httpStatus,
    describePlaceIndexResponse_createTime,
    describePlaceIndexResponse_dataSource,
    describePlaceIndexResponse_dataSourceConfiguration,
    describePlaceIndexResponse_description,
    describePlaceIndexResponse_indexArn,
    describePlaceIndexResponse_indexName,
    describePlaceIndexResponse_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:/ 'newDescribePlaceIndex' smart constructor.
data DescribePlaceIndex = DescribePlaceIndex'
  { -- | The name of the place index resource.
    DescribePlaceIndex -> Text
indexName :: Prelude.Text
  }
  deriving (DescribePlaceIndex -> DescribePlaceIndex -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePlaceIndex -> DescribePlaceIndex -> Bool
$c/= :: DescribePlaceIndex -> DescribePlaceIndex -> Bool
== :: DescribePlaceIndex -> DescribePlaceIndex -> Bool
$c== :: DescribePlaceIndex -> DescribePlaceIndex -> Bool
Prelude.Eq, ReadPrec [DescribePlaceIndex]
ReadPrec DescribePlaceIndex
Int -> ReadS DescribePlaceIndex
ReadS [DescribePlaceIndex]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePlaceIndex]
$creadListPrec :: ReadPrec [DescribePlaceIndex]
readPrec :: ReadPrec DescribePlaceIndex
$creadPrec :: ReadPrec DescribePlaceIndex
readList :: ReadS [DescribePlaceIndex]
$creadList :: ReadS [DescribePlaceIndex]
readsPrec :: Int -> ReadS DescribePlaceIndex
$creadsPrec :: Int -> ReadS DescribePlaceIndex
Prelude.Read, Int -> DescribePlaceIndex -> ShowS
[DescribePlaceIndex] -> ShowS
DescribePlaceIndex -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePlaceIndex] -> ShowS
$cshowList :: [DescribePlaceIndex] -> ShowS
show :: DescribePlaceIndex -> String
$cshow :: DescribePlaceIndex -> String
showsPrec :: Int -> DescribePlaceIndex -> ShowS
$cshowsPrec :: Int -> DescribePlaceIndex -> ShowS
Prelude.Show, forall x. Rep DescribePlaceIndex x -> DescribePlaceIndex
forall x. DescribePlaceIndex -> Rep DescribePlaceIndex x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribePlaceIndex x -> DescribePlaceIndex
$cfrom :: forall x. DescribePlaceIndex -> Rep DescribePlaceIndex x
Prelude.Generic)

-- |
-- Create a value of 'DescribePlaceIndex' 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:
--
-- 'indexName', 'describePlaceIndex_indexName' - The name of the place index resource.
newDescribePlaceIndex ::
  -- | 'indexName'
  Prelude.Text ->
  DescribePlaceIndex
newDescribePlaceIndex :: Text -> DescribePlaceIndex
newDescribePlaceIndex Text
pIndexName_ =
  DescribePlaceIndex' {$sel:indexName:DescribePlaceIndex' :: Text
indexName = Text
pIndexName_}

-- | The name of the place index resource.
describePlaceIndex_indexName :: Lens.Lens' DescribePlaceIndex Prelude.Text
describePlaceIndex_indexName :: Lens' DescribePlaceIndex Text
describePlaceIndex_indexName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndex' {Text
indexName :: Text
$sel:indexName:DescribePlaceIndex' :: DescribePlaceIndex -> Text
indexName} -> Text
indexName) (\s :: DescribePlaceIndex
s@DescribePlaceIndex' {} Text
a -> DescribePlaceIndex
s {$sel:indexName:DescribePlaceIndex' :: Text
indexName = Text
a} :: DescribePlaceIndex)

instance Core.AWSRequest DescribePlaceIndex where
  type
    AWSResponse DescribePlaceIndex =
      DescribePlaceIndexResponse
  request :: (Service -> Service)
-> DescribePlaceIndex -> Request DescribePlaceIndex
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 DescribePlaceIndex
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribePlaceIndex)))
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
-> ISO8601
-> Text
-> DataSourceConfiguration
-> Text
-> Text
-> Text
-> ISO8601
-> DescribePlaceIndexResponse
DescribePlaceIndexResponse'
            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
"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
"DataSourceConfiguration")
            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
"IndexArn")
            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
"IndexName")
            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 DescribePlaceIndex where
  hashWithSalt :: Int -> DescribePlaceIndex -> Int
hashWithSalt Int
_salt DescribePlaceIndex' {Text
indexName :: Text
$sel:indexName:DescribePlaceIndex' :: DescribePlaceIndex -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
indexName

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

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

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

-- | /See:/ 'newDescribePlaceIndexResponse' smart constructor.
data DescribePlaceIndexResponse = DescribePlaceIndexResponse'
  { -- | No longer used. Always returns @RequestBasedUsage@.
    DescribePlaceIndexResponse -> Maybe PricingPlan
pricingPlan :: Prelude.Maybe PricingPlan,
    -- | Tags associated with place index resource.
    DescribePlaceIndexResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribePlaceIndexResponse -> Int
httpStatus :: Prelude.Int,
    -- | The timestamp for when the place index resource was created in
    -- <https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601>
    -- format: @YYYY-MM-DDThh:mm:ss.sssZ@.
    DescribePlaceIndexResponse -> ISO8601
createTime :: Data.ISO8601,
    -- | The data provider of geospatial data. Values can be one of the
    -- following:
    --
    -- -   @Esri@
    --
    -- -   @Here@
    --
    -- For more information about data providers, see
    -- <https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html Amazon Location Service data providers>.
    DescribePlaceIndexResponse -> Text
dataSource :: Prelude.Text,
    -- | The specified data storage option for requesting Places.
    DescribePlaceIndexResponse -> DataSourceConfiguration
dataSourceConfiguration :: DataSourceConfiguration,
    -- | The optional description for the place index resource.
    DescribePlaceIndexResponse -> Text
description :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) for the place index resource. Used to
    -- specify a resource across AWS.
    --
    -- -   Format example:
    --     @arn:aws:geo:region:account-id:place-index\/ExamplePlaceIndex@
    DescribePlaceIndexResponse -> Text
indexArn :: Prelude.Text,
    -- | The name of the place index resource being described.
    DescribePlaceIndexResponse -> Text
indexName :: Prelude.Text,
    -- | The timestamp for when the place index 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@.
    DescribePlaceIndexResponse -> ISO8601
updateTime :: Data.ISO8601
  }
  deriving (DescribePlaceIndexResponse -> DescribePlaceIndexResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePlaceIndexResponse -> DescribePlaceIndexResponse -> Bool
$c/= :: DescribePlaceIndexResponse -> DescribePlaceIndexResponse -> Bool
== :: DescribePlaceIndexResponse -> DescribePlaceIndexResponse -> Bool
$c== :: DescribePlaceIndexResponse -> DescribePlaceIndexResponse -> Bool
Prelude.Eq, ReadPrec [DescribePlaceIndexResponse]
ReadPrec DescribePlaceIndexResponse
Int -> ReadS DescribePlaceIndexResponse
ReadS [DescribePlaceIndexResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePlaceIndexResponse]
$creadListPrec :: ReadPrec [DescribePlaceIndexResponse]
readPrec :: ReadPrec DescribePlaceIndexResponse
$creadPrec :: ReadPrec DescribePlaceIndexResponse
readList :: ReadS [DescribePlaceIndexResponse]
$creadList :: ReadS [DescribePlaceIndexResponse]
readsPrec :: Int -> ReadS DescribePlaceIndexResponse
$creadsPrec :: Int -> ReadS DescribePlaceIndexResponse
Prelude.Read, Int -> DescribePlaceIndexResponse -> ShowS
[DescribePlaceIndexResponse] -> ShowS
DescribePlaceIndexResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePlaceIndexResponse] -> ShowS
$cshowList :: [DescribePlaceIndexResponse] -> ShowS
show :: DescribePlaceIndexResponse -> String
$cshow :: DescribePlaceIndexResponse -> String
showsPrec :: Int -> DescribePlaceIndexResponse -> ShowS
$cshowsPrec :: Int -> DescribePlaceIndexResponse -> ShowS
Prelude.Show, forall x.
Rep DescribePlaceIndexResponse x -> DescribePlaceIndexResponse
forall x.
DescribePlaceIndexResponse -> Rep DescribePlaceIndexResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribePlaceIndexResponse x -> DescribePlaceIndexResponse
$cfrom :: forall x.
DescribePlaceIndexResponse -> Rep DescribePlaceIndexResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribePlaceIndexResponse' 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', 'describePlaceIndexResponse_pricingPlan' - No longer used. Always returns @RequestBasedUsage@.
--
-- 'tags', 'describePlaceIndexResponse_tags' - Tags associated with place index resource.
--
-- 'httpStatus', 'describePlaceIndexResponse_httpStatus' - The response's http status code.
--
-- 'createTime', 'describePlaceIndexResponse_createTime' - The timestamp for when the place index 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', 'describePlaceIndexResponse_dataSource' - The data provider of geospatial data. Values can be one of the
-- following:
--
-- -   @Esri@
--
-- -   @Here@
--
-- For more information about data providers, see
-- <https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html Amazon Location Service data providers>.
--
-- 'dataSourceConfiguration', 'describePlaceIndexResponse_dataSourceConfiguration' - The specified data storage option for requesting Places.
--
-- 'description', 'describePlaceIndexResponse_description' - The optional description for the place index resource.
--
-- 'indexArn', 'describePlaceIndexResponse_indexArn' - The Amazon Resource Name (ARN) for the place index resource. Used to
-- specify a resource across AWS.
--
-- -   Format example:
--     @arn:aws:geo:region:account-id:place-index\/ExamplePlaceIndex@
--
-- 'indexName', 'describePlaceIndexResponse_indexName' - The name of the place index resource being described.
--
-- 'updateTime', 'describePlaceIndexResponse_updateTime' - The timestamp for when the place index 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@.
newDescribePlaceIndexResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'createTime'
  Prelude.UTCTime ->
  -- | 'dataSource'
  Prelude.Text ->
  -- | 'dataSourceConfiguration'
  DataSourceConfiguration ->
  -- | 'description'
  Prelude.Text ->
  -- | 'indexArn'
  Prelude.Text ->
  -- | 'indexName'
  Prelude.Text ->
  -- | 'updateTime'
  Prelude.UTCTime ->
  DescribePlaceIndexResponse
newDescribePlaceIndexResponse :: Int
-> UTCTime
-> Text
-> DataSourceConfiguration
-> Text
-> Text
-> Text
-> UTCTime
-> DescribePlaceIndexResponse
newDescribePlaceIndexResponse
  Int
pHttpStatus_
  UTCTime
pCreateTime_
  Text
pDataSource_
  DataSourceConfiguration
pDataSourceConfiguration_
  Text
pDescription_
  Text
pIndexArn_
  Text
pIndexName_
  UTCTime
pUpdateTime_ =
    DescribePlaceIndexResponse'
      { $sel:pricingPlan:DescribePlaceIndexResponse' :: Maybe PricingPlan
pricingPlan =
          forall a. Maybe a
Prelude.Nothing,
        $sel:tags:DescribePlaceIndexResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribePlaceIndexResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:createTime:DescribePlaceIndexResponse' :: ISO8601
createTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreateTime_,
        $sel:dataSource:DescribePlaceIndexResponse' :: Text
dataSource = Text
pDataSource_,
        $sel:dataSourceConfiguration:DescribePlaceIndexResponse' :: DataSourceConfiguration
dataSourceConfiguration =
          DataSourceConfiguration
pDataSourceConfiguration_,
        $sel:description:DescribePlaceIndexResponse' :: Text
description = Text
pDescription_,
        $sel:indexArn:DescribePlaceIndexResponse' :: Text
indexArn = Text
pIndexArn_,
        $sel:indexName:DescribePlaceIndexResponse' :: Text
indexName = Text
pIndexName_,
        $sel:updateTime:DescribePlaceIndexResponse' :: 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@.
describePlaceIndexResponse_pricingPlan :: Lens.Lens' DescribePlaceIndexResponse (Prelude.Maybe PricingPlan)
describePlaceIndexResponse_pricingPlan :: Lens' DescribePlaceIndexResponse (Maybe PricingPlan)
describePlaceIndexResponse_pricingPlan = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {Maybe PricingPlan
pricingPlan :: Maybe PricingPlan
$sel:pricingPlan:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Maybe PricingPlan
pricingPlan} -> Maybe PricingPlan
pricingPlan) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} Maybe PricingPlan
a -> DescribePlaceIndexResponse
s {$sel:pricingPlan:DescribePlaceIndexResponse' :: Maybe PricingPlan
pricingPlan = Maybe PricingPlan
a} :: DescribePlaceIndexResponse)

-- | Tags associated with place index resource.
describePlaceIndexResponse_tags :: Lens.Lens' DescribePlaceIndexResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describePlaceIndexResponse_tags :: Lens' DescribePlaceIndexResponse (Maybe (HashMap Text Text))
describePlaceIndexResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} Maybe (HashMap Text Text)
a -> DescribePlaceIndexResponse
s {$sel:tags:DescribePlaceIndexResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribePlaceIndexResponse) 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.
describePlaceIndexResponse_httpStatus :: Lens.Lens' DescribePlaceIndexResponse Prelude.Int
describePlaceIndexResponse_httpStatus :: Lens' DescribePlaceIndexResponse Int
describePlaceIndexResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} Int
a -> DescribePlaceIndexResponse
s {$sel:httpStatus:DescribePlaceIndexResponse' :: Int
httpStatus = Int
a} :: DescribePlaceIndexResponse)

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

-- | The data provider of geospatial data. Values can be one of the
-- following:
--
-- -   @Esri@
--
-- -   @Here@
--
-- For more information about data providers, see
-- <https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html Amazon Location Service data providers>.
describePlaceIndexResponse_dataSource :: Lens.Lens' DescribePlaceIndexResponse Prelude.Text
describePlaceIndexResponse_dataSource :: Lens' DescribePlaceIndexResponse Text
describePlaceIndexResponse_dataSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {Text
dataSource :: Text
$sel:dataSource:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
dataSource} -> Text
dataSource) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} Text
a -> DescribePlaceIndexResponse
s {$sel:dataSource:DescribePlaceIndexResponse' :: Text
dataSource = Text
a} :: DescribePlaceIndexResponse)

-- | The specified data storage option for requesting Places.
describePlaceIndexResponse_dataSourceConfiguration :: Lens.Lens' DescribePlaceIndexResponse DataSourceConfiguration
describePlaceIndexResponse_dataSourceConfiguration :: Lens' DescribePlaceIndexResponse DataSourceConfiguration
describePlaceIndexResponse_dataSourceConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {DataSourceConfiguration
dataSourceConfiguration :: DataSourceConfiguration
$sel:dataSourceConfiguration:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> DataSourceConfiguration
dataSourceConfiguration} -> DataSourceConfiguration
dataSourceConfiguration) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} DataSourceConfiguration
a -> DescribePlaceIndexResponse
s {$sel:dataSourceConfiguration:DescribePlaceIndexResponse' :: DataSourceConfiguration
dataSourceConfiguration = DataSourceConfiguration
a} :: DescribePlaceIndexResponse)

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

-- | The Amazon Resource Name (ARN) for the place index resource. Used to
-- specify a resource across AWS.
--
-- -   Format example:
--     @arn:aws:geo:region:account-id:place-index\/ExamplePlaceIndex@
describePlaceIndexResponse_indexArn :: Lens.Lens' DescribePlaceIndexResponse Prelude.Text
describePlaceIndexResponse_indexArn :: Lens' DescribePlaceIndexResponse Text
describePlaceIndexResponse_indexArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {Text
indexArn :: Text
$sel:indexArn:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
indexArn} -> Text
indexArn) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} Text
a -> DescribePlaceIndexResponse
s {$sel:indexArn:DescribePlaceIndexResponse' :: Text
indexArn = Text
a} :: DescribePlaceIndexResponse)

-- | The name of the place index resource being described.
describePlaceIndexResponse_indexName :: Lens.Lens' DescribePlaceIndexResponse Prelude.Text
describePlaceIndexResponse_indexName :: Lens' DescribePlaceIndexResponse Text
describePlaceIndexResponse_indexName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {Text
indexName :: Text
$sel:indexName:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
indexName} -> Text
indexName) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} Text
a -> DescribePlaceIndexResponse
s {$sel:indexName:DescribePlaceIndexResponse' :: Text
indexName = Text
a} :: DescribePlaceIndexResponse)

-- | The timestamp for when the place index 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@.
describePlaceIndexResponse_updateTime :: Lens.Lens' DescribePlaceIndexResponse Prelude.UTCTime
describePlaceIndexResponse_updateTime :: Lens' DescribePlaceIndexResponse UTCTime
describePlaceIndexResponse_updateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlaceIndexResponse' {ISO8601
updateTime :: ISO8601
$sel:updateTime:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> ISO8601
updateTime} -> ISO8601
updateTime) (\s :: DescribePlaceIndexResponse
s@DescribePlaceIndexResponse' {} ISO8601
a -> DescribePlaceIndexResponse
s {$sel:updateTime:DescribePlaceIndexResponse' :: ISO8601
updateTime = ISO8601
a} :: DescribePlaceIndexResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Prelude.NFData DescribePlaceIndexResponse where
  rnf :: DescribePlaceIndexResponse -> ()
rnf DescribePlaceIndexResponse' {Int
Maybe (HashMap Text Text)
Maybe PricingPlan
Text
ISO8601
DataSourceConfiguration
updateTime :: ISO8601
indexName :: Text
indexArn :: Text
description :: Text
dataSourceConfiguration :: DataSourceConfiguration
dataSource :: Text
createTime :: ISO8601
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
pricingPlan :: Maybe PricingPlan
$sel:updateTime:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> ISO8601
$sel:indexName:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
$sel:indexArn:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
$sel:description:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
$sel:dataSourceConfiguration:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> DataSourceConfiguration
$sel:dataSource:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Text
$sel:createTime:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> ISO8601
$sel:httpStatus:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Int
$sel:tags:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> Maybe (HashMap Text Text)
$sel:pricingPlan:DescribePlaceIndexResponse' :: DescribePlaceIndexResponse -> 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 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 DataSourceConfiguration
dataSourceConfiguration
      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
indexArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
indexName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
updateTime