{-# 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.FulfillmentState
-- 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.FulfillmentState
  ( FulfillmentState
      ( ..,
        FulfillmentState_Failed,
        FulfillmentState_Fulfilled,
        FulfillmentState_ReadyForFulfillment
      ),
  )
where

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

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

pattern FulfillmentState_Failed :: FulfillmentState
pattern $bFulfillmentState_Failed :: FulfillmentState
$mFulfillmentState_Failed :: forall r. FulfillmentState -> (Void# -> r) -> (Void# -> r) -> r
FulfillmentState_Failed = FulfillmentState' "Failed"

pattern FulfillmentState_Fulfilled :: FulfillmentState
pattern $bFulfillmentState_Fulfilled :: FulfillmentState
$mFulfillmentState_Fulfilled :: forall r. FulfillmentState -> (Void# -> r) -> (Void# -> r) -> r
FulfillmentState_Fulfilled = FulfillmentState' "Fulfilled"

pattern FulfillmentState_ReadyForFulfillment :: FulfillmentState
pattern $bFulfillmentState_ReadyForFulfillment :: FulfillmentState
$mFulfillmentState_ReadyForFulfillment :: forall r. FulfillmentState -> (Void# -> r) -> (Void# -> r) -> r
FulfillmentState_ReadyForFulfillment = FulfillmentState' "ReadyForFulfillment"

{-# COMPLETE
  FulfillmentState_Failed,
  FulfillmentState_Fulfilled,
  FulfillmentState_ReadyForFulfillment,
  FulfillmentState'
  #-}