{-# 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.MGN.Types.DataReplicationInitiationStepName
-- 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.MGN.Types.DataReplicationInitiationStepName
  ( DataReplicationInitiationStepName
      ( ..,
        DataReplicationInitiationStepName_ATTACH_STAGING_DISKS,
        DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE,
        DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER,
        DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER,
        DataReplicationInitiationStepName_CREATE_SECURITY_GROUP,
        DataReplicationInitiationStepName_CREATE_STAGING_DISKS,
        DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE,
        DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER,
        DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT,
        DataReplicationInitiationStepName_START_DATA_TRANSFER,
        DataReplicationInitiationStepName_WAIT
      ),
  )
where

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

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

pattern DataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_ATTACH_STAGING_DISKS = DataReplicationInitiationStepName' "ATTACH_STAGING_DISKS"

pattern DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE = DataReplicationInitiationStepName' "AUTHENTICATE_WITH_SERVICE"

pattern DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_BOOT_REPLICATION_SERVER :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_BOOT_REPLICATION_SERVER :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER = DataReplicationInitiationStepName' "BOOT_REPLICATION_SERVER"

pattern DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER = DataReplicationInitiationStepName' "CONNECT_AGENT_TO_REPLICATION_SERVER"

pattern DataReplicationInitiationStepName_CREATE_SECURITY_GROUP :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_CREATE_SECURITY_GROUP :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_CREATE_SECURITY_GROUP :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_CREATE_SECURITY_GROUP = DataReplicationInitiationStepName' "CREATE_SECURITY_GROUP"

pattern DataReplicationInitiationStepName_CREATE_STAGING_DISKS :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_CREATE_STAGING_DISKS :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_CREATE_STAGING_DISKS :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_CREATE_STAGING_DISKS = DataReplicationInitiationStepName' "CREATE_STAGING_DISKS"

pattern DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE = DataReplicationInitiationStepName' "DOWNLOAD_REPLICATION_SOFTWARE"

pattern DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER = DataReplicationInitiationStepName' "LAUNCH_REPLICATION_SERVER"

pattern DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT = DataReplicationInitiationStepName' "PAIR_REPLICATION_SERVER_WITH_AGENT"

pattern DataReplicationInitiationStepName_START_DATA_TRANSFER :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_START_DATA_TRANSFER :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_START_DATA_TRANSFER :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_START_DATA_TRANSFER = DataReplicationInitiationStepName' "START_DATA_TRANSFER"

pattern DataReplicationInitiationStepName_WAIT :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_WAIT :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_WAIT :: forall r.
DataReplicationInitiationStepName
-> (Void# -> r) -> (Void# -> r) -> r
DataReplicationInitiationStepName_WAIT = DataReplicationInitiationStepName' "WAIT"

{-# COMPLETE
  DataReplicationInitiationStepName_ATTACH_STAGING_DISKS,
  DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE,
  DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER,
  DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER,
  DataReplicationInitiationStepName_CREATE_SECURITY_GROUP,
  DataReplicationInitiationStepName_CREATE_STAGING_DISKS,
  DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE,
  DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER,
  DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT,
  DataReplicationInitiationStepName_START_DATA_TRANSFER,
  DataReplicationInitiationStepName_WAIT,
  DataReplicationInitiationStepName'
  #-}