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

pattern TransitGatewayRouteTableState_Available :: TransitGatewayRouteTableState
pattern $bTransitGatewayRouteTableState_Available :: TransitGatewayRouteTableState
$mTransitGatewayRouteTableState_Available :: forall {r}.
TransitGatewayRouteTableState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableState_Available = TransitGatewayRouteTableState' "available"

pattern TransitGatewayRouteTableState_Deleted :: TransitGatewayRouteTableState
pattern $bTransitGatewayRouteTableState_Deleted :: TransitGatewayRouteTableState
$mTransitGatewayRouteTableState_Deleted :: forall {r}.
TransitGatewayRouteTableState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableState_Deleted = TransitGatewayRouteTableState' "deleted"

pattern TransitGatewayRouteTableState_Deleting :: TransitGatewayRouteTableState
pattern $bTransitGatewayRouteTableState_Deleting :: TransitGatewayRouteTableState
$mTransitGatewayRouteTableState_Deleting :: forall {r}.
TransitGatewayRouteTableState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableState_Deleting = TransitGatewayRouteTableState' "deleting"

pattern TransitGatewayRouteTableState_Pending :: TransitGatewayRouteTableState
pattern $bTransitGatewayRouteTableState_Pending :: TransitGatewayRouteTableState
$mTransitGatewayRouteTableState_Pending :: forall {r}.
TransitGatewayRouteTableState -> ((# #) -> r) -> ((# #) -> r) -> r
TransitGatewayRouteTableState_Pending = TransitGatewayRouteTableState' "pending"

{-# COMPLETE
  TransitGatewayRouteTableState_Available,
  TransitGatewayRouteTableState_Deleted,
  TransitGatewayRouteTableState_Deleting,
  TransitGatewayRouteTableState_Pending,
  TransitGatewayRouteTableState'
  #-}