{-# 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.CreateBotVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new version of the bot based on the @$LATEST@ version. If the
-- @$LATEST@ version of this resource hasn\'t changed since you created the
-- last version, Amazon Lex doesn\'t create a new version. It returns the
-- last created version.
--
-- You can update only the @$LATEST@ version of the bot. You can\'t update
-- the numbered versions that you create with the @CreateBotVersion@
-- operation.
--
-- When you create the first version of a bot, Amazon Lex sets the version
-- to 1. Subsequent versions increment by 1. For more information, see
-- versioning-intro.
--
-- This operation requires permission for the @lex:CreateBotVersion@
-- action.
module Amazonka.LexModels.CreateBotVersion
  ( -- * Creating a Request
    CreateBotVersion (..),
    newCreateBotVersion,

    -- * Request Lenses
    createBotVersion_checksum,
    createBotVersion_name,

    -- * Destructuring the Response
    CreateBotVersionResponse (..),
    newCreateBotVersionResponse,

    -- * Response Lenses
    createBotVersionResponse_abortStatement,
    createBotVersionResponse_checksum,
    createBotVersionResponse_childDirected,
    createBotVersionResponse_clarificationPrompt,
    createBotVersionResponse_createdDate,
    createBotVersionResponse_description,
    createBotVersionResponse_detectSentiment,
    createBotVersionResponse_enableModelImprovements,
    createBotVersionResponse_failureReason,
    createBotVersionResponse_idleSessionTTLInSeconds,
    createBotVersionResponse_intents,
    createBotVersionResponse_lastUpdatedDate,
    createBotVersionResponse_locale,
    createBotVersionResponse_name,
    createBotVersionResponse_status,
    createBotVersionResponse_version,
    createBotVersionResponse_voiceId,
    createBotVersionResponse_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:/ 'newCreateBotVersion' smart constructor.
data CreateBotVersion = CreateBotVersion'
  { -- | Identifies a specific revision of the @$LATEST@ version of the bot. If
    -- you specify a checksum and the @$LATEST@ version of the bot has a
    -- different checksum, a @PreconditionFailedException@ exception is
    -- returned and Amazon Lex doesn\'t publish a new version. If you don\'t
    -- specify a checksum, Amazon Lex publishes the @$LATEST@ version.
    CreateBotVersion -> Maybe Text
checksum :: Prelude.Maybe Prelude.Text,
    -- | The name of the bot that you want to create a new version of. The name
    -- is case sensitive.
    CreateBotVersion -> Text
name :: Prelude.Text
  }
  deriving (CreateBotVersion -> CreateBotVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateBotVersion -> CreateBotVersion -> Bool
$c/= :: CreateBotVersion -> CreateBotVersion -> Bool
== :: CreateBotVersion -> CreateBotVersion -> Bool
$c== :: CreateBotVersion -> CreateBotVersion -> Bool
Prelude.Eq, ReadPrec [CreateBotVersion]
ReadPrec CreateBotVersion
Int -> ReadS CreateBotVersion
ReadS [CreateBotVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateBotVersion]
$creadListPrec :: ReadPrec [CreateBotVersion]
readPrec :: ReadPrec CreateBotVersion
$creadPrec :: ReadPrec CreateBotVersion
readList :: ReadS [CreateBotVersion]
$creadList :: ReadS [CreateBotVersion]
readsPrec :: Int -> ReadS CreateBotVersion
$creadsPrec :: Int -> ReadS CreateBotVersion
Prelude.Read, Int -> CreateBotVersion -> ShowS
[CreateBotVersion] -> ShowS
CreateBotVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateBotVersion] -> ShowS
$cshowList :: [CreateBotVersion] -> ShowS
show :: CreateBotVersion -> String
$cshow :: CreateBotVersion -> String
showsPrec :: Int -> CreateBotVersion -> ShowS
$cshowsPrec :: Int -> CreateBotVersion -> ShowS
Prelude.Show, forall x. Rep CreateBotVersion x -> CreateBotVersion
forall x. CreateBotVersion -> Rep CreateBotVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateBotVersion x -> CreateBotVersion
$cfrom :: forall x. CreateBotVersion -> Rep CreateBotVersion x
Prelude.Generic)

-- |
-- Create a value of 'CreateBotVersion' 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:
--
-- 'checksum', 'createBotVersion_checksum' - Identifies a specific revision of the @$LATEST@ version of the bot. If
-- you specify a checksum and the @$LATEST@ version of the bot has a
-- different checksum, a @PreconditionFailedException@ exception is
-- returned and Amazon Lex doesn\'t publish a new version. If you don\'t
-- specify a checksum, Amazon Lex publishes the @$LATEST@ version.
--
-- 'name', 'createBotVersion_name' - The name of the bot that you want to create a new version of. The name
-- is case sensitive.
newCreateBotVersion ::
  -- | 'name'
  Prelude.Text ->
  CreateBotVersion
newCreateBotVersion :: Text -> CreateBotVersion
newCreateBotVersion Text
pName_ =
  CreateBotVersion'
    { $sel:checksum:CreateBotVersion' :: Maybe Text
checksum = forall a. Maybe a
Prelude.Nothing,
      $sel:name:CreateBotVersion' :: Text
name = Text
pName_
    }

-- | Identifies a specific revision of the @$LATEST@ version of the bot. If
-- you specify a checksum and the @$LATEST@ version of the bot has a
-- different checksum, a @PreconditionFailedException@ exception is
-- returned and Amazon Lex doesn\'t publish a new version. If you don\'t
-- specify a checksum, Amazon Lex publishes the @$LATEST@ version.
createBotVersion_checksum :: Lens.Lens' CreateBotVersion (Prelude.Maybe Prelude.Text)
createBotVersion_checksum :: Lens' CreateBotVersion (Maybe Text)
createBotVersion_checksum = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersion' {Maybe Text
checksum :: Maybe Text
$sel:checksum:CreateBotVersion' :: CreateBotVersion -> Maybe Text
checksum} -> Maybe Text
checksum) (\s :: CreateBotVersion
s@CreateBotVersion' {} Maybe Text
a -> CreateBotVersion
s {$sel:checksum:CreateBotVersion' :: Maybe Text
checksum = Maybe Text
a} :: CreateBotVersion)

