{-# 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.LexModels.GetBot
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns metadata information for a specific bot. You must provide the
-- bot name and the bot version or alias.
--
-- This operation requires permissions for the @lex:GetBot@ action.
module Amazonka.LexModels.GetBot
  ( -- * Creating a Request
    GetBot (..),
    newGetBot,

    -- * Request Lenses
    getBot_name,
    getBot_versionOrAlias,

    -- * Destructuring the Response
    GetBotResponse (..),
    newGetBotResponse,

    -- * Response Lenses
    getBotResponse_abortStatement,
    getBotResponse_checksum,
    getBotResponse_childDirected,
    getBotResponse_clarificationPrompt,
    getBotResponse_createdDate,
    getBotResponse_description,
    getBotResponse_detectSentiment,
    getBotResponse_enableModelImprovements,
    getBotResponse_failureReason,
    getBotResponse_idleSessionTTLInSeconds,
    getBotResponse_intents,
    getBotResponse_lastUpdatedDate,
    getBotResponse_locale,
    getBotResponse_name,
    getBotResponse_nluIntentConfidenceThreshold,
    getBotResponse_status,
    getBotResponse_version,
    getBotResponse_voiceId,
    getBotResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetBot' smart constructor.
data GetBot = GetBot'
  { -- | The name of the bot. The name is case sensitive.
    GetBot -> Text
name :: Prelude.Text,
    -- | The version or alias of the bot.
    GetBot -> Text
versionOrAlias :: Prelude.Text
  }
  deriving (GetBot -> GetBot -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBot -> GetBot -> Bool
$c/= :: GetBot -> GetBot -> Bool
== :: GetBot -> GetBot -> Bool
$c== :: GetBot -> GetBot -> Bool
Prelude.Eq, ReadPrec [GetBot]
ReadPrec GetBot
Int -> ReadS GetBot
ReadS [GetBot]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBot]
$creadListPrec :: ReadPrec [GetBot]
readPrec :: ReadPrec GetBot
$creadPrec :: ReadPrec GetBot
readList :: ReadS [GetBot]
$creadList :: ReadS [GetBot]
readsPrec :: Int -> ReadS GetBot
$creadsPrec :: Int -> ReadS GetBot
Prelude.Read, Int -> GetBot -> ShowS
[GetBot] -> ShowS
GetBot -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBot] -> ShowS
$cshowList :: [GetBot] -> ShowS
show :: GetBot -> String
$cshow :: GetBot -> String
showsPrec :: Int -> GetBot -> ShowS
$cshowsPrec :: Int -> GetBot -> ShowS
Prelude.Show, forall x. Rep GetBot x -> GetBot
forall x. GetBot -> Rep GetBot x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBot x -> GetBot
$cfrom :: forall x. GetBot -> Rep GetBot x
Prelude.Generic)

-- |
-- Create a value of 'GetBot' 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:
--
-- 'name', 'getBot_name' - The name of the bot. The name is case sensitive.
--
-- 'versionOrAlias', 'getBot_versionOrAlias' - The version or alias of the bot.
newGetBot ::
  -- | 'name'
  Prelude.Text ->
  -- | 'versionOrAlias'
  Prelude.Text ->
  GetBot
newGetBot :: Text -> Text -> GetBot
newGetBot Text
pName_ Text
pVersionOrAlias_ =
  GetBot'
    { $sel:name:GetBot' :: Text
name = Text
pName_,
      $sel:versionOrAlias:GetBot' :: Text
versionOrAlias = Text
pVersionOrAlias_
    }

-- | The name of the bot. The name is case sensitive.
getBot_name :: Lens.Lens' GetBot Prelude.Text
getBot_name :: Lens' GetBot Text
getBot_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBot' {Text
name :: Text
$sel:name:GetBot' :: GetBot -> Text
name} -> Text
name) (\s :: GetBot
s@GetBot' {} Text
a -> GetBot
s {$sel:name:GetBot' :: Text
name = Text
a} :: GetBot)

-- | The version or alias of the bot.
getBot_versionOrAlias :: Lens.Lens' GetBot Prelude.Text
getBot_versionOrAlias :: Lens' GetBot Text
getBot_versionOrAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBot' {Text
versionOrAlias :: Text
$sel:versionOrAlias:GetBot' :: GetBot -> Text
versionOrAlias} -> Text
versionOrAlias) (\s :: GetBot
s@GetBot' {} Text
a -> GetBot
s {$sel:versionOrAlias:GetBot' :: Text
versionOrAlias = Text
a} :: GetBot)

