{-# 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.TransitGatewayAttachmentState
-- 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.TransitGatewayAttachmentState
  ( TransitGatewayAttachmentState
      ( ..,
        TransitGatewayAttachmentState_Available,
        TransitGatewayAttachmentState_Deleted,
        TransitGatewayAttachmentState_Deleting,
        TransitGatewayAttachmentState_Failed,
        TransitGatewayAttachmentState_Failing,
        TransitGatewayAttachmentState_Initiating,
        TransitGatewayAttachmentState_InitiatingRequest,
        TransitGatewayAttachmentState_Modifying,
        TransitGatewayAttachmentState_Pending,
        TransitGatewayAttachmentState_PendingAcceptance,
        TransitGatewayAttachmentState_Rejected,
        TransitGatewayAttachmentState_Rejecting,
        TransitGatewayAttachmentState_RollingBack
      ),
  )
where

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

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

pattern TransitGatewayAttachmentState_Available :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Available :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Available :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Available = TransitGatewayAttachmentState' "available"

pattern TransitGatewayAttachmentState_Deleted :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Deleted :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Deleted :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Deleted = TransitGatewayAttachmentState' "deleted"

pattern TransitGatewayAttachmentState_Deleting :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Deleting :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Deleting :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Deleting = TransitGatewayAttachmentState' "deleting"

pattern TransitGatewayAttachmentState_Failed :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Failed :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Failed :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Failed = TransitGatewayAttachmentState' "failed"

pattern TransitGatewayAttachmentState_Failing :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Failing :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Failing :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Failing = TransitGatewayAttachmentState' "failing"

pattern TransitGatewayAttachmentState_Initiating :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Initiating :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Initiating :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Initiating = TransitGatewayAttachmentState' "initiating"

pattern TransitGatewayAttachmentState_InitiatingRequest :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_InitiatingRequest :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_InitiatingRequest :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_InitiatingRequest = TransitGatewayAttachmentState' "initiatingRequest"

pattern TransitGatewayAttachmentState_Modifying :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Modifying :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Modifying :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Modifying = TransitGatewayAttachmentState' "modifying"

pattern TransitGatewayAttachmentState_Pending :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Pending :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Pending :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Pending = TransitGatewayAttachmentState' "pending"

pattern TransitGatewayAttachmentState_PendingAcceptance :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_PendingAcceptance :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_PendingAcceptance :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_PendingAcceptance = TransitGatewayAttachmentState' "pendingAcceptance"

pattern TransitGatewayAttachmentState_Rejected :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Rejected :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Rejected :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Rejected = TransitGatewayAttachmentState' "rejected"

pattern TransitGatewayAttachmentState_Rejecting :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_Rejecting :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_Rejecting :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_Rejecting = TransitGatewayAttachmentState' "rejecting"

pattern TransitGatewayAttachmentState_RollingBack :: TransitGatewayAttachmentState
pattern $bTransitGatewayAttachmentState_RollingBack :: TransitGatewayAttachmentState
$mTransitGatewayAttachmentState_RollingBack :: forall {r}.
TransitGatewayAttachmentState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayAttachmentState_RollingBack = TransitGatewayAttachmentState' "rollingBack"

{-# COMPLETE
  TransitGatewayAttachmentState_Available,
  TransitGatewayAttachmentState_Deleted,
  TransitGatewayAttachmentState_Deleting,
  TransitGatewayAttachmentState_Failed,
  TransitGatewayAttachmentState_Failing,
  TransitGatewayAttachmentState_Initiating,
  TransitGatewayAttachmentState_InitiatingRequest,
  TransitGatewayAttachmentState_Modifying,
  TransitGatewayAttachmentState_Pending,
  TransitGatewayAttachmentState_PendingAcceptance,
  TransitGatewayAttachmentState_Rejected,
  TransitGatewayAttachmentState_Rejecting,
  TransitGatewayAttachmentState_RollingBack,
  TransitGatewayAttachmentState'
  #-}