{-# 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.SESV2.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.SESV2.Types.BulkEmailStatus
  ( BulkEmailStatus
      ( ..,
        BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED,
        BulkEmailStatus_ACCOUNT_SENDING_PAUSED,
        BulkEmailStatus_ACCOUNT_SUSPENDED,
        BulkEmailStatus_ACCOUNT_THROTTLED,
        BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND,
        BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED,
        BulkEmailStatus_FAILED,
        BulkEmailStatus_INVALID_PARAMETER,
        BulkEmailStatus_INVALID_SENDING_POOL_NAME,
        BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED,
        BulkEmailStatus_MESSAGE_REJECTED,
        BulkEmailStatus_SUCCESS,
        BulkEmailStatus_TEMPLATE_NOT_FOUND,
        BulkEmailStatus_TRANSIENT_FAILURE
      ),
  )
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_ACCOUNT_DAILY_QUOTA_EXCEEDED :: BulkEmailStatus
pattern $bBulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED :: BulkEmailStatus
$mBulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED = BulkEmailStatus' "ACCOUNT_DAILY_QUOTA_EXCEEDED"

pattern BulkEmailStatus_ACCOUNT_SENDING_PAUSED :: BulkEmailStatus
pattern $bBulkEmailStatus_ACCOUNT_SENDING_PAUSED :: BulkEmailStatus
$mBulkEmailStatus_ACCOUNT_SENDING_PAUSED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_ACCOUNT_SENDING_PAUSED = BulkEmailStatus' "ACCOUNT_SENDING_PAUSED"

pattern BulkEmailStatus_ACCOUNT_SUSPENDED :: BulkEmailStatus
pattern $bBulkEmailStatus_ACCOUNT_SUSPENDED :: BulkEmailStatus
$mBulkEmailStatus_ACCOUNT_SUSPENDED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_ACCOUNT_SUSPENDED = BulkEmailStatus' "ACCOUNT_SUSPENDED"

pattern BulkEmailStatus_ACCOUNT_THROTTLED :: BulkEmailStatus
pattern $bBulkEmailStatus_ACCOUNT_THROTTLED :: BulkEmailStatus
$mBulkEmailStatus_ACCOUNT_THROTTLED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_ACCOUNT_THROTTLED = BulkEmailStatus' "ACCOUNT_THROTTLED"

pattern BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND :: BulkEmailStatus
pattern $bBulkEmailStatus_CONFIGURATION_SET_NOT_FOUND :: BulkEmailStatus
$mBulkEmailStatus_CONFIGURATION_SET_NOT_FOUND :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND = BulkEmailStatus' "CONFIGURATION_SET_NOT_FOUND"

pattern BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED :: BulkEmailStatus
pattern $bBulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED :: BulkEmailStatus
$mBulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED = BulkEmailStatus' "CONFIGURATION_SET_SENDING_PAUSED"

pattern BulkEmailStatus_FAILED :: BulkEmailStatus
pattern $bBulkEmailStatus_FAILED :: BulkEmailStatus
$mBulkEmailStatus_FAILED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_FAILED = BulkEmailStatus' "FAILED"

pattern BulkEmailStatus_INVALID_PARAMETER :: BulkEmailStatus
pattern $bBulkEmailStatus_INVALID_PARAMETER :: BulkEmailStatus
$mBulkEmailStatus_INVALID_PARAMETER :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_INVALID_PARAMETER = BulkEmailStatus' "INVALID_PARAMETER"

pattern BulkEmailStatus_INVALID_SENDING_POOL_NAME :: BulkEmailStatus
pattern $bBulkEmailStatus_INVALID_SENDING_POOL_NAME :: BulkEmailStatus
$mBulkEmailStatus_INVALID_SENDING_POOL_NAME :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_INVALID_SENDING_POOL_NAME = BulkEmailStatus' "INVALID_SENDING_POOL_NAME"

pattern BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED :: BulkEmailStatus
pattern $bBulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED :: BulkEmailStatus
$mBulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED = BulkEmailStatus' "MAIL_FROM_DOMAIN_NOT_VERIFIED"

pattern BulkEmailStatus_MESSAGE_REJECTED :: BulkEmailStatus
pattern $bBulkEmailStatus_MESSAGE_REJECTED :: BulkEmailStatus
$mBulkEmailStatus_MESSAGE_REJECTED :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_MESSAGE_REJECTED = BulkEmailStatus' "MESSAGE_REJECTED"

pattern BulkEmailStatus_SUCCESS :: BulkEmailStatus
pattern $bBulkEmailStatus_SUCCESS :: BulkEmailStatus
$mBulkEmailStatus_SUCCESS :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_SUCCESS = BulkEmailStatus' "SUCCESS"

pattern BulkEmailStatus_TEMPLATE_NOT_FOUND :: BulkEmailStatus
pattern $bBulkEmailStatus_TEMPLATE_NOT_FOUND :: BulkEmailStatus
$mBulkEmailStatus_TEMPLATE_NOT_FOUND :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_TEMPLATE_NOT_FOUND = BulkEmailStatus' "TEMPLATE_NOT_FOUND"

pattern BulkEmailStatus_TRANSIENT_FAILURE :: BulkEmailStatus
pattern $bBulkEmailStatus_TRANSIENT_FAILURE :: BulkEmailStatus
$mBulkEmailStatus_TRANSIENT_FAILURE :: forall r. BulkEmailStatus -> (Void# -> r) -> (Void# -> r) -> r
BulkEmailStatus_TRANSIENT_FAILURE = BulkEmailStatus' "TRANSIENT_FAILURE"

{-# COMPLETE
  BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED,
  BulkEmailStatus_ACCOUNT_SENDING_PAUSED,
  BulkEmailStatus_ACCOUNT_SUSPENDED,
  BulkEmailStatus_ACCOUNT_THROTTLED,
  BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND,
  BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED,
  BulkEmailStatus_FAILED,
  BulkEmailStatus_INVALID_PARAMETER,
  BulkEmailStatus_INVALID_SENDING_POOL_NAME,
  BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED,
  BulkEmailStatus_MESSAGE_REJECTED,
  BulkEmailStatus_SUCCESS,
  BulkEmailStatus_TEMPLATE_NOT_FOUND,
  BulkEmailStatus_TRANSIENT_FAILURE,
  BulkEmailStatus'
  #-}