{-# 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.EC2.Types.VpcPeeringConnectionStateReasonCode
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.EC2.Types.VpcPeeringConnectionStateReasonCode
  ( VpcPeeringConnectionStateReasonCode
      ( ..,
        VpcPeeringConnectionStateReasonCode_Active,
        VpcPeeringConnectionStateReasonCode_Deleted,
        VpcPeeringConnectionStateReasonCode_Deleting,
        VpcPeeringConnectionStateReasonCode_Expired,
        VpcPeeringConnectionStateReasonCode_Failed,
        VpcPeeringConnectionStateReasonCode_Initiating_request,
        VpcPeeringConnectionStateReasonCode_Pending_acceptance,
        VpcPeeringConnectionStateReasonCode_Provisioning,
        VpcPeeringConnectionStateReasonCode_Rejected
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import qualified Amazonka.Prelude as Prelude

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

pattern VpcPeeringConnectionStateReasonCode_Active :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Active :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Active :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Active = VpcPeeringConnectionStateReasonCode' "active"

pattern VpcPeeringConnectionStateReasonCode_Deleted :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Deleted :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Deleted :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Deleted = VpcPeeringConnectionStateReasonCode' "deleted"

pattern VpcPeeringConnectionStateReasonCode_Deleting :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Deleting :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Deleting :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Deleting = VpcPeeringConnectionStateReasonCode' "deleting"

pattern VpcPeeringConnectionStateReasonCode_Expired :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Expired :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Expired :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Expired = VpcPeeringConnectionStateReasonCode' "expired"

pattern VpcPeeringConnectionStateReasonCode_Failed :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Failed :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Failed :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Failed = VpcPeeringConnectionStateReasonCode' "failed"

pattern VpcPeeringConnectionStateReasonCode_Initiating_request :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Initiating_request :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Initiating_request :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Initiating_request = VpcPeeringConnectionStateReasonCode' "initiating-request"

pattern VpcPeeringConnectionStateReasonCode_Pending_acceptance :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Pending_acceptance :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Pending_acceptance :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Pending_acceptance = VpcPeeringConnectionStateReasonCode' "pending-acceptance"

pattern VpcPeeringConnectionStateReasonCode_Provisioning :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Provisioning :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Provisioning :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Provisioning = VpcPeeringConnectionStateReasonCode' "provisioning"

pattern VpcPeeringConnectionStateReasonCode_Rejected :: VpcPeeringConnectionStateReasonCode
pattern $bVpcPeeringConnectionStateReasonCode_Rejected :: VpcPeeringConnectionStateReasonCode
$mVpcPeeringConnectionStateReasonCode_Rejected :: forall {r}.
VpcPeeringConnectionStateReasonCode
-> ((# #) -> r) -> ((# #) -> r) -> r
VpcPeeringConnectionStateReasonCode_Rejected = VpcPeeringConnectionStateReasonCode' "rejected"

{-# COMPLETE
  VpcPeeringConnectionStateReasonCode_Active,
  VpcPeeringConnectionStateReasonCode_Deleted,
  VpcPeeringConnectionStateReasonCode_Deleting,
  VpcPeeringConnectionStateReasonCode_Expired,
  VpcPeeringConnectionStateReasonCode_Failed,
  VpcPeeringConnectionStateReasonCode_Initiating_request,
  VpcPeeringConnectionStateReasonCode_Pending_acceptance,
  VpcPeeringConnectionStateReasonCode_Provisioning,
  VpcPeeringConnectionStateReasonCode_Rejected,
  VpcPeeringConnectionStateReasonCode'
  #-}