{-# 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.LexV2Models.DescribeCustomVocabularyMetadata
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Provides metadata information about a custom vocabulary.
module Amazonka.LexV2Models.DescribeCustomVocabularyMetadata
  ( -- * Creating a Request
    DescribeCustomVocabularyMetadata (..),
    newDescribeCustomVocabularyMetadata,

    -- * Request Lenses
    describeCustomVocabularyMetadata_botId,
    describeCustomVocabularyMetadata_botVersion,
    describeCustomVocabularyMetadata_localeId,

    -- * Destructuring the Response
    DescribeCustomVocabularyMetadataResponse (..),
    newDescribeCustomVocabularyMetadataResponse,

    -- * Response Lenses
    describeCustomVocabularyMetadataResponse_botId,
    describeCustomVocabularyMetadataResponse_botVersion,
    describeCustomVocabularyMetadataResponse_creationDateTime,
    describeCustomVocabularyMetadataResponse_customVocabularyStatus,
    describeCustomVocabularyMetadataResponse_lastUpdatedDateTime,
    describeCustomVocabularyMetadataResponse_localeId,
    describeCustomVocabularyMetadataResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeCustomVocabularyMetadata' smart constructor.
data DescribeCustomVocabularyMetadata = DescribeCustomVocabularyMetadata'
  { -- | The unique identifier of the bot that contains the custom vocabulary.
    DescribeCustomVocabularyMetadata -> Text
botId :: Prelude.Text,
    -- | The bot version of the bot to return metadata for.
    DescribeCustomVocabularyMetadata -> Text
botVersion :: Prelude.Text,
    -- | The locale to return the custom vocabulary information for. The locale
    -- must be @en_GB@.
    DescribeCustomVocabularyMetadata -> Text
localeId :: Prelude.Text
  }
  deriving (DescribeCustomVocabularyMetadata
-> DescribeCustomVocabularyMetadata -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCustomVocabularyMetadata
-> DescribeCustomVocabularyMetadata -> Bool
$c/= :: DescribeCustomVocabularyMetadata
-> DescribeCustomVocabularyMetadata -> Bool
== :: DescribeCustomVocabularyMetadata
-> DescribeCustomVocabularyMetadata -> Bool
$c== :: DescribeCustomVocabularyMetadata
-> DescribeCustomVocabularyMetadata -> Bool
Prelude.Eq, ReadPrec [DescribeCustomVocabularyMetadata]
ReadPrec DescribeCustomVocabularyMetadata
Int -> ReadS DescribeCustomVocabularyMetadata
ReadS [DescribeCustomVocabularyMetadata]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeCustomVocabularyMetadata]
$creadListPrec :: ReadPrec [DescribeCustomVocabularyMetadata]
readPrec :: ReadPrec DescribeCustomVocabularyMetadata
$creadPrec :: ReadPrec DescribeCustomVocabularyMetadata
readList :: ReadS [DescribeCustomVocabularyMetadata]
$creadList :: ReadS [DescribeCustomVocabularyMetadata]
readsPrec :: Int -> ReadS DescribeCustomVocabularyMetadata
$creadsPrec :: Int -> ReadS DescribeCustomVocabularyMetadata
Prelude.Read, Int -> DescribeCustomVocabularyMetadata -> ShowS
[DescribeCustomVocabularyMetadata] -> ShowS
DescribeCustomVocabularyMetadata -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCustomVocabularyMetadata] -> ShowS
$cshowList :: [DescribeCustomVocabularyMetadata] -> ShowS
show :: DescribeCustomVocabularyMetadata -> String
$cshow :: DescribeCustomVocabularyMetadata -> String
showsPrec :: Int -> DescribeCustomVocabularyMetadata -> ShowS
$cshowsPrec :: Int -> DescribeCustomVocabularyMetadata -> ShowS
Prelude.Show, forall x.
Rep DescribeCustomVocabularyMetadata x
-> DescribeCustomVocabularyMetadata
forall x.
DescribeCustomVocabularyMetadata
-> Rep DescribeCustomVocabularyMetadata x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeCustomVocabularyMetadata x
-> DescribeCustomVocabularyMetadata
$cfrom :: forall x.
DescribeCustomVocabularyMetadata
-> Rep DescribeCustomVocabularyMetadata x
Prelude.Generic)

