{-# 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.ReplicationConfigurationReplicatedDiskStagingDiskType
-- 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.MGN.Types.ReplicationConfigurationReplicatedDiskStagingDiskType
  ( ReplicationConfigurationReplicatedDiskStagingDiskType
      ( ..,
        ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO,
        ReplicationConfigurationReplicatedDiskStagingDiskType_GP2,
        ReplicationConfigurationReplicatedDiskStagingDiskType_GP3,
        ReplicationConfigurationReplicatedDiskStagingDiskType_IO1,
        ReplicationConfigurationReplicatedDiskStagingDiskType_IO2,
        ReplicationConfigurationReplicatedDiskStagingDiskType_SC1,
        ReplicationConfigurationReplicatedDiskStagingDiskType_ST1,
        ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD
      ),
  )
where

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

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

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_AUTO :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_AUTO :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO = ReplicationConfigurationReplicatedDiskStagingDiskType' "AUTO"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_GP2 :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_GP2 :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_GP2 :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_GP2 = ReplicationConfigurationReplicatedDiskStagingDiskType' "GP2"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_GP3 :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_GP3 :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_GP3 :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_GP3 = ReplicationConfigurationReplicatedDiskStagingDiskType' "GP3"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_IO1 :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_IO1 :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_IO1 :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_IO1 = ReplicationConfigurationReplicatedDiskStagingDiskType' "IO1"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_IO2 :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_IO2 :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_IO2 :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_IO2 = ReplicationConfigurationReplicatedDiskStagingDiskType' "IO2"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_SC1 :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_SC1 :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_SC1 :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_SC1 = ReplicationConfigurationReplicatedDiskStagingDiskType' "SC1"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_ST1 :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_ST1 :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_ST1 :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_ST1 = ReplicationConfigurationReplicatedDiskStagingDiskType' "ST1"

pattern ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD :: ReplicationConfigurationReplicatedDiskStagingDiskType
pattern $bReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD :: ReplicationConfigurationReplicatedDiskStagingDiskType
$mReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD :: forall {r}.
ReplicationConfigurationReplicatedDiskStagingDiskType
-> ((# #) -> r) -> ((# #) -> r) -> r
ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD = ReplicationConfigurationReplicatedDiskStagingDiskType' "STANDARD"

{-# COMPLETE
  ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO,
  ReplicationConfigurationReplicatedDiskStagingDiskType_GP2,
  ReplicationConfigurationReplicatedDiskStagingDiskType_GP3,
  ReplicationConfigurationReplicatedDiskStagingDiskType_IO1,
  ReplicationConfigurationReplicatedDiskStagingDiskType_IO2,
  ReplicationConfigurationReplicatedDiskStagingDiskType_SC1,
  ReplicationConfigurationReplicatedDiskStagingDiskType_ST1,
  ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD,
  ReplicationConfigurationReplicatedDiskStagingDiskType'
  #-}