{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.LexV2Models.Types.DialogActionType
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.LexV2Models.Types.DialogActionType
  ( DialogActionType
      ( ..,
        DialogActionType_CloseIntent,
        DialogActionType_ConfirmIntent,
        DialogActionType_ElicitIntent,
        DialogActionType_ElicitSlot,
        DialogActionType_EndConversation,
        DialogActionType_EvaluateConditional,
        DialogActionType_FulfillIntent,
        DialogActionType_InvokeDialogCodeHook,
        DialogActionType_StartIntent
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype DialogActionType = DialogActionType'
  { DialogActionType -> Text
fromDialogActionType ::
      Data.Text
  }
  deriving stock
    ( Int -> DialogActionType -> ShowS
[DialogActionType] -> ShowS
DialogActionType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DialogActionType] -> ShowS
$cshowList :: [DialogActionType] -> ShowS
show :: DialogActionType -> String
$cshow :: DialogActionType -> String
showsPrec :: Int -> DialogActionType -> ShowS
$cshowsPrec :: Int -> DialogActionType -> ShowS
Prelude.Show,
      ReadPrec [DialogActionType]
ReadPrec DialogActionType
Int -> ReadS DialogActionType
ReadS [DialogActionType]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DialogActionType]
$creadListPrec :: ReadPrec [DialogActionType]
readPrec :: ReadPrec DialogActionType
$creadPrec :: ReadPrec DialogActionType
readList :: ReadS [DialogActionType]
$creadList :: ReadS [DialogActionType]
readsPrec :: Int -> ReadS DialogActionType
$creadsPrec :: Int -> ReadS DialogActionType
Prelude.Read,
      DialogActionType -> DialogActionType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DialogActionType -> DialogActionType -> Bool
$c/= :: DialogActionType -> DialogActionType -> Bool
== :: DialogActionType -> DialogActionType -> Bool
$c== :: DialogActionType -> DialogActionType -> Bool
Prelude.Eq,
      Eq DialogActionType
DialogActionType -> DialogActionType -> Bool
DialogActionType -> DialogActionType -> Ordering
DialogActionType -> DialogActionType -> DialogActionType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DialogActionType -> DialogActionType -> DialogActionType
$cmin :: DialogActionType -> DialogActionType -> DialogActionType
max :: DialogActionType -> DialogActionType -> DialogActionType
$cmax :: DialogActionType -> DialogActionType -> DialogActionType
>= :: DialogActionType -> DialogActionType -> Bool
$c>= :: DialogActionType -> DialogActionType -> Bool
> :: DialogActionType -> DialogActionType -> Bool
$c> :: DialogActionType -> DialogActionType -> Bool
<= :: DialogActionType -> DialogActionType -> Bool
$c<= :: DialogActionType -> DialogActionType -> Bool
< :: DialogActionType -> DialogActionType -> Bool
$c< :: DialogActionType -> DialogActionType -> Bool
compare :: DialogActionType -> DialogActionType -> Ordering
$ccompare :: DialogActionType -> DialogActionType -> Ordering
Prelude.Ord,
      forall x. Rep DialogActionType x -> DialogActionType
forall x. DialogActionType -> Rep DialogActionType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DialogActionType x -> DialogActionType
$cfrom :: forall x. DialogActionType -> Rep DialogActionType x
Prelude.Generic
    )
  deriving newtype
    ( Eq DialogActionType
Int -> DialogActionType -> Int
DialogActionType -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: DialogActionType -> Int
$chash :: DialogActionType -> Int
hashWithSalt :: Int -> DialogActionType -> Int
$chashWithSalt :: Int -> DialogActionType -> Int
Prelude.Hashable,
      DialogActionType -> ()
forall a. (a -> ()) -> NFData a
rnf :: DialogActionType -> ()
$crnf :: DialogActionType -> ()
Prelude.NFData,
      Text -> Either String DialogActionType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DialogActionType
$cfromText :: Text -> Either String DialogActionType
Data.FromText,
      DialogActionType -> Text
forall a. (a -> Text) -> ToText a
toText :: DialogActionType -> Text
$ctoText :: DialogActionType -> Text
Data.ToText,
      DialogActionType -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: DialogActionType -> ByteString
$ctoBS :: DialogActionType -> ByteString
Data.ToByteString,
      DialogActionType -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DialogActionType -> ByteStringBuilder
$cbuild :: DialogActionType -> ByteStringBuilder
Data.ToLog,
      HeaderName -> DialogActionType -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DialogActionType -> [Header]
$ctoHeader :: HeaderName -> DialogActionType -> [Header]
Data.ToHeader,
      DialogActionType -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DialogActionType -> QueryString
$ctoQuery :: DialogActionType -> QueryString
Data.ToQuery,
      Value -> Parser [DialogActionType]
Value -> Parser DialogActionType
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [DialogActionType]
$cparseJSONList :: Value -> Parser [DialogActionType]
parseJSON :: Value -> Parser DialogActionType
$cparseJSON :: Value -> Parser DialogActionType
Data.FromJSON,
      FromJSONKeyFunction [DialogActionType]
FromJSONKeyFunction DialogActionType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DialogActionType]
$cfromJSONKeyList :: FromJSONKeyFunction [DialogActionType]
fromJSONKey :: FromJSONKeyFunction DialogActionType
$cfromJSONKey :: FromJSONKeyFunction DialogActionType
Data.FromJSONKey,
      [DialogActionType] -> Encoding
[DialogActionType] -> Value
DialogActionType -> Encoding
DialogActionType -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [DialogActionType] -> Encoding
$ctoEncodingList :: [DialogActionType] -> Encoding
toJSONList :: [DialogActionType] -> Value
$ctoJSONList :: [DialogActionType] -> Value
toEncoding :: DialogActionType -> Encoding
$ctoEncoding :: DialogActionType -> Encoding
toJSON :: DialogActionType -> Value
$ctoJSON :: DialogActionType -> Value
Data.ToJSON,
      ToJSONKeyFunction [DialogActionType]
ToJSONKeyFunction DialogActionType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DialogActionType]
$ctoJSONKeyList :: ToJSONKeyFunction [DialogActionType]
toJSONKey :: ToJSONKeyFunction DialogActionType
$ctoJSONKey :: ToJSONKeyFunction DialogActionType
Data.ToJSONKey,
      [Node] -> Either String DialogActionType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DialogActionType