-- |
-- Create a value of 'DescribeCustomVocabularyMetadata' 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:
--
-- 'botId', 'describeCustomVocabularyMetadata_botId' - The unique identifier of the bot that contains the custom vocabulary.
--
-- 'botVersion', 'describeCustomVocabularyMetadata_botVersion' - The bot version of the bot to return metadata for.
--
-- 'localeId', 'describeCustomVocabularyMetadata_localeId' - The locale to return the custom vocabulary information for. The locale
-- must be @en_GB@.
newDescribeCustomVocabularyMetadata ::
  -- | 'botId'
  Prelude.Text ->
  -- | 'botVersion'
  Prelude.Text ->
  -- | 'localeId'
  Prelude.Text ->
  DescribeCustomVocabularyMetadata
newDescribeCustomVocabularyMetadata :: Text -> Text -> Text -> DescribeCustomVocabularyMetadata
newDescribeCustomVocabularyMetadata
  Text
pBotId_
  Text
pBotVersion_
  Text
pLocaleId_ =
    DescribeCustomVocabularyMetadata'
      { $sel:botId:DescribeCustomVocabularyMetadata' :: Text
botId = Text
pBotId_,
        $sel:botVersion:DescribeCustomVocabularyMetadata' :: Text
botVersion = Text
pBotVersion_,
        $sel:localeId:DescribeCustomVocabularyMetadata' :: Text
localeId = Text
pLocaleId_
      }

-- | The unique identifier of the bot that contains the custom vocabulary.
describeCustomVocabularyMetadata_botId :: Lens.Lens' DescribeCustomVocabularyMetadata Prelude.Text
describeCustomVocabularyMetadata_botId :: Lens' DescribeCustomVocabularyMetadata Text
describeCustomVocabularyMetadata_botId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadata' {Text
botId :: Text
$sel:botId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
botId} -> Text
botId) (\s :: DescribeCustomVocabularyMetadata
s@DescribeCustomVocabularyMetadata' {} Text
a -> DescribeCustomVocabularyMetadata
s {$sel:botId:DescribeCustomVocabularyMetadata' :: Text
botId = Text
a} :: DescribeCustomVocabularyMetadata)

-- | The bot version of the bot to return metadata for.
describeCustomVocabularyMetadata_botVersion :: Lens.Lens' DescribeCustomVocabularyMetadata Prelude.Text
describeCustomVocabularyMetadata_botVersion :: Lens' DescribeCustomVocabularyMetadata Text
describeCustomVocabularyMetadata_botVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadata' {Text
botVersion :: Text
$sel:botVersion:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
botVersion} -> Text
botVersion) (\s :: DescribeCustomVocabularyMetadata
s@DescribeCustomVocabularyMetadata' {} Text
a -> DescribeCustomVocabularyMetadata
s {$sel:botVersion:DescribeCustomVocabularyMetadata' :: Text
botVersion = Text
a} :: DescribeCustomVocabularyMetadata)

-- | The locale to return the custom vocabulary information for. The locale
-- must be @en_GB@.
describeCustomVocabularyMetadata_localeId :: Lens.Lens' DescribeCustomVocabularyMetadata Prelude.Text
describeCustomVocabularyMetadata_localeId :: Lens' DescribeCustomVocabularyMetadata Text
describeCustomVocabularyMetadata_localeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadata' {Text
localeId :: Text
$sel:localeId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
localeId} -> Text
localeId) (\s :: DescribeCustomVocabularyMetadata
s@DescribeCustomVocabularyMetadata' {} Text
a -> DescribeCustomVocabularyMetadata
s {$sel:localeId:DescribeCustomVocabularyMetadata' :: Text
localeId = Text
a} :: DescribeCustomVocabularyMetadata)