instance Core.AWSRequest GetBot where
  type AWSResponse GetBot = GetBotResponse
  request :: (Service -> Service) -> GetBot -> Request GetBot
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 GetBot
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetBot)))
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 Statement
-> Maybe Text
-> Maybe Bool
-> Maybe Prompt
-> Maybe POSIX
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Natural
-> Maybe [Intent]
-> Maybe POSIX
-> Maybe Locale
-> Maybe Text
-> Maybe Double
-> Maybe LexStatus
-> Maybe Text
-> Maybe Text
-> Int
-> GetBotResponse
GetBotResponse'
            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
"abortStatement")
            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
"checksum")
            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
"childDirected")
            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
"clarificationPrompt")
            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
"createdDate")
            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
"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 (Maybe a)
Data..?> Key
"detectSentiment")
            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
"enableModelImprovements")
            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
"failureReason")
            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
"idleSessionTTLInSeconds")
            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
"intents" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"lastUpdatedDate")
            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
"locale")
            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
"name")
            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
"nluIntentConfidenceThreshold")
            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
"status")
            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
"version")
            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
"voiceId")
            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 GetBot where
  hashWithSalt :: Int -> GetBot -> Int
hashWithSalt Int
_salt GetBot' {Text
versionOrAlias :: Text
name :: Text
$sel:versionOrAlias:GetBot' :: GetBot -> Text
$sel:name:GetBot' :: GetBot -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
versionOrAlias

instance Prelude.NFData GetBot where
  rnf :: GetBot -> ()
rnf GetBot' {Text
versionOrAlias :: Text
name :: Text
$sel:versionOrAlias:GetBot' :: GetBot -> Text
$sel:name:GetBot' :: GetBot -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
versionOrAlias

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

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

