{-# 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.Firehose.Types.DeliveryStreamEncryptionStatus
-- 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.Firehose.Types.DeliveryStreamEncryptionStatus
  ( DeliveryStreamEncryptionStatus
      ( ..,
        DeliveryStreamEncryptionStatus_DISABLED,
        DeliveryStreamEncryptionStatus_DISABLING,
        DeliveryStreamEncryptionStatus_DISABLING_FAILED,
        DeliveryStreamEncryptionStatus_ENABLED,
        DeliveryStreamEncryptionStatus_ENABLING,
        DeliveryStreamEncryptionStatus_ENABLING_FAILED
      ),
  )
where

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

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

pattern DeliveryStreamEncryptionStatus_DISABLED :: DeliveryStreamEncryptionStatus
pattern $bDeliveryStreamEncryptionStatus_DISABLED :: DeliveryStreamEncryptionStatus
$mDeliveryStreamEncryptionStatus_DISABLED :: forall r.
DeliveryStreamEncryptionStatus -> (Void# -> r) -> (Void# -> r) -> r
DeliveryStreamEncryptionStatus_DISABLED = DeliveryStreamEncryptionStatus' "DISABLED"

pattern DeliveryStreamEncryptionStatus_DISABLING :: DeliveryStreamEncryptionStatus
pattern $bDeliveryStreamEncryptionStatus_DISABLING :: DeliveryStreamEncryptionStatus
$mDeliveryStreamEncryptionStatus_DISABLING :: forall r.
DeliveryStreamEncryptionStatus -> (Void# -> r) -> (Void# -> r) -> r
DeliveryStreamEncryptionStatus_DISABLING = DeliveryStreamEncryptionStatus' "DISABLING"

pattern DeliveryStreamEncryptionStatus_DISABLING_FAILED :: DeliveryStreamEncryptionStatus
pattern $bDeliveryStreamEncryptionStatus_DISABLING_FAILED :: DeliveryStreamEncryptionStatus
$mDeliveryStreamEncryptionStatus_DISABLING_FAILED :: forall r.
DeliveryStreamEncryptionStatus -> (Void# -> r) -> (Void# -> r) -> r
DeliveryStreamEncryptionStatus_DISABLING_FAILED = DeliveryStreamEncryptionStatus' "DISABLING_FAILED"

pattern DeliveryStreamEncryptionStatus_ENABLED :: DeliveryStreamEncryptionStatus
pattern $bDeliveryStreamEncryptionStatus_ENABLED :: DeliveryStreamEncryptionStatus
$mDeliveryStreamEncryptionStatus_ENABLED :: forall r.
DeliveryStreamEncryptionStatus -> (Void# -> r) -> (Void# -> r) -> r
DeliveryStreamEncryptionStatus_ENABLED = DeliveryStreamEncryptionStatus' "ENABLED"

pattern DeliveryStreamEncryptionStatus_ENABLING :: DeliveryStreamEncryptionStatus
pattern $bDeliveryStreamEncryptionStatus_ENABLING :: DeliveryStreamEncryptionStatus
$mDeliveryStreamEncryptionStatus_ENABLING :: forall r.
DeliveryStreamEncryptionStatus -> (Void# -> r) -> (Void# -> r) -> r
DeliveryStreamEncryptionStatus_ENABLING = DeliveryStreamEncryptionStatus' "ENABLING"

pattern DeliveryStreamEncryptionStatus_ENABLING_FAILED :: DeliveryStreamEncryptionStatus
pattern $bDeliveryStreamEncryptionStatus_ENABLING_FAILED :: DeliveryStreamEncryptionStatus
$mDeliveryStreamEncryptionStatus_ENABLING_FAILED :: forall r.
DeliveryStreamEncryptionStatus -> (Void# -> r) -> (Void# -> r) -> r
DeliveryStreamEncryptionStatus_ENABLING_FAILED = DeliveryStreamEncryptionStatus' "ENABLING_FAILED"

{-# COMPLETE
  DeliveryStreamEncryptionStatus_DISABLED,
  DeliveryStreamEncryptionStatus_DISABLING,
  DeliveryStreamEncryptionStatus_DISABLING_FAILED,
  DeliveryStreamEncryptionStatus_ENABLED,
  DeliveryStreamEncryptionStatus_ENABLING,
  DeliveryStreamEncryptionStatus_ENABLING_FAILED,
  DeliveryStreamEncryptionStatus'
  #-}