-- | The name of the bot that you want to create a new version of. The name
-- is case sensitive.
createBotVersion_name :: Lens.Lens' CreateBotVersion Prelude.Text
createBotVersion_name :: Lens' CreateBotVersion Text
createBotVersion_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersion' {Text
name :: Text
$sel:name:CreateBotVersion' :: CreateBotVersion -> Text
name} -> Text
name) (\s :: CreateBotVersion
s@CreateBotVersion' {} Text
a -> CreateBotVersion
s {$sel:name:CreateBotVersion' :: Text
name = Text
a} :: CreateBotVersion)

instance Core.AWSRequest CreateBotVersion where
  type
    AWSResponse CreateBotVersion =
      CreateBotVersionResponse
  request :: (Service -> Service)
-> CreateBotVersion -> Request CreateBotVersion
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateBotVersion
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateBotVersion)))
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 LexStatus
-> Maybe Text
-> Maybe Text
-> Int
-> CreateBotVersionResponse
CreateBotVersionResponse'
            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
"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 CreateBotVersion where
  hashWithSalt :: Int -> CreateBotVersion -> Int
hashWithSalt Int
_salt CreateBotVersion' {Maybe Text
Text
name :: Text
checksum :: Maybe Text
$sel:name:CreateBotVersion' :: CreateBotVersion -> Text
$sel:checksum:CreateBotVersion' :: CreateBotVersion -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
checksum
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name

instance Prelude.NFData CreateBotVersion where
  rnf :: CreateBotVersion -> ()
rnf CreateBotVersion' {Maybe Text
Text
name :: Text
checksum :: Maybe Text
$sel:name:CreateBotVersion' :: CreateBotVersion -> Text
$sel:checksum:CreateBotVersion' :: CreateBotVersion -> Maybe Text
..} =
    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 Text
name

instance Data.ToHeaders CreateBotVersion where
  toHeaders :: CreateBotVersion -> 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.ToJSON CreateBotVersion where
  toJSON :: CreateBotVersion -> Value
toJSON CreateBotVersion' {Maybe Text
Text
name :: Text
checksum :: Maybe Text
$sel:name:CreateBotVersion' :: CreateBotVersion -> Text
$sel:checksum:CreateBotVersion' :: CreateBotVersion -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [(Key
"checksum" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
checksum]
      )