instance
  Core.AWSRequest
    DescribeCustomVocabularyMetadata
  where
  type
    AWSResponse DescribeCustomVocabularyMetadata =
      DescribeCustomVocabularyMetadataResponse
  request :: (Service -> Service)
-> DescribeCustomVocabularyMetadata
-> Request DescribeCustomVocabularyMetadata
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 DescribeCustomVocabularyMetadata
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeCustomVocabularyMetadata)))
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 Text
-> Maybe POSIX
-> Maybe CustomVocabularyStatus
-> Maybe POSIX
-> Maybe Text
-> Int
-> DescribeCustomVocabularyMetadataResponse
DescribeCustomVocabularyMetadataResponse'
            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
"botId")
            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
"botVersion")
            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
"creationDateTime")
            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
"customVocabularyStatus")
            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
"lastUpdatedDateTime")
            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
"localeId")
            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))
      )

instance
  Prelude.Hashable
    DescribeCustomVocabularyMetadata
  where
  hashWithSalt :: Int -> DescribeCustomVocabularyMetadata -> Int
hashWithSalt
    Int
_salt
    DescribeCustomVocabularyMetadata' {Text
localeId :: Text
botVersion :: Text
botId :: Text
$sel:localeId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
$sel:botVersion:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
$sel:botId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
botId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
botVersion
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
localeId

instance
  Prelude.NFData
    DescribeCustomVocabularyMetadata
  where
  rnf :: DescribeCustomVocabularyMetadata -> ()
rnf DescribeCustomVocabularyMetadata' {Text
localeId :: Text
botVersion :: Text
botId :: Text
$sel:localeId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
$sel:botVersion:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
$sel:botId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
botId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
botVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
localeId

instance
  Data.ToHeaders
    DescribeCustomVocabularyMetadata
  where
  toHeaders :: DescribeCustomVocabularyMetadata -> 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 DescribeCustomVocabularyMetadata where
  toPath :: DescribeCustomVocabularyMetadata -> ByteString
toPath DescribeCustomVocabularyMetadata' {Text
localeId :: Text
botVersion :: Text
botId :: Text
$sel:localeId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
$sel:botVersion:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
$sel:botId:DescribeCustomVocabularyMetadata' :: DescribeCustomVocabularyMetadata -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/bots/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
botId,
        ByteString
"/botversions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
botVersion,
        ByteString
"/botlocales/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
localeId,
        ByteString
"/customvocabulary/DEFAULT/metadata"
      ]

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

