{-# 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.DynamoDB.Types.SSEStatus
-- 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.DynamoDB.Types.SSEStatus
  ( SSEStatus
      ( ..,
        SSEStatus_DISABLED,
        SSEStatus_DISABLING,
        SSEStatus_ENABLED,
        SSEStatus_ENABLING,
        SSEStatus_UPDATING
      ),
  )
where

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

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

pattern SSEStatus_DISABLED :: SSEStatus
pattern $bSSEStatus_DISABLED :: SSEStatus
$mSSEStatus_DISABLED :: forall r. SSEStatus -> (Void# -> r) -> (Void# -> r) -> r
SSEStatus_DISABLED = SSEStatus' "DISABLED"

pattern SSEStatus_DISABLING :: SSEStatus
pattern $bSSEStatus_DISABLING :: SSEStatus
$mSSEStatus_DISABLING :: forall r. SSEStatus -> (Void# -> r) -> (Void# -> r) -> r
SSEStatus_DISABLING = SSEStatus' "DISABLING"

pattern SSEStatus_ENABLED :: SSEStatus
pattern $bSSEStatus_ENABLED :: SSEStatus
$mSSEStatus_ENABLED :: forall r. SSEStatus -> (Void# -> r) -> (Void# -> r) -> r
SSEStatus_ENABLED = SSEStatus' "ENABLED"

pattern SSEStatus_ENABLING :: SSEStatus
pattern $bSSEStatus_ENABLING :: SSEStatus
$mSSEStatus_ENABLING :: forall r. SSEStatus -> (Void# -> r) -> (Void# -> r) -> r
SSEStatus_ENABLING = SSEStatus' "ENABLING"

pattern SSEStatus_UPDATING :: SSEStatus
pattern $bSSEStatus_UPDATING :: SSEStatus
$mSSEStatus_UPDATING :: forall r. SSEStatus -> (Void# -> r) -> (Void# -> r) -> r
SSEStatus_UPDATING = SSEStatus' "UPDATING"

{-# COMPLETE
  SSEStatus_DISABLED,
  SSEStatus_DISABLING,
  SSEStatus_ENABLED,
  SSEStatus_ENABLING,
  SSEStatus_UPDATING,
  SSEStatus'
  #-}