-- | /See:/ 'newGetBotResponse' smart constructor.
data GetBotResponse = GetBotResponse'
  { -- | The message that Amazon Lex returns when the user elects to end the
    -- conversation without completing it. For more information, see PutBot.
    GetBotResponse -> Maybe Statement
abortStatement :: Prelude.Maybe Statement,
    -- | Checksum of the bot used to identify a specific revision of the bot\'s
    -- @$LATEST@ version.
    GetBotResponse -> Maybe Text
checksum :: Prelude.Maybe Prelude.Text,
    -- | For each Amazon Lex bot created with the Amazon Lex Model Building
    -- Service, you must specify whether your use of Amazon Lex is related to a
    -- website, program, or other application that is directed or targeted, in
    -- whole or in part, to children under age 13 and subject to the
    -- Children\'s Online Privacy Protection Act (COPPA) by specifying @true@
    -- or @false@ in the @childDirected@ field. By specifying @true@ in the
    -- @childDirected@ field, you confirm that your use of Amazon Lex __is__
    -- related to a website, program, or other application that is directed or
    -- targeted, in whole or in part, to children under age 13 and subject to
    -- COPPA. By specifying @false@ in the @childDirected@ field, you confirm
    -- that your use of Amazon Lex __is not__ related to a website, program, or
    -- other application that is directed or targeted, in whole or in part, to
    -- children under age 13 and subject to COPPA. You may not specify a
    -- default value for the @childDirected@ field that does not accurately
    -- reflect whether your use of Amazon Lex is related to a website, program,
    -- or other application that is directed or targeted, in whole or in part,
    -- to children under age 13 and subject to COPPA.
    --
    -- If your use of Amazon Lex relates to a website, program, or other
    -- application that is directed in whole or in part, to children under age
    -- 13, you must obtain any required verifiable parental consent under
    -- COPPA. For information regarding the use of Amazon Lex in connection
    -- with websites, programs, or other applications that are directed or
    -- targeted, in whole or in part, to children under age 13, see the
    -- <https://aws.amazon.com/lex/faqs#data-security Amazon Lex FAQ.>
    GetBotResponse -> Maybe Bool
childDirected :: Prelude.Maybe Prelude.Bool,
    -- | The message Amazon Lex uses when it doesn\'t understand the user\'s
    -- request. For more information, see PutBot.
    GetBotResponse -> Maybe Prompt
clarificationPrompt :: Prelude.Maybe Prompt,
    -- | The date that the bot was created.
    GetBotResponse -> Maybe POSIX
createdDate :: Prelude.Maybe Data.POSIX,
    -- | A description of the bot.
    GetBotResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether user utterances should be sent to Amazon Comprehend
    -- for sentiment analysis.
    GetBotResponse -> Maybe Bool
detectSentiment :: Prelude.Maybe Prelude.Bool,
    -- | Indicates whether the bot uses accuracy improvements. @true@ indicates
    -- that the bot is using the improvements, otherwise, @false@.
    GetBotResponse -> Maybe Bool
enableModelImprovements :: Prelude.Maybe Prelude.Bool,
    -- | If @status@ is @FAILED@, Amazon Lex explains why it failed to build the
    -- bot.
    GetBotResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The maximum time in seconds that Amazon Lex retains the data gathered in
    -- a conversation. For more information, see PutBot.
    GetBotResponse -> Maybe Natural
idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,
    -- | An array of @intent@ objects. For more information, see PutBot.
    GetBotResponse -> Maybe [Intent]
intents :: Prelude.Maybe [Intent],
    -- | The date that the bot was updated. When you create a resource, the
    -- creation date and last updated date are the same.
    GetBotResponse -> Maybe POSIX
lastUpdatedDate :: Prelude.Maybe Data.POSIX,
    -- | The target locale for the bot.
    GetBotResponse -> Maybe Locale
locale :: Prelude.Maybe Locale,
    -- | The name of the bot.
    GetBotResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The score that determines where Amazon Lex inserts the
    -- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when
    -- returning alternative intents in a
    -- <https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html PostContent>
    -- or
    -- <https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html PostText>
    -- response. @AMAZON.FallbackIntent@ is inserted if the confidence score
    -- for all intents is below this value. @AMAZON.KendraSearchIntent@ is only
    -- inserted if it is configured for the bot.
    GetBotResponse -> Maybe Double
nluIntentConfidenceThreshold :: Prelude.Maybe Prelude.Double,
    -- | The status of the bot.
    --
    -- When the status is @BUILDING@ Amazon Lex is building the bot for testing
    -- and use.
    --
    -- If the status of the bot is @READY_BASIC_TESTING@, you can test the bot
    -- using the exact utterances specified in the bot\'s intents. When the bot
    -- is ready for full testing or to run, the status is @READY@.
    --
    -- If there was a problem with building the bot, the status is @FAILED@ and
    -- the @failureReason@ field explains why the bot did not build.
    --
    -- If the bot was saved but not built, the status is @NOT_BUILT@.
    GetBotResponse -> Maybe LexStatus
status :: Prelude.Maybe LexStatus,
    -- | The version of the bot. For a new bot, the version is always @$LATEST@.
    GetBotResponse -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Polly voice ID that Amazon Lex uses for voice interaction
    -- with the user. For more information, see PutBot.
    GetBotResponse -> Maybe Text
voiceId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetBotResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetBotResponse -> GetBotResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBotResponse -> GetBotResponse -> Bool
$c/= :: GetBotResponse -> GetBotResponse -> Bool
== :: GetBotResponse -> GetBotResponse -> Bool
$c== :: GetBotResponse -> GetBotResponse -> Bool
Prelude.Eq, ReadPrec [GetBotResponse]
ReadPrec GetBotResponse
Int -> ReadS GetBotResponse
ReadS [GetBotResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBotResponse]
$creadListPrec :: ReadPrec [GetBotResponse]
readPrec :: ReadPrec GetBotResponse
$creadPrec :: ReadPrec GetBotResponse
readList :: ReadS [GetBotResponse]
$creadList :: ReadS [GetBotResponse]
readsPrec :: Int -> ReadS GetBotResponse
$creadsPrec :: Int -> ReadS GetBotResponse
Prelude.Read, Int -> GetBotResponse -> ShowS
[GetBotResponse] -> ShowS
GetBotResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBotResponse] -> ShowS
$cshowList :: [GetBotResponse] -> ShowS
show :: GetBotResponse -> String
$cshow :: GetBotResponse -> String
showsPrec :: Int -> GetBotResponse -> ShowS
$cshowsPrec :: Int -> GetBotResponse -> ShowS
Prelude.Show, forall x. Rep GetBotResponse x -> GetBotResponse
forall x. GetBotResponse -> Rep GetBotResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBotResponse x -> GetBotResponse
$cfrom :: forall x. GetBotResponse -> Rep GetBotResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetBotResponse' 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:
--
-- 'abortStatement', 'getBotResponse_abortStatement' - The message that Amazon Lex returns when the user elects to end the
-- conversation without completing it. For more information, see PutBot.
--
-- 'checksum', 'getBotResponse_checksum' - Checksum of the bot used to identify a specific revision of the bot\'s
-- @$LATEST@ version.
--
-- 'childDirected', 'getBotResponse_childDirected' - For each Amazon Lex bot created with the Amazon Lex Model Building
-- Service, you must specify whether your use of Amazon Lex is related to a
-- website, program, or other application that is directed or targeted, in
-- whole or in part, to children under age 13 and subject to the
-- Children\'s Online Privacy Protection Act (COPPA) by specifying @true@
-- or @false@ in the @childDirected@ field. By specifying @true@ in the
-- @childDirected@ field, you confirm that your use of Amazon Lex __is__
-- related to a website, program, or other application that is directed or
-- targeted, in whole or in part, to children under age 13 and subject to
-- COPPA. By specifying @false@ in the @childDirected@ field, you confirm
-- that your use of Amazon Lex __is not__ related to a website, program, or
-- other application that is directed or targeted, in whole or in part, to
-- children under age 13 and subject to COPPA. You may not specify a
-- default value for the @childDirected@ field that does not accurately
-- reflect whether your use of Amazon Lex is related to a website, program,
-- or other application that is directed or targeted, in whole or in part,
-- to children under age 13 and subject to COPPA.
--
-- If your use of Amazon Lex relates to a website, program, or other
-- application that is directed in whole or in part, to children under age
-- 13, you must obtain any required verifiable parental consent under
-- COPPA. For information regarding the use of Amazon Lex in connection
-- with websites, programs, or other applications that are directed or
-- targeted, in whole or in part, to children under age 13, see the
-- <https://aws.amazon.com/lex/faqs#data-security Amazon Lex FAQ.>
--
-- 'clarificationPrompt', 'getBotResponse_clarificationPrompt' - The message Amazon Lex uses when it doesn\'t understand the user\'s
-- request. For more information, see PutBot.
--
-- 'createdDate', 'getBotResponse_createdDate' - The date that the bot was created.
--
-- 'description', 'getBotResponse_description' - A description of the bot.
--
-- 'detectSentiment', 'getBotResponse_detectSentiment' - Indicates whether user utterances should be sent to Amazon Comprehend
-- for sentiment analysis.
--
-- 'enableModelImprovements', 'getBotResponse_enableModelImprovements' - Indicates whether the bot uses accuracy improvements. @true@ indicates
-- that the bot is using the improvements, otherwise, @false@.
--
-- 'failureReason', 'getBotResponse_failureReason' - If @status@ is @FAILED@, Amazon Lex explains why it failed to build the
-- bot.
--
-- 'idleSessionTTLInSeconds', 'getBotResponse_idleSessionTTLInSeconds' - The maximum time in seconds that Amazon Lex retains the data gathered in
-- a conversation. For more information, see PutBot.
--
-- 'intents', 'getBotResponse_intents' - An array of @intent@ objects. For more information, see PutBot.
--
-- 'lastUpdatedDate', 'getBotResponse_lastUpdatedDate' - The date that the bot was updated. When you create a resource, the
-- creation date and last updated date are the same.
--
-- 'locale', 'getBotResponse_locale' - The target locale for the bot.
--
-- 'name', 'getBotResponse_name' - The name of the bot.
--
-- 'nluIntentConfidenceThreshold', 'getBotResponse_nluIntentConfidenceThreshold' - The score that determines where Amazon Lex inserts the
-- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when
-- returning alternative intents in a
-- <https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html PostContent>
-- or
-- <https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html PostText>
-- response. @AMAZON.FallbackIntent@ is inserted if the confidence score
-- for all intents is below this value. @AMAZON.KendraSearchIntent@ is only
-- inserted if it is configured for the bot.
--
-- 'status', 'getBotResponse_status' - The status of the bot.
--
-- When the status is @BUILDING@ Amazon Lex is building the bot for testing
-- and use.
--
-- If the status of the bot is @READY_BASIC_TESTING@, you can test the bot
-- using the exact utterances specified in the bot\'s intents. When the bot
-- is ready for full testing or to run, the status is @READY@.
--
-- If there was a problem with building the bot, the status is @FAILED@ and
-- the @failureReason@ field explains why the bot did not build.
--
-- If the bot was saved but not built, the status is @NOT_BUILT@.
--
-- 'version', 'getBotResponse_version' - The version of the bot. For a new bot, the version is always @$LATEST@.
--
-- 'voiceId', 'getBotResponse_voiceId' - The Amazon Polly voice ID that Amazon Lex uses for voice interaction
-- with the user. For more information, see PutBot.
--
-- 'httpStatus', 'getBotResponse_httpStatus' - The response's http status code.
newGetBotResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetBotResponse
newGetBotResponse :: Int -> GetBotResponse
newGetBotResponse Int
pHttpStatus_ =
  GetBotResponse'
    { $sel:abortStatement:GetBotResponse' :: Maybe Statement
abortStatement = forall a. Maybe a
Prelude.Nothing,
      $sel:checksum:GetBotResponse' :: Maybe Text
checksum = forall a. Maybe a
Prelude.Nothing,
      $sel:childDirected:GetBotResponse' :: Maybe Bool
childDirected = forall a. Maybe a
Prelude.Nothing,
      $sel:clarificationPrompt:GetBotResponse' :: Maybe Prompt
clarificationPrompt = forall a. Maybe a
Prelude.Nothing,
      $sel:createdDate:GetBotResponse' :: Maybe POSIX
createdDate = forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetBotResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:detectSentiment:GetBotResponse' :: Maybe Bool
detectSentiment = forall a. Maybe a
Prelude.Nothing,
      $sel:enableModelImprovements:GetBotResponse' :: Maybe Bool
enableModelImprovements = forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:GetBotResponse' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
      $sel:idleSessionTTLInSeconds:GetBotResponse' :: Maybe Natural
idleSessionTTLInSeconds = forall a. Maybe a
Prelude.Nothing,
      $sel:intents:GetBotResponse' :: Maybe [Intent]
intents = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedDate:GetBotResponse' :: Maybe POSIX
lastUpdatedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:locale:GetBotResponse' :: Maybe Locale
locale = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetBotResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:nluIntentConfidenceThreshold:GetBotResponse' :: Maybe Double
nluIntentConfidenceThreshold = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetBotResponse' :: Maybe LexStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:version:GetBotResponse' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing,
      $sel:voiceId:GetBotResponse' :: Maybe Text
voiceId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetBotResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The message that Amazon Lex returns when the user elects to end the
-- conversation without completing it. For more information, see PutBot.
getBotResponse_abortStatement :: Lens.Lens' GetBotResponse (Prelude.Maybe Statement)
getBotResponse_abortStatement :: Lens' GetBotResponse (Maybe Statement)
getBotResponse_abortStatement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Statement
abortStatement :: Maybe Statement
$sel:abortStatement:GetBotResponse' :: GetBotResponse -> Maybe Statement
abortStatement} -> Maybe Statement
abortStatement) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Statement
a -> GetBotResponse
s {$sel:abortStatement:GetBotResponse' :: Maybe Statement
abortStatement = Maybe Statement
a} :: GetBotResponse)