instance Data.ToPath CreateBotVersion where
  toPath :: CreateBotVersion -> ByteString
toPath CreateBotVersion' {Maybe Text
Text
name :: Text
checksum :: Maybe Text
$sel:name:CreateBotVersion' :: CreateBotVersion -> Text
$sel:checksum:CreateBotVersion' :: CreateBotVersion -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/bots/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
name, ByteString
"/versions"]

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

-- | /See:/ 'newCreateBotVersionResponse' smart constructor.
data CreateBotVersionResponse = CreateBotVersionResponse'
  { -- | The message that Amazon Lex uses to cancel a conversation. For more
    -- information, see PutBot.
    CreateBotVersionResponse -> Maybe Statement
abortStatement :: Prelude.Maybe Statement,
    -- | Checksum identifying the version of the bot that was created.
    CreateBotVersionResponse -> 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.>
    CreateBotVersionResponse -> Maybe Bool
childDirected :: Prelude.Maybe Prelude.Bool,
    -- | The message that Amazon Lex uses when it doesn\'t understand the user\'s
    -- request. For more information, see PutBot.
    CreateBotVersionResponse -> Maybe Prompt
clarificationPrompt :: Prelude.Maybe Prompt,
    -- | The date when the bot version was created.
    CreateBotVersionResponse -> Maybe POSIX
createdDate :: Prelude.Maybe Data.POSIX,
    -- | A description of the bot.
    CreateBotVersionResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether utterances entered by the user should be sent to
    -- Amazon Comprehend for sentiment analysis.
    CreateBotVersionResponse -> 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@.
    CreateBotVersionResponse -> Maybe Bool
enableModelImprovements :: Prelude.Maybe Prelude.Bool,
    -- | If @status@ is @FAILED@, Amazon Lex provides the reason that it failed
    -- to build the bot.
    CreateBotVersionResponse -> 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.
    CreateBotVersionResponse -> Maybe Natural
idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,
    -- | An array of @Intent@ objects. For more information, see PutBot.
    CreateBotVersionResponse -> Maybe [Intent]
intents :: Prelude.Maybe [Intent],
    -- | The date when the @$LATEST@ version of this bot was updated.
    CreateBotVersionResponse -> Maybe POSIX
lastUpdatedDate :: Prelude.Maybe Data.POSIX,
    -- | Specifies the target locale for the bot.
    CreateBotVersionResponse -> Maybe Locale
locale :: Prelude.Maybe Locale,
    -- | The name of the bot.
    CreateBotVersionResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | When you send a request to create or update a bot, Amazon Lex sets the
    -- @status@ response element to @BUILDING@. After Amazon Lex builds the
    -- bot, it sets @status@ to @READY@. If Amazon Lex can\'t build the bot, it
    -- sets @status@ to @FAILED@. Amazon Lex returns the reason for the failure
    -- in the @failureReason@ response element.
    CreateBotVersionResponse -> Maybe LexStatus
status :: Prelude.Maybe LexStatus,
    -- | The version of the bot.
    CreateBotVersionResponse -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Polly voice ID that Amazon Lex uses for voice interactions
    -- with the user.
    CreateBotVersionResponse -> Maybe Text
voiceId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateBotVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateBotVersionResponse -> CreateBotVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateBotVersionResponse -> CreateBotVersionResponse -> Bool
$c/= :: CreateBotVersionResponse -> CreateBotVersionResponse -> Bool
== :: CreateBotVersionResponse -> CreateBotVersionResponse -> Bool
$c== :: CreateBotVersionResponse -> CreateBotVersionResponse -> Bool
Prelude.Eq, ReadPrec [CreateBotVersionResponse]
ReadPrec CreateBotVersionResponse
Int -> ReadS CreateBotVersionResponse
ReadS [CreateBotVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateBotVersionResponse]
$creadListPrec :: ReadPrec [CreateBotVersionResponse]
readPrec :: ReadPrec CreateBotVersionResponse
$creadPrec :: ReadPrec CreateBotVersionResponse
readList :: ReadS [CreateBotVersionResponse]
$creadList :: ReadS [CreateBotVersionResponse]
readsPrec :: Int -> ReadS CreateBotVersionResponse
$creadsPrec :: Int -> ReadS CreateBotVersionResponse
Prelude.Read, Int -> CreateBotVersionResponse -> ShowS
[CreateBotVersionResponse] -> ShowS
CreateBotVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateBotVersionResponse] -> ShowS
$cshowList :: [CreateBotVersionResponse] -> ShowS
show :: CreateBotVersionResponse -> String
$cshow :: CreateBotVersionResponse -> String
showsPrec :: Int -> CreateBotVersionResponse -> ShowS
$cshowsPrec :: Int -> CreateBotVersionResponse -> ShowS
Prelude.Show, forall x.
Rep CreateBotVersionResponse x -> CreateBotVersionResponse
forall x.
CreateBotVersionResponse -> Rep CreateBotVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateBotVersionResponse x -> CreateBotVersionResponse
$cfrom :: forall x.
CreateBotVersionResponse -> Rep CreateBotVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateBotVersionResponse' 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', 'createBotVersionResponse_abortStatement' - The message that Amazon Lex uses to cancel a conversation. For more
-- information, see PutBot.
--
-- 'checksum', 'createBotVersionResponse_checksum' - Checksum identifying the version of the bot that was created.
--
-- 'childDirected', 'createBotVersionResponse_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', 'createBotVersionResponse_clarificationPrompt' - The message that Amazon Lex uses when it doesn\'t understand the user\'s
-- request. For more information, see PutBot.
--
-- 'createdDate', 'createBotVersionResponse_createdDate' - The date when the bot version was created.
--
-- 'description', 'createBotVersionResponse_description' - A description of the bot.
--
-- 'detectSentiment', 'createBotVersionResponse_detectSentiment' - Indicates whether utterances entered by the user should be sent to
-- Amazon Comprehend for sentiment analysis.
--
-- 'enableModelImprovements', 'createBotVersionResponse_enableModelImprovements' - Indicates whether the bot uses accuracy improvements. @true@ indicates
-- that the bot is using the improvements, otherwise, @false@.
--
-- 'failureReason', 'createBotVersionResponse_failureReason' - If @status@ is @FAILED@, Amazon Lex provides the reason that it failed
-- to build the bot.
--
-- 'idleSessionTTLInSeconds', 'createBotVersionResponse_idleSessionTTLInSeconds' - The maximum time in seconds that Amazon Lex retains the data gathered in
-- a conversation. For more information, see PutBot.
--
-- 'intents', 'createBotVersionResponse_intents' - An array of @Intent@ objects. For more information, see PutBot.
--
-- 'lastUpdatedDate', 'createBotVersionResponse_lastUpdatedDate' - The date when the @$LATEST@ version of this bot was updated.
--
-- 'locale', 'createBotVersionResponse_locale' - Specifies the target locale for the bot.
--
-- 'name', 'createBotVersionResponse_name' - The name of the bot.
--
-- 'status', 'createBotVersionResponse_status' - When you send a request to create or update a bot, Amazon Lex sets the
-- @status@ response element to @BUILDING@. After Amazon Lex builds the
-- bot, it sets @status@ to @READY@. If Amazon Lex can\'t build the bot, it
-- sets @status@ to @FAILED@. Amazon Lex returns the reason for the failure
-- in the @failureReason@ response element.
--
-- 'version', 'createBotVersionResponse_version' - The version of the bot.
--
-- 'voiceId', 'createBotVersionResponse_voiceId' - The Amazon Polly voice ID that Amazon Lex uses for voice interactions
-- with the user.
--
-- 'httpStatus', 'createBotVersionResponse_httpStatus' - The response's http status code.
newCreateBotVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateBotVersionResponse
newCreateBotVersionResponse :: Int -> CreateBotVersionResponse
newCreateBotVersionResponse Int
pHttpStatus_ =
  CreateBotVersionResponse'
    { $sel:abortStatement:CreateBotVersionResponse' :: Maybe Statement
abortStatement =
        forall a. Maybe a
Prelude.Nothing,
      $sel:checksum:CreateBotVersionResponse' :: Maybe Text
checksum = forall a. Maybe a
Prelude.Nothing,
      $sel:childDirected:CreateBotVersionResponse' :: Maybe Bool
childDirected = forall a. Maybe a
Prelude.Nothing,
      $sel:clarificationPrompt:CreateBotVersionResponse' :: Maybe Prompt
clarificationPrompt = forall a. Maybe a
Prelude.Nothing,
      $sel:createdDate:CreateBotVersionResponse' :: Maybe POSIX
createdDate = forall a. Maybe a
Prelude.Nothing,
      $sel:description:CreateBotVersionResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:detectSentiment:CreateBotVersionResponse' :: Maybe Bool
detectSentiment = forall a. Maybe a
Prelude.Nothing,
      $sel:enableModelImprovements:CreateBotVersionResponse' :: Maybe Bool
enableModelImprovements = forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:CreateBotVersionResponse' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
      $sel:idleSessionTTLInSeconds:CreateBotVersionResponse' :: Maybe Natural
idleSessionTTLInSeconds = forall a. Maybe a
Prelude.Nothing,
      $sel:intents:CreateBotVersionResponse' :: Maybe [Intent]
intents = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedDate:CreateBotVersionResponse' :: Maybe POSIX
lastUpdatedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:locale:CreateBotVersionResponse' :: Maybe Locale
locale = forall a. Maybe a
Prelude.Nothing,
      $sel:name:CreateBotVersionResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:status:CreateBotVersionResponse' :: Maybe LexStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:version:CreateBotVersionResponse' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing,
      $sel:voiceId:CreateBotVersionResponse' :: Maybe Text
voiceId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateBotVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The message that Amazon Lex uses to cancel a conversation. For more
-- information, see PutBot.
createBotVersionResponse_abortStatement :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Statement)
createBotVersionResponse_abortStatement :: Lens' CreateBotVersionResponse (Maybe Statement)
createBotVersionResponse_abortStatement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe Statement
abortStatement :: Maybe Statement
$sel:abortStatement:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Statement
abortStatement} -> Maybe Statement
abortStatement) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe Statement
a -> CreateBotVersionResponse
s {$sel:abortStatement:CreateBotVersionResponse' :: Maybe Statement
abortStatement = Maybe Statement
a} :: CreateBotVersionResponse)

