{-# 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.S3.Types.ReplicationStatus
-- 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.S3.Types.ReplicationStatus
  ( ReplicationStatus
      ( ..,
        ReplicationStatus_COMPLETED,
        ReplicationStatus_FAILED,
        ReplicationStatus_PENDING,
        ReplicationStatus_REPLICA
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude
import Amazonka.S3.Internal

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

pattern ReplicationStatus_COMPLETED :: ReplicationStatus
pattern $bReplicationStatus_COMPLETED :: ReplicationStatus
$mReplicationStatus_COMPLETED :: forall r. ReplicationStatus -> (Void# -> r) -> (Void# -> r) -> r
ReplicationStatus_COMPLETED = ReplicationStatus' "COMPLETED"

pattern ReplicationStatus_FAILED :: ReplicationStatus
pattern $bReplicationStatus_FAILED :: ReplicationStatus
$mReplicationStatus_FAILED :: forall r. ReplicationStatus -> (Void# -> r) -> (Void# -> r) -> r
ReplicationStatus_FAILED = ReplicationStatus' "FAILED"

pattern ReplicationStatus_PENDING :: ReplicationStatus
pattern $bReplicationStatus_PENDING :: ReplicationStatus
$mReplicationStatus_PENDING :: forall r. ReplicationStatus -> (Void# -> r) -> (Void# -> r) -> r
ReplicationStatus_PENDING = ReplicationStatus' "PENDING"

pattern ReplicationStatus_REPLICA :: ReplicationStatus
pattern $bReplicationStatus_REPLICA :: ReplicationStatus
$mReplicationStatus_REPLICA :: forall r. ReplicationStatus -> (Void# -> r) -> (Void# -> r) -> r
ReplicationStatus_REPLICA = ReplicationStatus' "REPLICA"

{-# COMPLETE
  ReplicationStatus_COMPLETED,
  ReplicationStatus_FAILED,
  ReplicationStatus_PENDING,
  ReplicationStatus_REPLICA,
  ReplicationStatus'
  #-}