{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.LexRuntime.Types.IntentSummary where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.LexRuntime.Types.ConfirmationStatus
import Amazonka.LexRuntime.Types.DialogActionType
import Amazonka.LexRuntime.Types.FulfillmentState
import qualified Amazonka.Prelude as Prelude
data IntentSummary = IntentSummary'
{
IntentSummary -> Maybe Text
checkpointLabel :: Prelude.Maybe Prelude.Text,
IntentSummary -> Maybe ConfirmationStatus
confirmationStatus :: Prelude.Maybe ConfirmationStatus,
IntentSummary -> Maybe FulfillmentState
fulfillmentState :: Prelude.Maybe FulfillmentState,
IntentSummary -> Maybe Text
intentName :: Prelude.Maybe Prelude.Text,
IntentSummary -> Maybe Text
slotToElicit :: Prelude.Maybe Prelude.Text,
IntentSummary -> Maybe (Sensitive (HashMap Text Text))
slots :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
IntentSummary -> DialogActionType
dialogActionType :: DialogActionType
}
deriving (IntentSummary -> IntentSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IntentSummary -> IntentSummary -> Bool
$c/= :: IntentSummary -> IntentSummary -> Bool
== :: IntentSummary -> IntentSummary -> Bool
$c== :: IntentSummary -> IntentSummary -> Bool
Prelude.Eq, Int -> IntentSummary -> ShowS
[IntentSummary] -> ShowS
IntentSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IntentSummary] -> ShowS
$cshowList :: [IntentSummary] -> ShowS
show :: IntentSummary -> String
$cshow :: IntentSummary -> String
showsPrec :: Int -> IntentSummary -> ShowS
$cshowsPrec :: Int -> IntentSummary -> ShowS
Prelude.Show, forall x. Rep IntentSummary x -> IntentSummary
forall x. IntentSummary -> Rep IntentSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IntentSummary x -> IntentSummary
$cfrom :: forall x. IntentSummary -> Rep IntentSummary x
Prelude.Generic)
newIntentSummary ::
DialogActionType ->
IntentSummary
newIntentSummary :: DialogActionType -> IntentSummary
newIntentSummary DialogActionType
pDialogActionType_ =
IntentSummary'
{ $sel:checkpointLabel:IntentSummary' :: Maybe Text
checkpointLabel = forall a. Maybe a
Prelude.Nothing,
$sel:confirmationStatus:IntentSummary' :: Maybe ConfirmationStatus
confirmationStatus = forall a. Maybe a
Prelude.Nothing,
$sel:fulfillmentState:IntentSummary' :: Maybe FulfillmentState
fulfillmentState = forall a. Maybe a
Prelude.Nothing,
$sel:intentName:IntentSummary' :: Maybe Text
intentName = forall a. Maybe a
Prelude.Nothing,
$sel:slotToElicit:IntentSummary' :: Maybe Text
slotToElicit = forall a. Maybe a
Prelude.Nothing,
$sel:slots:IntentSummary' :: Maybe (Sensitive (HashMap Text Text))
slots = forall a. Maybe a
Prelude.Nothing,
$sel:dialogActionType:IntentSummary' :: DialogActionType
dialogActionType = DialogActionType
pDialogActionType_
}
intentSummary_checkpointLabel :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)
intentSummary_checkpointLabel :: Lens' IntentSummary (Maybe Text)
intentSummary_checkpointLabel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {Maybe Text
checkpointLabel :: Maybe Text
$sel:checkpointLabel:IntentSummary' :: IntentSummary -> Maybe Text
checkpointLabel} -> Maybe Text
checkpointLabel) (\s :: IntentSummary
s@IntentSummary' {} Maybe Text
a -> IntentSummary
s {$sel:checkpointLabel:IntentSummary' :: Maybe Text
checkpointLabel = Maybe Text
a} :: IntentSummary)
intentSummary_confirmationStatus :: Lens.Lens' IntentSummary (Prelude.Maybe ConfirmationStatus)
intentSummary_confirmationStatus :: Lens' IntentSummary (Maybe ConfirmationStatus)
intentSummary_confirmationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {Maybe ConfirmationStatus
confirmationStatus :: Maybe ConfirmationStatus
$sel:confirmationStatus:IntentSummary' :: IntentSummary -> Maybe ConfirmationStatus
confirmationStatus} -> Maybe ConfirmationStatus
confirmationStatus) (\s :: IntentSummary
s@IntentSummary' {} Maybe ConfirmationStatus
a -> IntentSummary
s {$sel:confirmationStatus:IntentSummary' :: Maybe ConfirmationStatus
confirmationStatus = Maybe ConfirmationStatus
a} :: IntentSummary)
intentSummary_fulfillmentState :: Lens.Lens' IntentSummary (Prelude.Maybe FulfillmentState)
intentSummary_fulfillmentState :: Lens' IntentSummary (Maybe FulfillmentState)
intentSummary_fulfillmentState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {Maybe FulfillmentState
fulfillmentState :: Maybe FulfillmentState
$sel:fulfillmentState:IntentSummary' :: IntentSummary -> Maybe FulfillmentState
fulfillmentState} -> Maybe FulfillmentState
fulfillmentState) (\s :: IntentSummary
s@IntentSummary' {} Maybe FulfillmentState
a -> IntentSummary
s {$sel:fulfillmentState:IntentSummary' :: Maybe FulfillmentState
fulfillmentState = Maybe FulfillmentState
a} :: IntentSummary)
intentSummary_intentName :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)
intentSummary_intentName :: Lens' IntentSummary (Maybe Text)
intentSummary_intentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {Maybe Text
intentName :: Maybe Text
$sel:intentName:IntentSummary' :: IntentSummary -> Maybe Text
intentName} -> Maybe Text
intentName) (\s :: IntentSummary
s@IntentSummary' {} Maybe Text
a -> IntentSummary
s {$sel:intentName:IntentSummary' :: Maybe Text
intentName = Maybe Text
a} :: IntentSummary)
intentSummary_slotToElicit :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)
intentSummary_slotToElicit :: Lens' IntentSummary (Maybe Text)
intentSummary_slotToElicit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {Maybe Text
slotToElicit :: Maybe Text
$sel:slotToElicit:IntentSummary' :: IntentSummary -> Maybe Text
slotToElicit} -> Maybe Text
slotToElicit) (\s :: IntentSummary
s@IntentSummary' {} Maybe Text
a -> IntentSummary
s {$sel:slotToElicit:IntentSummary' :: Maybe Text
slotToElicit = Maybe Text
a} :: IntentSummary)
intentSummary_slots :: Lens.Lens' IntentSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
intentSummary_slots :: Lens' IntentSummary (Maybe (HashMap Text Text))
intentSummary_slots = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {Maybe (Sensitive (HashMap Text Text))
slots :: Maybe (Sensitive (HashMap Text Text))
$sel:slots:IntentSummary' :: IntentSummary -> Maybe (Sensitive (HashMap Text Text))
slots} -> Maybe (Sensitive (HashMap Text Text))
slots) (\s :: IntentSummary
s@IntentSummary' {} Maybe (Sensitive (HashMap Text Text))
a -> IntentSummary
s {$sel:slots:IntentSummary' :: Maybe (Sensitive (HashMap Text Text))
slots = Maybe (Sensitive (HashMap Text Text))
a} :: IntentSummary) 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. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced)
intentSummary_dialogActionType :: Lens.Lens' IntentSummary DialogActionType
intentSummary_dialogActionType :: Lens' IntentSummary DialogActionType
intentSummary_dialogActionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\IntentSummary' {DialogActionType
dialogActionType :: DialogActionType
$sel:dialogActionType:IntentSummary' :: IntentSummary -> DialogActionType
dialogActionType} -> DialogActionType
dialogActionType) (\s :: IntentSummary
s@IntentSummary' {} DialogActionType
a -> IntentSummary
s {$sel:dialogActionType:IntentSummary' :: DialogActionType
dialogActionType = DialogActionType
a} :: IntentSummary)
instance Data.FromJSON IntentSummary where
parseJSON :: Value -> Parser IntentSummary
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"IntentSummary"
( \Object
x ->
Maybe Text
-> Maybe ConfirmationStatus
-> Maybe FulfillmentState
-> Maybe Text
-> Maybe Text
-> Maybe (Sensitive (HashMap Text Text))
-> DialogActionType
-> IntentSummary
IntentSummary'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"checkpointLabel")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"confirmationStatus")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"fulfillmentState")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"intentName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"slotToElicit")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"slots" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser a
Data..: Key
"dialogActionType")
)
instance Prelude.Hashable IntentSummary where
hashWithSalt :: Int -> IntentSummary -> Int
hashWithSalt Int
_salt IntentSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe ConfirmationStatus
Maybe FulfillmentState
DialogActionType
dialogActionType :: DialogActionType
slots :: Maybe (Sensitive (HashMap Text Text))
slotToElicit :: Maybe Text
intentName :: Maybe Text
fulfillmentState :: Maybe FulfillmentState
confirmationStatus :: Maybe ConfirmationStatus
checkpointLabel :: Maybe Text
$sel:dialogActionType:IntentSummary' :: IntentSummary -> DialogActionType
$sel:slots:IntentSummary' :: IntentSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:slotToElicit:IntentSummary' :: IntentSummary -> Maybe Text
$sel:intentName:IntentSummary' :: IntentSummary -> Maybe Text
$sel:fulfillmentState:IntentSummary' :: IntentSummary -> Maybe FulfillmentState
$sel:confirmationStatus:IntentSummary' :: IntentSummary -> Maybe ConfirmationStatus
$sel:checkpointLabel:IntentSummary' :: IntentSummary -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
checkpointLabel
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConfirmationStatus
confirmationStatus
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FulfillmentState
fulfillmentState
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
intentName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
slotToElicit
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text Text))
slots
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DialogActionType
dialogActionType
instance Prelude.NFData IntentSummary where
rnf :: IntentSummary -> ()
rnf IntentSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe ConfirmationStatus
Maybe FulfillmentState
DialogActionType
dialogActionType :: DialogActionType
slots :: Maybe (Sensitive (HashMap Text Text))
slotToElicit :: Maybe Text
intentName :: Maybe Text
fulfillmentState :: Maybe FulfillmentState
confirmationStatus :: Maybe ConfirmationStatus
checkpointLabel :: Maybe Text
$sel:dialogActionType:IntentSummary' :: IntentSummary -> DialogActionType
$sel:slots:IntentSummary' :: IntentSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:slotToElicit:IntentSummary' :: IntentSummary -> Maybe Text
$sel:intentName:IntentSummary' :: IntentSummary -> Maybe Text
$sel:fulfillmentState:IntentSummary' :: IntentSummary -> Maybe FulfillmentState
$sel:confirmationStatus:IntentSummary' :: IntentSummary -> Maybe ConfirmationStatus
$sel:checkpointLabel:IntentSummary' :: IntentSummary -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
checkpointLabel
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConfirmationStatus
confirmationStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FulfillmentState
fulfillmentState
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
intentName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
slotToElicit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text Text))
slots
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DialogActionType
dialogActionType
instance Data.ToJSON IntentSummary where
toJSON :: IntentSummary -> Value
toJSON IntentSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe ConfirmationStatus
Maybe FulfillmentState
DialogActionType
dialogActionType :: DialogActionType
slots :: Maybe (Sensitive (HashMap Text Text))
slotToElicit :: Maybe Text
intentName :: Maybe Text
fulfillmentState :: Maybe FulfillmentState
confirmationStatus :: Maybe ConfirmationStatus
checkpointLabel :: Maybe Text
$sel:dialogActionType:IntentSummary' :: IntentSummary -> DialogActionType
$sel:slots:IntentSummary' :: IntentSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:slotToElicit:IntentSummary' :: IntentSummary -> Maybe Text
$sel:intentName:IntentSummary' :: IntentSummary -> Maybe Text
$sel:fulfillmentState:IntentSummary' :: IntentSummary -> Maybe FulfillmentState
$sel:confirmationStatus:IntentSummary' :: IntentSummary -> Maybe ConfirmationStatus
$sel:checkpointLabel:IntentSummary' :: IntentSummary -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"checkpointLabel" 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
checkpointLabel,
(Key
"confirmationStatus" 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 ConfirmationStatus
confirmationStatus,
(Key
"fulfillmentState" 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 FulfillmentState
fulfillmentState,
(Key
"intentName" 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
intentName,
(Key
"slotToElicit" 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
slotToElicit,
(Key
"slots" 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 (Sensitive (HashMap Text Text))
slots,
forall a. a -> Maybe a
Prelude.Just
(Key
"dialogActionType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DialogActionType
dialogActionType)
]
)