-- | /See:/ 'newDescribeCustomVocabularyMetadataResponse' smart constructor.
data DescribeCustomVocabularyMetadataResponse = DescribeCustomVocabularyMetadataResponse'
  { -- | The identifier of the bot that contains the custom vocabulary.
    DescribeCustomVocabularyMetadataResponse -> Maybe Text
botId :: Prelude.Maybe Prelude.Text,
    -- | The version of the bot that contains the custom vocabulary to describe.
    DescribeCustomVocabularyMetadataResponse -> Maybe Text
botVersion :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the custom vocabulary was created.
    DescribeCustomVocabularyMetadataResponse -> Maybe POSIX
creationDateTime :: Prelude.Maybe Data.POSIX,
    -- | The status of the custom vocabulary. If the status is @Ready@ the custom
    -- vocabulary is ready to use.
    DescribeCustomVocabularyMetadataResponse
-> Maybe CustomVocabularyStatus
customVocabularyStatus :: Prelude.Maybe CustomVocabularyStatus,
    -- | The date and time that the custom vocabulary was last updated.
    DescribeCustomVocabularyMetadataResponse -> Maybe POSIX
lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,
    -- | The locale that contains the custom vocabulary to describe.
    DescribeCustomVocabularyMetadataResponse -> Maybe Text
localeId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeCustomVocabularyMetadataResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeCustomVocabularyMetadataResponse
-> DescribeCustomVocabularyMetadataResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeCustomVocabularyMetadataResponse
-> DescribeCustomVocabularyMetadataResponse -> Bool
$c/= :: DescribeCustomVocabularyMetadataResponse
-> DescribeCustomVocabularyMetadataResponse -> Bool
== :: DescribeCustomVocabularyMetadataResponse
-> DescribeCustomVocabularyMetadataResponse -> Bool
$c== :: DescribeCustomVocabularyMetadataResponse
-> DescribeCustomVocabularyMetadataResponse -> Bool
Prelude.Eq, ReadPrec [DescribeCustomVocabularyMetadataResponse]
ReadPrec DescribeCustomVocabularyMetadataResponse
Int -> ReadS DescribeCustomVocabularyMetadataResponse
ReadS [DescribeCustomVocabularyMetadataResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeCustomVocabularyMetadataResponse]
$creadListPrec :: ReadPrec [DescribeCustomVocabularyMetadataResponse]
readPrec :: ReadPrec DescribeCustomVocabularyMetadataResponse
$creadPrec :: ReadPrec DescribeCustomVocabularyMetadataResponse
readList :: ReadS [DescribeCustomVocabularyMetadataResponse]
$creadList :: ReadS [DescribeCustomVocabularyMetadataResponse]
readsPrec :: Int -> ReadS DescribeCustomVocabularyMetadataResponse
$creadsPrec :: Int -> ReadS DescribeCustomVocabularyMetadataResponse
Prelude.Read, Int -> DescribeCustomVocabularyMetadataResponse -> ShowS
[DescribeCustomVocabularyMetadataResponse] -> ShowS
DescribeCustomVocabularyMetadataResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeCustomVocabularyMetadataResponse] -> ShowS
$cshowList :: [DescribeCustomVocabularyMetadataResponse] -> ShowS
show :: DescribeCustomVocabularyMetadataResponse -> String
$cshow :: DescribeCustomVocabularyMetadataResponse -> String
showsPrec :: Int -> DescribeCustomVocabularyMetadataResponse -> ShowS
$cshowsPrec :: Int -> DescribeCustomVocabularyMetadataResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeCustomVocabularyMetadataResponse x
-> DescribeCustomVocabularyMetadataResponse
forall x.
DescribeCustomVocabularyMetadataResponse
-> Rep DescribeCustomVocabularyMetadataResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeCustomVocabularyMetadataResponse x
-> DescribeCustomVocabularyMetadataResponse
$cfrom :: forall x.
DescribeCustomVocabularyMetadataResponse
-> Rep DescribeCustomVocabularyMetadataResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeCustomVocabularyMetadataResponse' 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:
--
-- 'botId', 'describeCustomVocabularyMetadataResponse_botId' - The identifier of the bot that contains the custom vocabulary.
--
-- 'botVersion', 'describeCustomVocabularyMetadataResponse_botVersion' - The version of the bot that contains the custom vocabulary to describe.
--
-- 'creationDateTime', 'describeCustomVocabularyMetadataResponse_creationDateTime' - The date and time that the custom vocabulary was created.
--
-- 'customVocabularyStatus', 'describeCustomVocabularyMetadataResponse_customVocabularyStatus' - The status of the custom vocabulary. If the status is @Ready@ the custom
-- vocabulary is ready to use.
--
-- 'lastUpdatedDateTime', 'describeCustomVocabularyMetadataResponse_lastUpdatedDateTime' - The date and time that the custom vocabulary was last updated.
--
-- 'localeId', 'describeCustomVocabularyMetadataResponse_localeId' - The locale that contains the custom vocabulary to describe.
--
-- 'httpStatus', 'describeCustomVocabularyMetadataResponse_httpStatus' - The response's http status code.
newDescribeCustomVocabularyMetadataResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeCustomVocabularyMetadataResponse
newDescribeCustomVocabularyMetadataResponse :: Int -> DescribeCustomVocabularyMetadataResponse
newDescribeCustomVocabularyMetadataResponse
  Int
