{-# 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.Config.Types.MemberAccountRuleStatus
-- 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.Config.Types.MemberAccountRuleStatus
  ( MemberAccountRuleStatus
      ( ..,
        MemberAccountRuleStatus_CREATE_FAILED,
        MemberAccountRuleStatus_CREATE_IN_PROGRESS,
        MemberAccountRuleStatus_CREATE_SUCCESSFUL,
        MemberAccountRuleStatus_DELETE_FAILED,
        MemberAccountRuleStatus_DELETE_IN_PROGRESS,
        MemberAccountRuleStatus_DELETE_SUCCESSFUL,
        MemberAccountRuleStatus_UPDATE_FAILED,
        MemberAccountRuleStatus_UPDATE_IN_PROGRESS,
        MemberAccountRuleStatus_UPDATE_SUCCESSFUL
      ),
  )
where

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

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

pattern MemberAccountRuleStatus_CREATE_FAILED :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_CREATE_FAILED :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_CREATE_FAILED :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_CREATE_FAILED = MemberAccountRuleStatus' "CREATE_FAILED"

pattern MemberAccountRuleStatus_CREATE_IN_PROGRESS :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_CREATE_IN_PROGRESS :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_CREATE_IN_PROGRESS :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_CREATE_IN_PROGRESS = MemberAccountRuleStatus' "CREATE_IN_PROGRESS"

pattern MemberAccountRuleStatus_CREATE_SUCCESSFUL :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_CREATE_SUCCESSFUL :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_CREATE_SUCCESSFUL :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_CREATE_SUCCESSFUL = MemberAccountRuleStatus' "CREATE_SUCCESSFUL"

pattern MemberAccountRuleStatus_DELETE_FAILED :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_DELETE_FAILED :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_DELETE_FAILED :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_DELETE_FAILED = MemberAccountRuleStatus' "DELETE_FAILED"

pattern MemberAccountRuleStatus_DELETE_IN_PROGRESS :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_DELETE_IN_PROGRESS :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_DELETE_IN_PROGRESS :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_DELETE_IN_PROGRESS = MemberAccountRuleStatus' "DELETE_IN_PROGRESS"

pattern MemberAccountRuleStatus_DELETE_SUCCESSFUL :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_DELETE_SUCCESSFUL :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_DELETE_SUCCESSFUL :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_DELETE_SUCCESSFUL = MemberAccountRuleStatus' "DELETE_SUCCESSFUL"

pattern MemberAccountRuleStatus_UPDATE_FAILED :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_UPDATE_FAILED :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_UPDATE_FAILED :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_UPDATE_FAILED = MemberAccountRuleStatus' "UPDATE_FAILED"

pattern MemberAccountRuleStatus_UPDATE_IN_PROGRESS :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_UPDATE_IN_PROGRESS :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_UPDATE_IN_PROGRESS :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_UPDATE_IN_PROGRESS = MemberAccountRuleStatus' "UPDATE_IN_PROGRESS"

pattern MemberAccountRuleStatus_UPDATE_SUCCESSFUL :: MemberAccountRuleStatus
pattern $bMemberAccountRuleStatus_UPDATE_SUCCESSFUL :: MemberAccountRuleStatus
$mMemberAccountRuleStatus_UPDATE_SUCCESSFUL :: forall r.
MemberAccountRuleStatus -> (Void# -> r) -> (Void# -> r) -> r
MemberAccountRuleStatus_UPDATE_SUCCESSFUL = MemberAccountRuleStatus' "UPDATE_SUCCESSFUL"

{-# COMPLETE
  MemberAccountRuleStatus_CREATE_FAILED,
  MemberAccountRuleStatus_CREATE_IN_PROGRESS,
  MemberAccountRuleStatus_CREATE_SUCCESSFUL,
  MemberAccountRuleStatus_DELETE_FAILED,
  MemberAccountRuleStatus_DELETE_IN_PROGRESS,
  MemberAccountRuleStatus_DELETE_SUCCESSFUL,
  MemberAccountRuleStatus_UPDATE_FAILED,
  MemberAccountRuleStatus_UPDATE_IN_PROGRESS,
  MemberAccountRuleStatus_UPDATE_SUCCESSFUL,
  MemberAccountRuleStatus'
  #-}