-- | Checksum of the bot used to identify a specific revision of the bot\'s
-- @$LATEST@ version.
getBotResponse_checksum :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Text)
getBotResponse_checksum :: Lens' GetBotResponse (Maybe Text)
getBotResponse_checksum = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Text
checksum :: Maybe Text
$sel:checksum:GetBotResponse' :: GetBotResponse -> Maybe Text
checksum} -> Maybe Text
checksum) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Text
a -> GetBotResponse
s {$sel:checksum:GetBotResponse' :: Maybe Text
checksum = Maybe Text
a} :: GetBotResponse)

-- | For each Amazon Lex bot created with the Amazon Lex Model Building
-- Service, you must specify whether your use of Amazon Lex is related to a
-- website, program, or other application that is directed or targeted, in
-- whole or in part, to children under age 13 and subject to the
-- Children\'s Online Privacy Protection Act (COPPA) by specifying @true@
-- or @false@ in the @childDirected@ field. By specifying @true@ in the
-- @childDirected@ field, you confirm that your use of Amazon Lex __is__
-- related to a website, program, or other application that is directed or
-- targeted, in whole or in part, to children under age 13 and subject to
-- COPPA. By specifying @false@ in the @childDirected@ field, you confirm
-- that your use of Amazon Lex __is not__ related to a website, program, or
-- other application that is directed or targeted, in whole or in part, to
-- children under age 13 and subject to COPPA. You may not specify a
-- default value for the @childDirected@ field that does not accurately
-- reflect whether your use of Amazon Lex is related to a website, program,
-- or other application that is directed or targeted, in whole or in part,
-- to children under age 13 and subject to COPPA.
--
-- If your use of Amazon Lex relates to a website, program, or other
-- application that is directed in whole or in part, to children under age
-- 13, you must obtain any required verifiable parental consent under
-- COPPA. For information regarding the use of Amazon Lex in connection
-- with websites, programs, or other applications that are directed or
-- targeted, in whole or in part, to children under age 13, see the
-- <https://aws.amazon.com/lex/faqs#data-security Amazon Lex FAQ.>
getBotResponse_childDirected :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Bool)
getBotResponse_childDirected :: Lens' GetBotResponse (Maybe Bool)
getBotResponse_childDirected = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Bool
childDirected :: Maybe Bool
$sel:childDirected:GetBotResponse' :: GetBotResponse -> Maybe Bool
childDirected} -> Maybe Bool
childDirected) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Bool
a -> GetBotResponse
s {$sel:childDirected:GetBotResponse' :: Maybe Bool
childDirected = Maybe Bool
a} :: GetBotResponse)

