{-# 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.SES.Types.BulkEmailStatus
-- 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.SES.Types.BulkEmailStatus
  ( BulkEmailStatus
      ( ..,
        BulkEmailStatus_AccountDailyQuotaExceeded,
        BulkEmailStatus_AccountSendingPaused,
        BulkEmailStatus_AccountSuspended,
        BulkEmailStatus_AccountThrottled,
        BulkEmailStatus_ConfigurationSetDoesNotExist,
        BulkEmailStatus_ConfigurationSetSendingPaused,
        BulkEmailStatus_Failed,
        BulkEmailStatus_InvalidParameterValue,
        BulkEmailStatus_InvalidSendingPoolName,
        BulkEmailStatus_MailFromDomainNotVerified,
        BulkEmailStatus_MessageRejected,
        BulkEmailStatus_Success,
        BulkEmailStatus_TemplateDoesNotExist,
        BulkEmailStatus_TransientFailure
      ),
  )
where

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

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

pattern BulkEmailStatus_AccountDailyQuotaExceeded :: BulkEmailStatus
pattern $bBulkEmailStatus_AccountDailyQuotaExceeded :: BulkEmailStatus
$mBulkEmailStatus_AccountDailyQuotaExceeded :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_AccountDailyQuotaExceeded = BulkEmailStatus' "AccountDailyQuotaExceeded"

pattern BulkEmailStatus_AccountSendingPaused :: BulkEmailStatus
pattern $bBulkEmailStatus_AccountSendingPaused :: BulkEmailStatus
$mBulkEmailStatus_AccountSendingPaused :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_AccountSendingPaused = BulkEmailStatus' "AccountSendingPaused"

pattern BulkEmailStatus_AccountSuspended :: BulkEmailStatus
pattern $bBulkEmailStatus_AccountSuspended :: BulkEmailStatus
$mBulkEmailStatus_AccountSuspended :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_AccountSuspended = BulkEmailStatus' "AccountSuspended"

pattern BulkEmailStatus_AccountThrottled :: BulkEmailStatus
pattern $bBulkEmailStatus_AccountThrottled :: BulkEmailStatus
$mBulkEmailStatus_AccountThrottled :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_AccountThrottled = BulkEmailStatus' "AccountThrottled"

pattern BulkEmailStatus_ConfigurationSetDoesNotExist :: BulkEmailStatus
pattern $bBulkEmailStatus_ConfigurationSetDoesNotExist :: BulkEmailStatus
$mBulkEmailStatus_ConfigurationSetDoesNotExist :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_ConfigurationSetDoesNotExist = BulkEmailStatus' "ConfigurationSetDoesNotExist"

pattern BulkEmailStatus_ConfigurationSetSendingPaused :: BulkEmailStatus
pattern $bBulkEmailStatus_ConfigurationSetSendingPaused :: BulkEmailStatus
$mBulkEmailStatus_ConfigurationSetSendingPaused :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_ConfigurationSetSendingPaused = BulkEmailStatus' "ConfigurationSetSendingPaused"

pattern BulkEmailStatus_Failed :: BulkEmailStatus
pattern $bBulkEmailStatus_Failed :: BulkEmailStatus
$mBulkEmailStatus_Failed :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_Failed = BulkEmailStatus' "Failed"

pattern BulkEmailStatus_InvalidParameterValue :: BulkEmailStatus
pattern $bBulkEmailStatus_InvalidParameterValue :: BulkEmailStatus
$mBulkEmailStatus_InvalidParameterValue :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_InvalidParameterValue = BulkEmailStatus' "InvalidParameterValue"

pattern BulkEmailStatus_InvalidSendingPoolName :: BulkEmailStatus
pattern $bBulkEmailStatus_InvalidSendingPoolName :: BulkEmailStatus
$mBulkEmailStatus_InvalidSendingPoolName :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_InvalidSendingPoolName = BulkEmailStatus' "InvalidSendingPoolName"

pattern BulkEmailStatus_MailFromDomainNotVerified :: BulkEmailStatus
pattern $bBulkEmailStatus_MailFromDomainNotVerified :: BulkEmailStatus
$mBulkEmailStatus_MailFromDomainNotVerified :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_MailFromDomainNotVerified = BulkEmailStatus' "MailFromDomainNotVerified"

pattern BulkEmailStatus_MessageRejected :: BulkEmailStatus
pattern $bBulkEmailStatus_MessageRejected :: BulkEmailStatus
$mBulkEmailStatus_MessageRejected :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_MessageRejected = BulkEmailStatus' "MessageRejected"

pattern BulkEmailStatus_Success :: BulkEmailStatus
pattern $bBulkEmailStatus_Success :: BulkEmailStatus
$mBulkEmailStatus_Success :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_Success = BulkEmailStatus' "Success"

pattern BulkEmailStatus_TemplateDoesNotExist :: BulkEmailStatus
pattern $bBulkEmailStatus_TemplateDoesNotExist :: BulkEmailStatus
$mBulkEmailStatus_TemplateDoesNotExist :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_TemplateDoesNotExist = BulkEmailStatus' "TemplateDoesNotExist"

pattern BulkEmailStatus_TransientFailure :: BulkEmailStatus
pattern $bBulkEmailStatus_TransientFailure :: BulkEmailStatus
$mBulkEmailStatus_TransientFailure :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_TransientFailure = BulkEmailStatus' "TransientFailure"

{-# COMPLETE
  BulkEmailStatus_AccountDailyQuotaExceeded,
  BulkEmailStatus_AccountSendingPaused,
  BulkEmailStatus_AccountSuspended,
  BulkEmailStatus_AccountThrottled,
  BulkEmailStatus_ConfigurationSetDoesNotExist,
  BulkEmailStatus_ConfigurationSetSendingPaused,
  BulkEmailStatus_Failed,
  BulkEmailStatus_InvalidParameterValue,
  BulkEmailStatus_InvalidSendingPoolName,
  BulkEmailStatus_MailFromDomainNotVerified,
  BulkEmailStatus_MessageRejected,
  BulkEmailStatus_Success,
  BulkEmailStatus_TemplateDoesNotExist,
  BulkEmailStatus_TransientFailure,
  BulkEmailStatus'
  #-}