{-# 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.ReplicationRunType
-- 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.ReplicationRunType
  ( ReplicationRunType
      ( ..,
        ReplicationRunType_AUTOMATIC,
        ReplicationRunType_ON_DEMAND
      ),
  )
where

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

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

pattern ReplicationRunType_AUTOMATIC :: ReplicationRunType
pattern $bReplicationRunType_AUTOMATIC :: ReplicationRunType
$mReplicationRunType_AUTOMATIC :: forall r. ReplicationRunType -> (Void# -> r) -> (Void# -> r) -> r
ReplicationRunType_AUTOMATIC = ReplicationRunType' "AUTOMATIC"

pattern ReplicationRunType_ON_DEMAND :: ReplicationRunType
pattern $bReplicationRunType_ON_DEMAND :: ReplicationRunType
$mReplicationRunType_ON_DEMAND :: forall r. ReplicationRunType -> (Void# -> r) -> (Void# -> r) -> r
ReplicationRunType_ON_DEMAND = ReplicationRunType' "ON_DEMAND"

{-# COMPLETE
  ReplicationRunType_AUTOMATIC,
  ReplicationRunType_ON_DEMAND,
  ReplicationRunType'
  #-}