{-# 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.IpamPoolState
-- 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.IpamPoolState
  ( IpamPoolState
      ( ..,
        IpamPoolState_Create_complete,
        IpamPoolState_Create_failed,
        IpamPoolState_Create_in_progress,
        IpamPoolState_Delete_complete,
        IpamPoolState_Delete_failed,
        IpamPoolState_Delete_in_progress,
        IpamPoolState_Isolate_complete,
        IpamPoolState_Isolate_in_progress,
        IpamPoolState_Modify_complete,
        IpamPoolState_Modify_failed,
        IpamPoolState_Modify_in_progress,
        IpamPoolState_Restore_in_progress
      ),
  )
where

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

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

pattern IpamPoolState_Create_complete :: IpamPoolState
pattern $bIpamPoolState_Create_complete :: IpamPoolState
$mIpamPoolState_Create_complete :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Create_complete = IpamPoolState' "create-complete"

pattern IpamPoolState_Create_failed :: IpamPoolState
pattern $bIpamPoolState_Create_failed :: IpamPoolState
$mIpamPoolState_Create_failed :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Create_failed = IpamPoolState' "create-failed"

pattern IpamPoolState_Create_in_progress :: IpamPoolState
pattern $bIpamPoolState_Create_in_progress :: IpamPoolState
$mIpamPoolState_Create_in_progress :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Create_in_progress = IpamPoolState' "create-in-progress"

pattern IpamPoolState_Delete_complete :: IpamPoolState
pattern $bIpamPoolState_Delete_complete :: IpamPoolState
$mIpamPoolState_Delete_complete :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Delete_complete = IpamPoolState' "delete-complete"

pattern IpamPoolState_Delete_failed :: IpamPoolState
pattern $bIpamPoolState_Delete_failed :: IpamPoolState
$mIpamPoolState_Delete_failed :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Delete_failed = IpamPoolState' "delete-failed"

pattern IpamPoolState_Delete_in_progress :: IpamPoolState
pattern $bIpamPoolState_Delete_in_progress :: IpamPoolState
$mIpamPoolState_Delete_in_progress :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Delete_in_progress = IpamPoolState' "delete-in-progress"

pattern IpamPoolState_Isolate_complete :: IpamPoolState
pattern $bIpamPoolState_Isolate_complete :: IpamPoolState
$mIpamPoolState_Isolate_complete :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Isolate_complete = IpamPoolState' "isolate-complete"

pattern IpamPoolState_Isolate_in_progress :: IpamPoolState
pattern $bIpamPoolState_Isolate_in_progress :: IpamPoolState
$mIpamPoolState_Isolate_in_progress :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Isolate_in_progress = IpamPoolState' "isolate-in-progress"

pattern IpamPoolState_Modify_complete :: IpamPoolState
pattern $bIpamPoolState_Modify_complete :: IpamPoolState
$mIpamPoolState_Modify_complete :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Modify_complete = IpamPoolState' "modify-complete"

pattern IpamPoolState_Modify_failed :: IpamPoolState
pattern $bIpamPoolState_Modify_failed :: IpamPoolState
$mIpamPoolState_Modify_failed :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Modify_failed = IpamPoolState' "modify-failed"

pattern IpamPoolState_Modify_in_progress :: IpamPoolState
pattern $bIpamPoolState_Modify_in_progress :: IpamPoolState
$mIpamPoolState_Modify_in_progress :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Modify_in_progress = IpamPoolState' "modify-in-progress"

pattern IpamPoolState_Restore_in_progress :: IpamPoolState
pattern $bIpamPoolState_Restore_in_progress :: IpamPoolState
$mIpamPoolState_Restore_in_progress :: forall {r}. IpamPoolState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamPoolState_Restore_in_progress = IpamPoolState' "restore-in-progress"

{-# COMPLETE
  IpamPoolState_Create_complete,
  IpamPoolState_Create_failed,
  IpamPoolState_Create_in_progress,
  IpamPoolState_Delete_complete,
  IpamPoolState_Delete_failed,
  IpamPoolState_Delete_in_progress,
  IpamPoolState_Isolate_complete,
  IpamPoolState_Isolate_in_progress,
  IpamPoolState_Modify_complete,
  IpamPoolState_Modify_failed,
  IpamPoolState_Modify_in_progress,
  IpamPoolState_Restore_in_progress,
  IpamPoolState'
  #-}