-- | Checksum identifying the version of the bot that was created.
createBotVersionResponse_checksum :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Text)
createBotVersionResponse_checksum :: Lens' CreateBotVersionResponse (Maybe Text)
createBotVersionResponse_checksum = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe Text
checksum :: Maybe Text
$sel:checksum:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
checksum} -> Maybe Text
checksum) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe Text
a -> CreateBotVersionResponse
s {$sel:checksum:CreateBotVersionResponse' :: Maybe Text
checksum = Maybe Text
a} :: CreateBotVersionResponse)

-- | 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.>
createBotVersionResponse_childDirected :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Bool)
createBotVersionResponse_childDirected :: Lens' CreateBotVersionResponse (Maybe Bool)
createBotVersionResponse_childDirected = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe Bool
childDirected :: Maybe Bool
$sel:childDirected:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Bool
childDirected} -> Maybe Bool
childDirected) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe Bool
a -> CreateBotVersionResponse
s {$sel:childDirected:CreateBotVersionResponse' :: Maybe Bool
childDirected = Maybe Bool
a} :: CreateBotVersionResponse)

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

-- | The date when the bot version was created.
createBotVersionResponse_createdDate :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.UTCTime)
createBotVersionResponse_createdDate :: Lens' CreateBotVersionResponse (Maybe UTCTime)
createBotVersionResponse_createdDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe POSIX
createdDate :: Maybe POSIX
$sel:createdDate:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe POSIX
createdDate} -> Maybe POSIX
createdDate) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe POSIX
a -> CreateBotVersionResponse
s {$sel:createdDate:CreateBotVersionResponse' :: Maybe POSIX
createdDate = Maybe POSIX
a} :: CreateBotVersionResponse) 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.
createBotVersionResponse_description :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Text)
createBotVersionResponse_description :: Lens' CreateBotVersionResponse (Maybe Text)
createBotVersionResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe Text
description :: Maybe Text
$sel:description:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe Text
a -> CreateBotVersionResponse
s {$sel:description:CreateBotVersionResponse' :: Maybe Text
description = Maybe Text
a} :: CreateBotVersionResponse)

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

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

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

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