pHttpStatus_ =
    DescribeCustomVocabularyMetadataResponse'
      { $sel:botId:DescribeCustomVocabularyMetadataResponse' :: Maybe Text
botId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:botVersion:DescribeCustomVocabularyMetadataResponse' :: Maybe Text
botVersion = forall a. Maybe a
Prelude.Nothing,
        $sel:creationDateTime:DescribeCustomVocabularyMetadataResponse' :: Maybe POSIX
creationDateTime =
          forall a. Maybe a
Prelude.Nothing,
        $sel:customVocabularyStatus:DescribeCustomVocabularyMetadataResponse' :: Maybe CustomVocabularyStatus
customVocabularyStatus =
          forall a. Maybe a
Prelude.Nothing,
        $sel:lastUpdatedDateTime:DescribeCustomVocabularyMetadataResponse' :: Maybe POSIX
lastUpdatedDateTime =
          forall a. Maybe a
Prelude.Nothing,
        $sel:localeId:DescribeCustomVocabularyMetadataResponse' :: Maybe Text
localeId = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeCustomVocabularyMetadataResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The identifier of the bot that contains the custom vocabulary.
describeCustomVocabularyMetadataResponse_botId :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.Text)
describeCustomVocabularyMetadataResponse_botId :: Lens' DescribeCustomVocabularyMetadataResponse (Maybe Text)
describeCustomVocabularyMetadataResponse_botId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadataResponse' {Maybe Text
botId :: Maybe Text
$sel:botId:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe Text
botId} -> Maybe Text
botId) (\s :: DescribeCustomVocabularyMetadataResponse
s@DescribeCustomVocabularyMetadataResponse' {} Maybe Text
a -> DescribeCustomVocabularyMetadataResponse
s {$sel:botId:DescribeCustomVocabularyMetadataResponse' :: Maybe Text
botId = Maybe Text
a} :: DescribeCustomVocabularyMetadataResponse)

-- | The version of the bot that contains the custom vocabulary to describe.
describeCustomVocabularyMetadataResponse_botVersion :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.Text)
describeCustomVocabularyMetadataResponse_botVersion :: Lens' DescribeCustomVocabularyMetadataResponse (Maybe Text)
describeCustomVocabularyMetadataResponse_botVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadataResponse' {Maybe Text
botVersion :: Maybe Text
$sel:botVersion:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe Text
botVersion} -> Maybe Text
botVersion) (\s :: DescribeCustomVocabularyMetadataResponse
s@DescribeCustomVocabularyMetadataResponse' {} Maybe Text
a -> DescribeCustomVocabularyMetadataResponse
s {$sel:botVersion:DescribeCustomVocabularyMetadataResponse' :: Maybe Text
botVersion = Maybe Text
a} :: DescribeCustomVocabularyMetadataResponse)

-- | The date and time that the custom vocabulary was created.
describeCustomVocabularyMetadataResponse_creationDateTime :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.UTCTime)
describeCustomVocabularyMetadataResponse_creationDateTime :: Lens' DescribeCustomVocabularyMetadataResponse (Maybe UTCTime)
describeCustomVocabularyMetadataResponse_creationDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadataResponse' {Maybe POSIX
creationDateTime :: Maybe POSIX
$sel:creationDateTime:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe POSIX
creationDateTime} -> Maybe POSIX
creationDateTime) (\s :: DescribeCustomVocabularyMetadataResponse
s@DescribeCustomVocabularyMetadataResponse' {} Maybe POSIX
a -> DescribeCustomVocabularyMetadataResponse
s {$sel:creationDateTime:DescribeCustomVocabularyMetadataResponse' :: Maybe POSIX
creationDateTime = Maybe POSIX
a} :: DescribeCustomVocabularyMetadataResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The status of the custom vocabulary. If the status is @Ready@ the custom
-- vocabulary is ready to use.
describeCustomVocabularyMetadataResponse_customVocabularyStatus :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe CustomVocabularyStatus)
describeCustomVocabularyMetadataResponse_customVocabularyStatus :: Lens'
  DescribeCustomVocabularyMetadataResponse
  (Maybe CustomVocabularyStatus)
