{-# 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.RAM.Types.ResourceShareAssociationStatus
-- 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.RAM.Types.ResourceShareAssociationStatus
  ( ResourceShareAssociationStatus
      ( ..,
        ResourceShareAssociationStatus_ASSOCIATED,
        ResourceShareAssociationStatus_ASSOCIATING,
        ResourceShareAssociationStatus_DISASSOCIATED,
        ResourceShareAssociationStatus_DISASSOCIATING,
        ResourceShareAssociationStatus_FAILED
      ),
  )
where

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

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

pattern ResourceShareAssociationStatus_ASSOCIATED :: ResourceShareAssociationStatus
pattern $bResourceShareAssociationStatus_ASSOCIATED :: ResourceShareAssociationStatus
$mResourceShareAssociationStatus_ASSOCIATED :: forall r.
ResourceShareAssociationStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareAssociationStatus_ASSOCIATED = ResourceShareAssociationStatus' "ASSOCIATED"

pattern ResourceShareAssociationStatus_ASSOCIATING :: ResourceShareAssociationStatus
pattern $bResourceShareAssociationStatus_ASSOCIATING :: ResourceShareAssociationStatus
$mResourceShareAssociationStatus_ASSOCIATING :: forall r.
ResourceShareAssociationStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareAssociationStatus_ASSOCIATING = ResourceShareAssociationStatus' "ASSOCIATING"

pattern ResourceShareAssociationStatus_DISASSOCIATED :: ResourceShareAssociationStatus
pattern $bResourceShareAssociationStatus_DISASSOCIATED :: ResourceShareAssociationStatus
$mResourceShareAssociationStatus_DISASSOCIATED :: forall r.
ResourceShareAssociationStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareAssociationStatus_DISASSOCIATED = ResourceShareAssociationStatus' "DISASSOCIATED"

pattern ResourceShareAssociationStatus_DISASSOCIATING :: ResourceShareAssociationStatus
pattern $bResourceShareAssociationStatus_DISASSOCIATING :: ResourceShareAssociationStatus
$mResourceShareAssociationStatus_DISASSOCIATING :: forall r.
ResourceShareAssociationStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareAssociationStatus_DISASSOCIATING = ResourceShareAssociationStatus' "DISASSOCIATING"

pattern ResourceShareAssociationStatus_FAILED :: ResourceShareAssociationStatus
pattern $bResourceShareAssociationStatus_FAILED :: ResourceShareAssociationStatus
$mResourceShareAssociationStatus_FAILED :: forall r.
ResourceShareAssociationStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareAssociationStatus_FAILED = ResourceShareAssociationStatus' "FAILED"

{-# COMPLETE
  ResourceShareAssociationStatus_ASSOCIATED,
  ResourceShareAssociationStatus_ASSOCIATING,
  ResourceShareAssociationStatus_DISASSOCIATED,
  ResourceShareAssociationStatus_DISASSOCIATING,
  ResourceShareAssociationStatus_FAILED,
  ResourceShareAssociationStatus'
  #-}