-- | An array of @Intent@ objects. For more information, see PutBot.
createBotVersionResponse_intents :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe [Intent])
createBotVersionResponse_intents :: Lens' CreateBotVersionResponse (Maybe [Intent])
createBotVersionResponse_intents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe [Intent]
intents :: Maybe [Intent]
$sel:intents:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe [Intent]
intents} -> Maybe [Intent]
intents) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe [Intent]
a -> CreateBotVersionResponse
s {$sel:intents:CreateBotVersionResponse' :: Maybe [Intent]
intents = Maybe [Intent]
a} :: CreateBotVersionResponse) 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 when the @$LATEST@ version of this bot was updated.
createBotVersionResponse_lastUpdatedDate :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.UTCTime)
createBotVersionResponse_lastUpdatedDate :: Lens' CreateBotVersionResponse (Maybe UTCTime)
createBotVersionResponse_lastUpdatedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe POSIX
lastUpdatedDate :: Maybe POSIX
$sel:lastUpdatedDate:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe POSIX
lastUpdatedDate} -> Maybe POSIX
lastUpdatedDate) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe POSIX
a -> CreateBotVersionResponse
s {$sel:lastUpdatedDate:CreateBotVersionResponse' :: Maybe POSIX
lastUpdatedDate = Maybe POSIX
a} :: CreateBotVersionResponse) 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

