{-# 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.DestinationStatus
-- 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.DestinationStatus
  ( DestinationStatus
      ( ..,
        DestinationStatus_ACTIVE,
        DestinationStatus_DISABLED,
        DestinationStatus_DISABLING,
        DestinationStatus_ENABLE_FAILED,
        DestinationStatus_ENABLING
      ),
  )
where

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

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

pattern DestinationStatus_ACTIVE :: DestinationStatus
pattern $bDestinationStatus_ACTIVE :: DestinationStatus
$mDestinationStatus_ACTIVE :: forall r. DestinationStatus -> (Void# -> r) -> (Void# -> r) -> r
DestinationStatus_ACTIVE = DestinationStatus' "ACTIVE"

pattern DestinationStatus_DISABLED :: DestinationStatus
pattern $bDestinationStatus_DISABLED :: DestinationStatus
$mDestinationStatus_DISABLED :: forall r. DestinationStatus -> (Void# -> r) -> (Void# -> r) -> r
DestinationStatus_DISABLED = DestinationStatus' "DISABLED"

pattern DestinationStatus_DISABLING :: DestinationStatus
pattern $bDestinationStatus_DISABLING :: DestinationStatus
$mDestinationStatus_DISABLING :: forall r. DestinationStatus -> (Void# -> r) -> (Void# -> r) -> r
DestinationStatus_DISABLING = DestinationStatus' "DISABLING"

pattern DestinationStatus_ENABLE_FAILED :: DestinationStatus
pattern $bDestinationStatus_ENABLE_FAILED :: DestinationStatus
$mDestinationStatus_ENABLE_FAILED :: forall r. DestinationStatus -> (Void# -> r) -> (Void# -> r) -> r
DestinationStatus_ENABLE_FAILED = DestinationStatus' "ENABLE_FAILED"

pattern DestinationStatus_ENABLING :: DestinationStatus
pattern $bDestinationStatus_ENABLING :: DestinationStatus
$mDestinationStatus_ENABLING :: forall r. DestinationStatus -> (Void# -> r) -> (Void# -> r) -> r
DestinationStatus_ENABLING = DestinationStatus' "ENABLING"

{-# COMPLETE
  DestinationStatus_ACTIVE,
  DestinationStatus_DISABLED,
  DestinationStatus_DISABLING,
  DestinationStatus_ENABLE_FAILED,
  DestinationStatus_ENABLING,
  DestinationStatus'
  #-}