{-# 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.SMS.Types.ReplicationJobState
-- 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.SMS.Types.ReplicationJobState
  ( ReplicationJobState
      ( ..,
        ReplicationJobState_ACTIVE,
        ReplicationJobState_COMPLETED,
        ReplicationJobState_DELETED,
        ReplicationJobState_DELETING,
        ReplicationJobState_FAILED,
        ReplicationJobState_FAILING,
        ReplicationJobState_PAUSED_ON_FAILURE,
        ReplicationJobState_PENDING
      ),
  )
where

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

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

pattern ReplicationJobState_ACTIVE :: ReplicationJobState
pattern $bReplicationJobState_ACTIVE :: ReplicationJobState
$mReplicationJobState_ACTIVE :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_ACTIVE = ReplicationJobState' "ACTIVE"

pattern ReplicationJobState_COMPLETED :: ReplicationJobState
pattern $bReplicationJobState_COMPLETED :: ReplicationJobState
$mReplicationJobState_COMPLETED :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_COMPLETED = ReplicationJobState' "COMPLETED"

pattern ReplicationJobState_DELETED :: ReplicationJobState
pattern $bReplicationJobState_DELETED :: ReplicationJobState
$mReplicationJobState_DELETED :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_DELETED = ReplicationJobState' "DELETED"

pattern ReplicationJobState_DELETING :: ReplicationJobState
pattern $bReplicationJobState_DELETING :: ReplicationJobState
$mReplicationJobState_DELETING :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_DELETING = ReplicationJobState' "DELETING"

pattern ReplicationJobState_FAILED :: ReplicationJobState
pattern $bReplicationJobState_FAILED :: ReplicationJobState
$mReplicationJobState_FAILED :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_FAILED = ReplicationJobState' "FAILED"

pattern ReplicationJobState_FAILING :: ReplicationJobState
pattern $bReplicationJobState_FAILING :: ReplicationJobState
$mReplicationJobState_FAILING :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_FAILING = ReplicationJobState' "FAILING"

pattern ReplicationJobState_PAUSED_ON_FAILURE :: ReplicationJobState
pattern $bReplicationJobState_PAUSED_ON_FAILURE :: ReplicationJobState
$mReplicationJobState_PAUSED_ON_FAILURE :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_PAUSED_ON_FAILURE = ReplicationJobState' "PAUSED_ON_FAILURE"

pattern ReplicationJobState_PENDING :: ReplicationJobState
pattern $bReplicationJobState_PENDING :: ReplicationJobState
$mReplicationJobState_PENDING :: forall r. ReplicationJobState -> (Void# -> r) -> (Void# -> r) -> r
ReplicationJobState_PENDING = ReplicationJobState' "PENDING"

{-# COMPLETE
  ReplicationJobState_ACTIVE,
  ReplicationJobState_COMPLETED,
  ReplicationJobState_DELETED,
  ReplicationJobState_DELETING,
  ReplicationJobState_FAILED,
  ReplicationJobState_FAILING,
  ReplicationJobState_PAUSED_ON_FAILURE,
  ReplicationJobState_PENDING,
  ReplicationJobState'
  #-}