-- | The message Amazon Lex uses when it doesn\'t understand the user\'s
-- request. For more information, see PutBot.
getBotResponse_clarificationPrompt :: Lens.Lens' GetBotResponse (Prelude.Maybe Prompt)
getBotResponse_clarificationPrompt :: Lens' GetBotResponse (Maybe Prompt)
getBotResponse_clarificationPrompt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Prompt
clarificationPrompt :: Maybe Prompt
$sel:clarificationPrompt:GetBotResponse' :: GetBotResponse -> Maybe Prompt
clarificationPrompt} -> Maybe Prompt
clarificationPrompt) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Prompt
a -> GetBotResponse
s {$sel:clarificationPrompt:GetBotResponse' :: Maybe Prompt
clarificationPrompt = Maybe Prompt
a} :: GetBotResponse)

-- | The date that the bot was created.
getBotResponse_createdDate :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.UTCTime)
getBotResponse_createdDate :: Lens' GetBotResponse (Maybe UTCTime)
getBotResponse_createdDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe POSIX
createdDate :: Maybe POSIX
$sel:createdDate:GetBotResponse' :: GetBotResponse -> Maybe POSIX
createdDate} -> Maybe POSIX
createdDate) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe POSIX
a -> GetBotResponse
s {$sel:createdDate:GetBotResponse' :: Maybe POSIX
createdDate = Maybe POSIX
a} :: GetBotResponse) 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

