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

pattern IpamState_Create_complete :: IpamState
pattern $bIpamState_Create_complete :: IpamState
$mIpamState_Create_complete :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Create_complete = IpamState' "create-complete"

pattern IpamState_Create_failed :: IpamState
pattern $bIpamState_Create_failed :: IpamState
$mIpamState_Create_failed :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Create_failed = IpamState' "create-failed"

pattern IpamState_Create_in_progress :: IpamState
pattern $bIpamState_Create_in_progress :: IpamState
$mIpamState_Create_in_progress :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Create_in_progress = IpamState' "create-in-progress"

pattern IpamState_Delete_complete :: IpamState
pattern $bIpamState_Delete_complete :: IpamState
$mIpamState_Delete_complete :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Delete_complete = IpamState' "delete-complete"

pattern IpamState_Delete_failed :: IpamState
pattern $bIpamState_Delete_failed :: IpamState
$mIpamState_Delete_failed :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Delete_failed = IpamState' "delete-failed"

pattern IpamState_Delete_in_progress :: IpamState
pattern $bIpamState_Delete_in_progress :: IpamState
$mIpamState_Delete_in_progress :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Delete_in_progress = IpamState' "delete-in-progress"

pattern IpamState_Isolate_complete :: IpamState
pattern $bIpamState_Isolate_complete :: IpamState
$mIpamState_Isolate_complete :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Isolate_complete = IpamState' "isolate-complete"

pattern IpamState_Isolate_in_progress :: IpamState
pattern $bIpamState_Isolate_in_progress :: IpamState
$mIpamState_Isolate_in_progress :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Isolate_in_progress = IpamState' "isolate-in-progress"

pattern IpamState_Modify_complete :: IpamState
pattern $bIpamState_Modify_complete :: IpamState
$mIpamState_Modify_complete :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Modify_complete = IpamState' "modify-complete"

pattern IpamState_Modify_failed :: IpamState
pattern $bIpamState_Modify_failed :: IpamState
$mIpamState_Modify_failed :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Modify_failed = IpamState' "modify-failed"

pattern IpamState_Modify_in_progress :: IpamState
pattern $bIpamState_Modify_in_progress :: IpamState
$mIpamState_Modify_in_progress :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Modify_in_progress = IpamState' "modify-in-progress"

pattern IpamState_Restore_in_progress :: IpamState
pattern $bIpamState_Restore_in_progress :: IpamState
$mIpamState_Restore_in_progress :: forall {r}. IpamState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamState_Restore_in_progress = IpamState' "restore-in-progress"

{-# COMPLETE
  IpamState_Create_complete,
  IpamState_Create_failed,
  IpamState_Create_in_progress,
  IpamState_Delete_complete,
  IpamState_Delete_failed,
  IpamState_Delete_in_progress,
  IpamState_Isolate_complete,
  IpamState_Isolate_in_progress,
  IpamState_Modify_complete,
  IpamState_Modify_failed,
  IpamState_Modify_in_progress,
  IpamState_Restore_in_progress,
  IpamState'
  #-}