$cparseXML :: [Node] -> Either String DialogActionType
Data.FromXML,
      DialogActionType -> XML
forall a. (a -> XML) -> ToXML a
toXML :: DialogActionType -> XML
$ctoXML :: DialogActionType -> XML
Data.ToXML
    )

pattern DialogActionType_CloseIntent :: DialogActionType
pattern $bDialogActionType_CloseIntent :: DialogActionType
$mDialogActionType_CloseIntent :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_CloseIntent = DialogActionType' "CloseIntent"

pattern DialogActionType_ConfirmIntent :: DialogActionType
pattern $bDialogActionType_ConfirmIntent :: DialogActionType
$mDialogActionType_ConfirmIntent :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_ConfirmIntent = DialogActionType' "ConfirmIntent"

pattern DialogActionType_ElicitIntent :: DialogActionType
pattern $bDialogActionType_ElicitIntent :: DialogActionType
$mDialogActionType_ElicitIntent :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_ElicitIntent = DialogActionType' "ElicitIntent"

pattern DialogActionType_ElicitSlot :: DialogActionType
pattern $bDialogActionType_ElicitSlot :: DialogActionType
$mDialogActionType_ElicitSlot :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_ElicitSlot = DialogActionType' "ElicitSlot"

pattern DialogActionType_EndConversation :: DialogActionType
pattern $bDialogActionType_EndConversation :: DialogActionType
$mDialogActionType_EndConversation :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_EndConversation = DialogActionType' "EndConversation"

pattern DialogActionType_EvaluateConditional :: DialogActionType
pattern $bDialogActionType_EvaluateConditional :: DialogActionType
$mDialogActionType_EvaluateConditional :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_EvaluateConditional = DialogActionType' "EvaluateConditional"

pattern DialogActionType_FulfillIntent :: DialogActionType
pattern $bDialogActionType_FulfillIntent :: DialogActionType
$mDialogActionType_FulfillIntent :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_FulfillIntent = DialogActionType' "FulfillIntent"

pattern DialogActionType_InvokeDialogCodeHook :: DialogActionType
pattern $bDialogActionType_InvokeDialogCodeHook :: DialogActionType
$mDialogActionType_InvokeDialogCodeHook :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_InvokeDialogCodeHook = DialogActionType' "InvokeDialogCodeHook"

pattern DialogActionType_StartIntent :: DialogActionType
pattern $bDialogActionType_StartIntent :: DialogActionType
$mDialogActionType_StartIntent :: forall {r}. DialogActionType -> ((# #) -> r) -> ((# #) -> r) -> r
DialogActionType_StartIntent = DialogActionType' "StartIntent"

{-# COMPLETE
  DialogActionType_CloseIntent,
  DialogActionType_ConfirmIntent,
  DialogActionType_ElicitIntent,
  DialogActionType_ElicitSlot,
  DialogActionType_EndConversation,
  DialogActionType_EvaluateConditional,
  DialogActionType_FulfillIntent,
  DialogActionType_InvokeDialogCodeHook,
  DialogActionType_StartIntent,
  DialogActionType'
  #-}