{-# 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.TransitGatewayRouteTableAnnouncementState
-- 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.TransitGatewayRouteTableAnnouncementState
  ( TransitGatewayRouteTableAnnouncementState
      ( ..,
        TransitGatewayRouteTableAnnouncementState_Available,
        TransitGatewayRouteTableAnnouncementState_Deleted,
        TransitGatewayRouteTableAnnouncementState_Deleting,
        TransitGatewayRouteTableAnnouncementState_Failed,
        TransitGatewayRouteTableAnnouncementState_Failing,
        TransitGatewayRouteTableAnnouncementState_Pending
      ),
  )
where

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

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

pattern TransitGatewayRouteTableAnnouncementState_Available :: TransitGatewayRouteTableAnnouncementState
pattern $bTransitGatewayRouteTableAnnouncementState_Available :: TransitGatewayRouteTableAnnouncementState
$mTransitGatewayRouteTableAnnouncementState_Available :: forall {r}.
TransitGatewayRouteTableAnnouncementState
-> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableAnnouncementState_Available = TransitGatewayRouteTableAnnouncementState' "available"

pattern TransitGatewayRouteTableAnnouncementState_Deleted :: TransitGatewayRouteTableAnnouncementState
pattern $bTransitGatewayRouteTableAnnouncementState_Deleted :: TransitGatewayRouteTableAnnouncementState
$mTransitGatewayRouteTableAnnouncementState_Deleted :: forall {r}.
TransitGatewayRouteTableAnnouncementState
-> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableAnnouncementState_Deleted = TransitGatewayRouteTableAnnouncementState' "deleted"

pattern TransitGatewayRouteTableAnnouncementState_Deleting :: TransitGatewayRouteTableAnnouncementState
pattern $bTransitGatewayRouteTableAnnouncementState_Deleting :: TransitGatewayRouteTableAnnouncementState
$mTransitGatewayRouteTableAnnouncementState_Deleting :: forall {r}.
TransitGatewayRouteTableAnnouncementState
-> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableAnnouncementState_Deleting = TransitGatewayRouteTableAnnouncementState' "deleting"

pattern TransitGatewayRouteTableAnnouncementState_Failed :: TransitGatewayRouteTableAnnouncementState
pattern $bTransitGatewayRouteTableAnnouncementState_Failed :: TransitGatewayRouteTableAnnouncementState
$mTransitGatewayRouteTableAnnouncementState_Failed :: forall {r}.
TransitGatewayRouteTableAnnouncementState
-> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableAnnouncementState_Failed = TransitGatewayRouteTableAnnouncementState' "failed"

pattern TransitGatewayRouteTableAnnouncementState_Failing :: TransitGatewayRouteTableAnnouncementState
pattern $bTransitGatewayRouteTableAnnouncementState_Failing :: TransitGatewayRouteTableAnnouncementState
$mTransitGatewayRouteTableAnnouncementState_Failing :: forall {r}.
TransitGatewayRouteTableAnnouncementState
-> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableAnnouncementState_Failing = TransitGatewayRouteTableAnnouncementState' "failing"

pattern TransitGatewayRouteTableAnnouncementState_Pending :: TransitGatewayRouteTableAnnouncementState
pattern $bTransitGatewayRouteTableAnnouncementState_Pending :: TransitGatewayRouteTableAnnouncementState
$mTransitGatewayRouteTableAnnouncementState_Pending :: forall {r}.
TransitGatewayRouteTableAnnouncementState
-> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableAnnouncementState_Pending = TransitGatewayRouteTableAnnouncementState' "pending"

{-# COMPLETE
  TransitGatewayRouteTableAnnouncementState_Available,
  TransitGatewayRouteTableAnnouncementState_Deleted,
  TransitGatewayRouteTableAnnouncementState_Deleting,
  TransitGatewayRouteTableAnnouncementState_Failed,
  TransitGatewayRouteTableAnnouncementState_Failing,
  TransitGatewayRouteTableAnnouncementState_Pending,
  TransitGatewayRouteTableAnnouncementState'
  #-}