describeCustomVocabularyMetadataResponse_customVocabularyStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadataResponse' {Maybe CustomVocabularyStatus
customVocabularyStatus :: Maybe CustomVocabularyStatus
$sel:customVocabularyStatus:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse
-> Maybe CustomVocabularyStatus
customVocabularyStatus} -> Maybe CustomVocabularyStatus
customVocabularyStatus) (\s :: DescribeCustomVocabularyMetadataResponse
s@DescribeCustomVocabularyMetadataResponse' {} Maybe CustomVocabularyStatus
a -> DescribeCustomVocabularyMetadataResponse
s {$sel:customVocabularyStatus:DescribeCustomVocabularyMetadataResponse' :: Maybe CustomVocabularyStatus
customVocabularyStatus = Maybe CustomVocabularyStatus
a} :: DescribeCustomVocabularyMetadataResponse)

-- | The date and time that the custom vocabulary was last updated.
describeCustomVocabularyMetadataResponse_lastUpdatedDateTime :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.UTCTime)
describeCustomVocabularyMetadataResponse_lastUpdatedDateTime :: Lens' DescribeCustomVocabularyMetadataResponse (Maybe UTCTime)
describeCustomVocabularyMetadataResponse_lastUpdatedDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadataResponse' {Maybe POSIX
lastUpdatedDateTime :: Maybe POSIX
$sel:lastUpdatedDateTime:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe POSIX
lastUpdatedDateTime} -> Maybe POSIX
lastUpdatedDateTime) (\s :: DescribeCustomVocabularyMetadataResponse
s@DescribeCustomVocabularyMetadataResponse' {} Maybe POSIX
a -> DescribeCustomVocabularyMetadataResponse
s {$sel:lastUpdatedDateTime:DescribeCustomVocabularyMetadataResponse' :: Maybe POSIX
lastUpdatedDateTime = Maybe POSIX
a} :: DescribeCustomVocabularyMetadataResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The locale that contains the custom vocabulary to describe.
describeCustomVocabularyMetadataResponse_localeId :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.Text)
describeCustomVocabularyMetadataResponse_localeId :: Lens' DescribeCustomVocabularyMetadataResponse (Maybe Text)
describeCustomVocabularyMetadataResponse_localeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeCustomVocabularyMetadataResponse' {Maybe Text
localeId :: Maybe Text
$sel:localeId:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe Text
localeId} -> Maybe Text
localeId) (\s :: DescribeCustomVocabularyMetadataResponse
s@DescribeCustomVocabularyMetadataResponse' {} Maybe Text
a -> DescribeCustomVocabularyMetadataResponse
s {$sel:localeId:DescribeCustomVocabularyMetadataResponse' :: Maybe Text
localeId = Maybe Text
a} :: DescribeCustomVocabularyMetadataResponse)

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

instance
  Prelude.NFData
    DescribeCustomVocabularyMetadataResponse
  where
  rnf :: DescribeCustomVocabularyMetadataResponse -> ()
rnf DescribeCustomVocabularyMetadataResponse' {Int
Maybe Text
Maybe POSIX
Maybe CustomVocabularyStatus
httpStatus :: Int
localeId :: Maybe Text
lastUpdatedDateTime :: Maybe POSIX
customVocabularyStatus :: Maybe CustomVocabularyStatus
creationDateTime :: Maybe POSIX
botVersion :: Maybe Text
botId :: Maybe Text
$sel:httpStatus:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Int
$sel:localeId:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe Text
$sel:lastUpdatedDateTime:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe POSIX
$sel:customVocabularyStatus:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse
-> Maybe CustomVocabularyStatus
$sel:creationDateTime:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe POSIX
$sel:botVersion:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe Text
$sel:botId:DescribeCustomVocabularyMetadataResponse' :: DescribeCustomVocabularyMetadataResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
botId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
botVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CustomVocabularyStatus
customVocabularyStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
localeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus