{-# 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.ManagedBlockChain.Types.ProposalStatus
-- 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.ManagedBlockChain.Types.ProposalStatus
  ( ProposalStatus
      ( ..,
        ProposalStatus_ACTION_FAILED,
        ProposalStatus_APPROVED,
        ProposalStatus_EXPIRED,
        ProposalStatus_IN_PROGRESS,
        ProposalStatus_REJECTED
      ),
  )
where

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

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

pattern ProposalStatus_ACTION_FAILED :: ProposalStatus
pattern $bProposalStatus_ACTION_FAILED :: ProposalStatus
$mProposalStatus_ACTION_FAILED :: forall r. ProposalStatus -> (Void# -> r) -> (Void# -> r) -> r
ProposalStatus_ACTION_FAILED = ProposalStatus' "ACTION_FAILED"

pattern ProposalStatus_APPROVED :: ProposalStatus
pattern $bProposalStatus_APPROVED :: ProposalStatus
$mProposalStatus_APPROVED :: forall r. ProposalStatus -> (Void# -> r) -> (Void# -> r) -> r
ProposalStatus_APPROVED = ProposalStatus' "APPROVED"

pattern ProposalStatus_EXPIRED :: ProposalStatus
pattern $bProposalStatus_EXPIRED :: ProposalStatus
$mProposalStatus_EXPIRED :: forall r. ProposalStatus -> (Void# -> r) -> (Void# -> r) -> r
ProposalStatus_EXPIRED = ProposalStatus' "EXPIRED"

pattern ProposalStatus_IN_PROGRESS :: ProposalStatus
pattern $bProposalStatus_IN_PROGRESS :: ProposalStatus
$mProposalStatus_IN_PROGRESS :: forall r. ProposalStatus -> (Void# -> r) -> (Void# -> r) -> r
ProposalStatus_IN_PROGRESS = ProposalStatus' "IN_PROGRESS"

pattern ProposalStatus_REJECTED :: ProposalStatus
pattern $bProposalStatus_REJECTED :: ProposalStatus
$mProposalStatus_REJECTED :: forall r. ProposalStatus -> (Void# -> r) -> (Void# -> r) -> r
ProposalStatus_REJECTED = ProposalStatus' "REJECTED"

{-# COMPLETE
  ProposalStatus_ACTION_FAILED,
  ProposalStatus_APPROVED,
  ProposalStatus_EXPIRED,
  ProposalStatus_IN_PROGRESS,
  ProposalStatus_REJECTED,
  ProposalStatus'
  #-}