-- | Specifies the target locale for the bot.
createBotVersionResponse_locale :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Locale)
createBotVersionResponse_locale :: Lens' CreateBotVersionResponse (Maybe Locale)
createBotVersionResponse_locale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe Locale
locale :: Maybe Locale
$sel:locale:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Locale
locale} -> Maybe Locale
locale) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe Locale
a -> CreateBotVersionResponse
s {$sel:locale:CreateBotVersionResponse' :: Maybe Locale
locale = Maybe Locale
a} :: CreateBotVersionResponse)

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

-- | When you send a request to create or update a bot, Amazon Lex sets the
-- @status@ response element to @BUILDING@. After Amazon Lex builds the
-- bot, it sets @status@ to @READY@. If Amazon Lex can\'t build the bot, it
-- sets @status@ to @FAILED@. Amazon Lex returns the reason for the failure
-- in the @failureReason@ response element.
createBotVersionResponse_status :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe LexStatus)
createBotVersionResponse_status :: Lens' CreateBotVersionResponse (Maybe LexStatus)
createBotVersionResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe LexStatus
status :: Maybe LexStatus
$sel:status:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe LexStatus
status} -> Maybe LexStatus
status) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe LexStatus
a -> CreateBotVersionResponse
s {$sel:status:CreateBotVersionResponse' :: Maybe LexStatus
status = Maybe LexStatus
a} :: CreateBotVersionResponse)

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

-- | The Amazon Polly voice ID that Amazon Lex uses for voice interactions
-- with the user.
createBotVersionResponse_voiceId :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Text)
createBotVersionResponse_voiceId :: Lens' CreateBotVersionResponse (Maybe Text)
createBotVersionResponse_voiceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBotVersionResponse' {Maybe Text
voiceId :: Maybe Text
$sel:voiceId:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
voiceId} -> Maybe Text
voiceId) (\s :: CreateBotVersionResponse
s@CreateBotVersionResponse' {} Maybe Text
a -> CreateBotVersionResponse
s {$sel:voiceId:CreateBotVersionResponse' :: Maybe Text
voiceId = Maybe Text
a} :: CreateBotVersionResponse)

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

instance Prelude.NFData CreateBotVersionResponse where
  rnf :: CreateBotVersionResponse -> ()
rnf CreateBotVersionResponse' {Int
Maybe Bool
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
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:CreateBotVersionResponse' :: CreateBotVersionResponse -> Int
$sel:voiceId:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
$sel:version:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
$sel:status:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe LexStatus
$sel:name:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
$sel:locale:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Locale
$sel:lastUpdatedDate:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe POSIX
$sel:intents:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe [Intent]
$sel:idleSessionTTLInSeconds:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Natural
$sel:failureReason:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
$sel:enableModelImprovements:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Bool
$sel:detectSentiment:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Bool
$sel:description:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
$sel:createdDate:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe POSIX
$sel:clarificationPrompt:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Prompt
$sel:childDirected:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Bool
$sel:checksum:CreateBotVersionResponse' :: CreateBotVersionResponse -> Maybe Text
$sel:abortStatement:CreateBotVersionResponse' :: CreateBotVersionResponse -> 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 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