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

pattern VpcState_Available :: VpcState
pattern $bVpcState_Available :: VpcState
$mVpcState_Available :: forall {r}. VpcState -> ((# #) -> r) -> ((# #) -> r) -> r
VpcState_Available = VpcState' "available"

pattern VpcState_Pending :: VpcState
pattern $bVpcState_Pending :: VpcState
$mVpcState_Pending :: forall {r}. VpcState -> ((# #) -> r) -> ((# #) -> r) -> r
VpcState_Pending = VpcState' "pending"

{-# COMPLETE
  VpcState_Available,
  VpcState_Pending,
  VpcState'
  #-}