{-# 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.LexRuntime.Types.DialogActionType
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.LexRuntime.Types.DialogActionType
  ( DialogActionType
      ( ..,
        DialogActionType_Close,
        DialogActionType_ConfirmIntent,
        DialogActionType_Delegate,
        DialogActionType_ElicitIntent,
        DialogActionType_ElicitSlot
      ),
  )
where

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

newtype DialogActionType = DialogActionType'
  { DialogActionType -> Text
fromDialogActionType ::
      Core.Text
  }
  deriving stock
    ( Int -> DialogActionType -> ShowS
[DialogActionType] -> ShowS
DialogActionType -> String
(Int -> DialogActionType -> ShowS)
-> (DialogActionType -> String)
-> ([DialogActionType] -> ShowS)
-> Show DialogActionType
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]
(Int -> ReadS DialogActionType)
-> ReadS [DialogActionType]
-> ReadPrec DialogActionType
-> ReadPrec [DialogActionType]
-> Read 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
(DialogActionType -> DialogActionType -> Bool)
-> (DialogActionType -> DialogActionType -> Bool)
-> Eq DialogActionType
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
Eq DialogActionType
-> (DialogActionType -> DialogActionType -> Ordering)
-> (DialogActionType -> DialogActionType -> Bool)
-> (DialogActionType -> DialogActionType -> Bool)
-> (DialogActionType -> DialogActionType -> Bool)
-> (DialogActionType -> DialogActionType -> Bool)
-> (DialogActionType -> DialogActionType -> DialogActionType)
-> (DialogActionType -> DialogActionType -> DialogActionType)
-> Ord 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
$cp1Ord :: Eq DialogActionType
Prelude.Ord,
      (forall x. DialogActionType -> Rep DialogActionType x)
-> (forall x. Rep DialogActionType x -> DialogActionType)
-> Generic DialogActionType
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
    ( Int -> DialogActionType -> Int
DialogActionType -> Int
(Int -> DialogActionType -> Int)
-> (DialogActionType -> Int) -> Hashable DialogActionType
forall 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 -> ()
(DialogActionType -> ()) -> NFData DialogActionType
forall a. (a -> ()) -> NFData a
rnf :: DialogActionType -> ()
$crnf :: DialogActionType -> ()
Prelude.NFData,
      Text -> Either String DialogActionType
(Text -> Either String DialogActionType)
-> FromText DialogActionType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DialogActionType
$cfromText :: Text -> Either String DialogActionType
Core.FromText,
      DialogActionType -> Text
(DialogActionType -> Text) -> ToText DialogActionType
forall a. (a -> Text) -> ToText a
toText :: DialogActionType -> Text
$ctoText :: DialogActionType -> Text
Core.ToText,
      DialogActionType -> ByteString
(DialogActionType -> ByteString) -> ToByteString DialogActionType
forall a. (a -> ByteString) -> ToByteString a
toBS :: DialogActionType -> ByteString
$ctoBS :: DialogActionType -> ByteString
Core.ToByteString,
      DialogActionType -> ByteStringBuilder
(DialogActionType -> ByteStringBuilder) -> ToLog DialogActionType
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DialogActionType -> ByteStringBuilder
$cbuild :: DialogActionType -> ByteStringBuilder
Core.ToLog,
      HeaderName -> DialogActionType -> [Header]
(HeaderName -> DialogActionType -> [Header])
-> ToHeader DialogActionType
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DialogActionType -> [Header]
$ctoHeader :: HeaderName -> DialogActionType -> [Header]
Core.ToHeader,
      DialogActionType -> QueryString
(DialogActionType -> QueryString) -> ToQuery DialogActionType
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DialogActionType -> QueryString
$ctoQuery :: DialogActionType -> QueryString
Core.ToQuery,
      Value -> Parser [DialogActionType]
Value -> Parser DialogActionType
(Value -> Parser DialogActionType)
-> (Value -> Parser [DialogActionType])
-> FromJSON 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
Core.FromJSON,
      FromJSONKeyFunction [DialogActionType]
FromJSONKeyFunction DialogActionType
FromJSONKeyFunction DialogActionType
-> FromJSONKeyFunction [DialogActionType]
-> FromJSONKey DialogActionType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DialogActionType]
$cfromJSONKeyList :: FromJSONKeyFunction [DialogActionType]
fromJSONKey :: FromJSONKeyFunction DialogActionType
$cfromJSONKey :: FromJSONKeyFunction DialogActionType
Core.FromJSONKey,
      [DialogActionType] -> Encoding
[DialogActionType] -> Value
DialogActionType -> Encoding
DialogActionType -> Value
(DialogActionType -> Value)
-> (DialogActionType -> Encoding)
-> ([DialogActionType] -> Value)
-> ([DialogActionType] -> Encoding)
-> ToJSON DialogActionType
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
Core.ToJSON,
      ToJSONKeyFunction [DialogActionType]
ToJSONKeyFunction DialogActionType
ToJSONKeyFunction DialogActionType
-> ToJSONKeyFunction [DialogActionType]
-> ToJSONKey DialogActionType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DialogActionType]
$ctoJSONKeyList :: ToJSONKeyFunction [DialogActionType]
toJSONKey :: ToJSONKeyFunction DialogActionType
$ctoJSONKey :: ToJSONKeyFunction DialogActionType
Core.ToJSONKey,
      [Node] -> Either String DialogActionType
([Node] -> Either String DialogActionType)
-> FromXML DialogActionType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DialogActionType
$cparseXML :: [Node] -> Either String DialogActionType
Core.FromXML,
      DialogActionType -> XML
(DialogActionType -> XML) -> ToXML DialogActionType
forall a. (a -> XML) -> ToXML a
toXML :: DialogActionType -> XML
$ctoXML :: DialogActionType -> XML
Core.ToXML
    )

pattern DialogActionType_Close :: DialogActionType
pattern $bDialogActionType_Close :: DialogActionType
$mDialogActionType_Close :: forall r. DialogActionType -> (Void# -> r) -> (Void# -> r) -> r
DialogActionType_Close = DialogActionType' "Close"

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

pattern DialogActionType_Delegate :: DialogActionType
pattern $bDialogActionType_Delegate :: DialogActionType
$mDialogActionType_Delegate :: forall r. DialogActionType -> (Void# -> r) -> (Void# -> r) -> r
DialogActionType_Delegate = DialogActionType' "Delegate"

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

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

{-# COMPLETE
  DialogActionType_Close,
  DialogActionType_ConfirmIntent,
  DialogActionType_Delegate,
  DialogActionType_ElicitIntent,
  DialogActionType_ElicitSlot,
  DialogActionType'
  #-}