{-# 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.ResourceShareStatus
-- 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.ResourceShareStatus
  ( ResourceShareStatus
      ( ..,
        ResourceShareStatus_ACTIVE,
        ResourceShareStatus_DELETED,
        ResourceShareStatus_DELETING,
        ResourceShareStatus_FAILED,
        ResourceShareStatus_PENDING
      ),
  )
where

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

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

pattern ResourceShareStatus_ACTIVE :: ResourceShareStatus
pattern $bResourceShareStatus_ACTIVE :: ResourceShareStatus
$mResourceShareStatus_ACTIVE :: forall r. ResourceShareStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareStatus_ACTIVE = ResourceShareStatus' "ACTIVE"

pattern ResourceShareStatus_DELETED :: ResourceShareStatus
pattern $bResourceShareStatus_DELETED :: ResourceShareStatus
$mResourceShareStatus_DELETED :: forall r. ResourceShareStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareStatus_DELETED = ResourceShareStatus' "DELETED"

pattern ResourceShareStatus_DELETING :: ResourceShareStatus
pattern $bResourceShareStatus_DELETING :: ResourceShareStatus
$mResourceShareStatus_DELETING :: forall r. ResourceShareStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareStatus_DELETING = ResourceShareStatus' "DELETING"

pattern ResourceShareStatus_FAILED :: ResourceShareStatus
pattern $bResourceShareStatus_FAILED :: ResourceShareStatus
$mResourceShareStatus_FAILED :: forall r. ResourceShareStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareStatus_FAILED = ResourceShareStatus' "FAILED"

pattern ResourceShareStatus_PENDING :: ResourceShareStatus
pattern $bResourceShareStatus_PENDING :: ResourceShareStatus
$mResourceShareStatus_PENDING :: forall r. ResourceShareStatus -> (Void# -> r) -> (Void# -> r) -> r
ResourceShareStatus_PENDING = ResourceShareStatus' "PENDING"

{-# COMPLETE
  ResourceShareStatus_ACTIVE,
  ResourceShareStatus_DELETED,
  ResourceShareStatus_DELETING,
  ResourceShareStatus_FAILED,
  ResourceShareStatus_PENDING,
  ResourceShareStatus'
  #-}