-- | A description of the bot.
getBotResponse_description :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Text)
getBotResponse_description :: Lens' GetBotResponse (Maybe Text)
getBotResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Text
description :: Maybe Text
$sel:description:GetBotResponse' :: GetBotResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Text
a -> GetBotResponse
s {$sel:description:GetBotResponse' :: Maybe Text
description = Maybe Text
a} :: GetBotResponse)

-- | Indicates whether user utterances should be sent to Amazon Comprehend
-- for sentiment analysis.
getBotResponse_detectSentiment :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Bool)
getBotResponse_detectSentiment :: Lens' GetBotResponse (Maybe Bool)
getBotResponse_detectSentiment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Bool
detectSentiment :: Maybe Bool
$sel:detectSentiment:GetBotResponse' :: GetBotResponse -> Maybe Bool
detectSentiment} -> Maybe Bool
detectSentiment) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Bool
a -> GetBotResponse
s {$sel:detectSentiment:GetBotResponse' :: Maybe Bool
detectSentiment = Maybe Bool
a} :: GetBotResponse)

-- | Indicates whether the bot uses accuracy improvements. @true@ indicates
-- that the bot is using the improvements, otherwise, @false@.
getBotResponse_enableModelImprovements :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Bool)
getBotResponse_enableModelImprovements :: Lens' GetBotResponse (Maybe Bool)
getBotResponse_enableModelImprovements = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Bool
enableModelImprovements :: Maybe Bool
$sel:enableModelImprovements:GetBotResponse' :: GetBotResponse -> Maybe Bool
enableModelImprovements} -> Maybe Bool
enableModelImprovements) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Bool
a -> GetBotResponse
s {$sel:enableModelImprovements:GetBotResponse' :: Maybe Bool
enableModelImprovements = Maybe Bool
a} :: GetBotResponse)

-- | If @status@ is @FAILED@, Amazon Lex explains why it failed to build the
-- bot.
getBotResponse_failureReason :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Text)
getBotResponse_failureReason :: Lens' GetBotResponse (Maybe Text)
getBotResponse_failureReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:GetBotResponse' :: GetBotResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Text
a -> GetBotResponse
s {$sel:failureReason:GetBotResponse' :: Maybe Text
failureReason = Maybe Text
a} :: GetBotResponse)

-- | The maximum time in seconds that Amazon Lex retains the data gathered in
-- a conversation. For more information, see PutBot.
getBotResponse_idleSessionTTLInSeconds :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Natural)
getBotResponse_idleSessionTTLInSeconds :: Lens' GetBotResponse (Maybe Natural)
getBotResponse_idleSessionTTLInSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Natural
idleSessionTTLInSeconds :: Maybe Natural
$sel:idleSessionTTLInSeconds:GetBotResponse' :: GetBotResponse -> Maybe Natural
idleSessionTTLInSeconds} -> Maybe Natural
idleSessionTTLInSeconds) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Natural
a -> GetBotResponse
s {$sel:idleSessionTTLInSeconds:GetBotResponse' :: Maybe Natural
idleSessionTTLInSeconds = Maybe Natural
a} :: GetBotResponse)

