{-# 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.PinpointEmail.Types.WarmupStatus
-- 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.PinpointEmail.Types.WarmupStatus
  ( WarmupStatus
      ( ..,
        WarmupStatus_DONE,
        WarmupStatus_IN_PROGRESS
      ),
  )
where

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

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

pattern WarmupStatus_DONE :: WarmupStatus
pattern $bWarmupStatus_DONE :: WarmupStatus
$mWarmupStatus_DONE :: forall r. WarmupStatus -> (Void# -> r) -> (Void# -> r) -> r
WarmupStatus_DONE = WarmupStatus' "DONE"

pattern WarmupStatus_IN_PROGRESS :: WarmupStatus
pattern $bWarmupStatus_IN_PROGRESS :: WarmupStatus
$mWarmupStatus_IN_PROGRESS :: forall r. WarmupStatus -> (Void# -> r) -> (Void# -> r) -> r
WarmupStatus_IN_PROGRESS = WarmupStatus' "IN_PROGRESS"

{-# COMPLETE
  WarmupStatus_DONE,
  WarmupStatus_IN_PROGRESS,
  WarmupStatus'
  #-}