{-# 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.IpamManagementState
-- 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.IpamManagementState
  ( IpamManagementState
      ( ..,
        IpamManagementState_Ignored,
        IpamManagementState_Managed,
        IpamManagementState_Unmanaged
      ),
  )
where

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

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

pattern IpamManagementState_Ignored :: IpamManagementState
pattern $bIpamManagementState_Ignored :: IpamManagementState
$mIpamManagementState_Ignored :: forall {r}.
IpamManagementState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamManagementState_Ignored = IpamManagementState' "ignored"

pattern IpamManagementState_Managed :: IpamManagementState
pattern $bIpamManagementState_Managed :: IpamManagementState
$mIpamManagementState_Managed :: forall {r}.
IpamManagementState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamManagementState_Managed = IpamManagementState' "managed"

pattern IpamManagementState_Unmanaged :: IpamManagementState
pattern $bIpamManagementState_Unmanaged :: IpamManagementState
$mIpamManagementState_Unmanaged :: forall {r}.
IpamManagementState -> ((# #) -> r) -> ((# #) -> r) -> r
IpamManagementState_Unmanaged = IpamManagementState' "unmanaged"

{-# COMPLETE
  IpamManagementState_Ignored,
  IpamManagementState_Managed,
  IpamManagementState_Unmanaged,
  IpamManagementState'
  #-}