{-# 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.DrS.Types.DataReplicationInitiationStepName
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DrS.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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype DataReplicationInitiationStepName = DataReplicationInitiationStepName'
  { DataReplicationInitiationStepName -> Text
fromDataReplicationInitiationStepName ::
      Data.Text
  }
  deriving stock
    ( Int -> DataReplicationInitiationStepName -> ShowS
[DataReplicationInitiationStepName] -> ShowS
DataReplicationInitiationStepName -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq DataReplicationInitiationStepName
Int -> DataReplicationInitiationStepName -> Int
DataReplicationInitiationStepName -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: DataReplicationInitiationStepName -> ()
$crnf :: DataReplicationInitiationStepName -> ()
Prelude.NFData,
      Text -> Either String DataReplicationInitiationStepName
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DataReplicationInitiationStepName
$cfromText :: Text -> Either String DataReplicationInitiationStepName
Data.FromText,
      DataReplicationInitiationStepName -> Text
forall a. (a -> Text) -> ToText a
toText :: DataReplicationInitiationStepName -> Text
$ctoText :: DataReplicationInitiationStepName -> Text
Data.ToText,
      DataReplicationInitiationStepName -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: DataReplicationInitiationStepName -> ByteString
$ctoBS :: DataReplicationInitiationStepName -> ByteString
Data.ToByteString,
      DataReplicationInitiationStepName -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DataReplicationInitiationStepName -> ByteStringBuilder
$cbuild :: DataReplicationInitiationStepName -> ByteStringBuilder
Data.ToLog,
      HeaderName -> DataReplicationInitiationStepName -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DataReplicationInitiationStepName -> [Header]
$ctoHeader :: HeaderName -> DataReplicationInitiationStepName -> [Header]
Data.ToHeader,
      DataReplicationInitiationStepName -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DataReplicationInitiationStepName -> QueryString
$ctoQuery :: DataReplicationInitiationStepName -> QueryString
Data.ToQuery,
      Value -> Parser [DataReplicationInitiationStepName]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [DataReplicationInitiationStepName]
FromJSONKeyFunction DataReplicationInitiationStepName
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DataReplicationInitiationStepName]
$cfromJSONKeyList :: FromJSONKeyFunction [DataReplicationInitiationStepName]
fromJSONKey :: FromJSONKeyFunction DataReplicationInitiationStepName
$cfromJSONKey :: FromJSONKeyFunction DataReplicationInitiationStepName
Data.FromJSONKey,
      [DataReplicationInitiationStepName] -> Encoding
[DataReplicationInitiationStepName] -> Value
DataReplicationInitiationStepName -> Encoding
DataReplicationInitiationStepName -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [DataReplicationInitiationStepName]
ToJSONKeyFunction DataReplicationInitiationStepName
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DataReplicationInitiationStepName]
$ctoJSONKeyList :: ToJSONKeyFunction [DataReplicationInitiationStepName]
toJSONKey :: ToJSONKeyFunction DataReplicationInitiationStepName
$ctoJSONKey :: ToJSONKeyFunction DataReplicationInitiationStepName
Data.ToJSONKey,
      [Node] -> Either String DataReplicationInitiationStepName
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DataReplicationInitiationStepName
$cparseXML :: [Node] -> Either String DataReplicationInitiationStepName
Data.FromXML,
      DataReplicationInitiationStepName -> XML
forall a. (a -> XML) -> ToXML a
toXML :: DataReplicationInitiationStepName -> XML
$ctoXML :: DataReplicationInitiationStepName -> XML
Data.ToXML
    )

pattern DataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: forall {r}.
DataReplicationInitiationStepName
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> 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
-> ((# #) -> r) -> ((# #) -> r) -> r
DataReplicationInitiationStepName_START_DATA_TRANSFER = DataReplicationInitiationStepName' "START_DATA_TRANSFER"

pattern DataReplicationInitiationStepName_WAIT :: DataReplicationInitiationStepName
pattern $bDataReplicationInitiationStepName_WAIT :: DataReplicationInitiationStepName
$mDataReplicationInitiationStepName_WAIT :: forall {r}.
DataReplicationInitiationStepName
-> ((# #) -> r) -> ((# #) -> 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'
  #-}