-- | An array of @intent@ objects. For more information, see PutBot.
getBotResponse_intents :: Lens.Lens' GetBotResponse (Prelude.Maybe [Intent])
getBotResponse_intents :: Lens' GetBotResponse (Maybe [Intent])
getBotResponse_intents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe [Intent]
intents :: Maybe [Intent]
$sel:intents:GetBotResponse' :: GetBotResponse -> Maybe [Intent]
intents} -> Maybe [Intent]
intents) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe [Intent]
a -> GetBotResponse
s {$sel:intents:GetBotResponse' :: Maybe [Intent]
intents = Maybe [Intent]
a} :: GetBotResponse) 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 date that the bot was updated. When you create a resource, the
-- creation date and last updated date are the same.
getBotResponse_lastUpdatedDate :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.UTCTime)
getBotResponse_lastUpdatedDate :: Lens' GetBotResponse (Maybe UTCTime)
getBotResponse_lastUpdatedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe POSIX
lastUpdatedDate :: Maybe POSIX
$sel:lastUpdatedDate:GetBotResponse' :: GetBotResponse -> Maybe POSIX
lastUpdatedDate} -> Maybe POSIX
lastUpdatedDate) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe POSIX
a -> GetBotResponse
s {$sel:lastUpdatedDate:GetBotResponse' :: Maybe POSIX
lastUpdatedDate = Maybe POSIX
a} :: GetBotResponse) 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 target locale for the bot.
getBotResponse_locale :: Lens.Lens' GetBotResponse (Prelude.Maybe Locale)
getBotResponse_locale :: Lens' GetBotResponse (Maybe Locale)
getBotResponse_locale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Locale
locale :: Maybe Locale
$sel:locale:GetBotResponse' :: GetBotResponse -> Maybe Locale
locale} -> Maybe Locale
locale) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Locale
a -> GetBotResponse
s {$sel:locale:GetBotResponse' :: Maybe Locale
locale = Maybe Locale
a} :: GetBotResponse)

-- | The name of the bot.
getBotResponse_name :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Text)
getBotResponse_name :: Lens' GetBotResponse (Maybe Text)
getBotResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Text
name :: Maybe Text
$sel:name:GetBotResponse' :: GetBotResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Text
a -> GetBotResponse
s {$sel:name:GetBotResponse' :: Maybe Text
name = Maybe Text
a} :: GetBotResponse)

-- | The score that determines where Amazon Lex inserts the
-- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when
-- returning alternative intents in a
-- <https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html PostContent>
-- or
-- <https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html PostText>
-- response. @AMAZON.FallbackIntent@ is inserted if the confidence score
-- for all intents is below this value. @AMAZON.KendraSearchIntent@ is only
-- inserted if it is configured for the bot.
getBotResponse_nluIntentConfidenceThreshold :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Double)
getBotResponse_nluIntentConfidenceThreshold :: Lens' GetBotResponse (Maybe Double)
getBotResponse_nluIntentConfidenceThreshold = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Double
nluIntentConfidenceThreshold :: Maybe Double
$sel:nluIntentConfidenceThreshold:GetBotResponse' :: GetBotResponse -> Maybe Double
nluIntentConfidenceThreshold} -> Maybe Double
nluIntentConfidenceThreshold) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Double
a -> GetBotResponse
s {$sel:nluIntentConfidenceThreshold:GetBotResponse' :: Maybe Double
nluIntentConfidenceThreshold = Maybe Double
a} :: GetBotResponse)

-- | The status of the bot.
--
-- When the status is @BUILDING@ Amazon Lex is building the bot for testing
-- and use.
--
-- If the status of the bot is @READY_BASIC_TESTING@, you can test the bot
-- using the exact utterances specified in the bot\'s intents. When the bot
-- is ready for full testing or to run, the status is @READY@.
--
-- If there was a problem with building the bot, the status is @FAILED@ and
-- the @failureReason@ field explains why the bot did not build.
--
-- If the bot was saved but not built, the status is @NOT_BUILT@.
getBotResponse_status :: Lens.Lens' GetBotResponse (Prelude.Maybe LexStatus)
getBotResponse_status :: Lens' GetBotResponse (Maybe LexStatus)
getBotResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe LexStatus
status :: Maybe LexStatus
$sel:status:GetBotResponse' :: GetBotResponse -> Maybe LexStatus
status} -> Maybe LexStatus
status) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe LexStatus
a -> GetBotResponse
s {$sel:status:GetBotResponse' :: Maybe LexStatus
status = Maybe LexStatus
a} :: GetBotResponse)

-- | The version of the bot. For a new bot, the version is always @$LATEST@.
getBotResponse_version :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Text)
getBotResponse_version :: Lens' GetBotResponse (Maybe Text)
getBotResponse_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Text
version :: Maybe Text
$sel:version:GetBotResponse' :: GetBotResponse -> Maybe Text
version} -> Maybe Text
version) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Text
a -> GetBotResponse
s {$sel:version:GetBotResponse' :: Maybe Text
version = Maybe Text
a} :: GetBotResponse)

-- | The Amazon Polly voice ID that Amazon Lex uses for voice interaction
-- with the user. For more information, see PutBot.
getBotResponse_voiceId :: Lens.Lens' GetBotResponse (Prelude.Maybe Prelude.Text)
getBotResponse_voiceId :: Lens' GetBotResponse (Maybe Text)
getBotResponse_voiceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBotResponse' {Maybe Text
voiceId :: Maybe Text
$sel:voiceId:GetBotResponse' :: GetBotResponse -> Maybe Text
voiceId} -> Maybe Text
voiceId) (\s :: GetBotResponse
s@GetBotResponse' {} Maybe Text
a -> GetBotResponse
s {$sel:voiceId:GetBotResponse' :: Maybe Text
voiceId = Maybe Text
a} :: GetBotResponse)

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

instance Prelude.NFData GetBotResponse where
  rnf :: GetBotResponse -> ()
rnf GetBotResponse' {Int
Maybe Bool
Maybe Double
Maybe Natural
Maybe [Intent]
Maybe Text
Maybe POSIX
Maybe LexStatus
Maybe Locale
Maybe Prompt
Maybe Statement
httpStatus :: Int
voiceId :: Maybe Text
version :: Maybe Text
status :: Maybe LexStatus
nluIntentConfidenceThreshold :: Maybe Double
name :: Maybe Text
locale :: Maybe Locale
lastUpdatedDate :: Maybe POSIX
intents :: Maybe [Intent]
idleSessionTTLInSeconds :: Maybe Natural
failureReason :: Maybe Text
enableModelImprovements :: Maybe Bool
detectSentiment :: Maybe Bool
description :: Maybe Text
createdDate :: Maybe POSIX
clarificationPrompt :: Maybe Prompt
childDirected :: Maybe Bool
checksum :: Maybe Text
abortStatement :: Maybe Statement
$sel:httpStatus:GetBotResponse' :: GetBotResponse -> Int
$sel:voiceId:GetBotResponse' :: GetBotResponse -> Maybe Text
$sel:version:GetBotResponse' :: GetBotResponse -> Maybe Text
$sel:status:GetBotResponse' :: GetBotResponse -> Maybe LexStatus
$sel:nluIntentConfidenceThreshold:GetBotResponse' :: GetBotResponse -> Maybe Double
$sel:name:GetBotResponse' :: GetBotResponse -> Maybe Text
$sel:locale:GetBotResponse' :: GetBotResponse -> Maybe Locale
$sel:lastUpdatedDate:GetBotResponse' :: GetBotResponse -> Maybe POSIX
$sel:intents:GetBotResponse' :: GetBotResponse -> Maybe [Intent]
$sel:idleSessionTTLInSeconds:GetBotResponse' :: GetBotResponse -> Maybe Natural
$sel:failureReason:GetBotResponse' :: GetBotResponse -> Maybe Text
$sel:enableModelImprovements:GetBotResponse' :: GetBotResponse -> Maybe Bool
$sel:detectSentiment:GetBotResponse' :: GetBotResponse -> Maybe Bool
$sel:description:GetBotResponse' :: GetBotResponse -> Maybe Text
$sel:createdDate:GetBotResponse' :: GetBotResponse -> Maybe POSIX
$sel:clarificationPrompt:GetBotResponse' :: GetBotResponse -> Maybe Prompt
$sel:childDirected:GetBotResponse' :: GetBotResponse -> Maybe Bool
$sel:checksum:GetBotResponse' :: GetBotResponse -> Maybe Text
$sel:abortStatement:GetBotResponse' :: GetBotResponse -> Maybe Statement
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Statement
abortStatement
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
checksum
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
childDirected
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Prompt
clarificationPrompt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
detectSentiment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enableModelImprovements
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
idleSessionTTLInSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Intent]
intents
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Locale
locale
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
nluIntentConfidenceThreshold
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LexStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
voiceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus