{-# 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.IpamAddressHistoryResourceType
-- 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.IpamAddressHistoryResourceType
  ( IpamAddressHistoryResourceType
      ( ..,
        IpamAddressHistoryResourceType_Eip,
        IpamAddressHistoryResourceType_Instance,
        IpamAddressHistoryResourceType_Network_interface,
        IpamAddressHistoryResourceType_Subnet,
        IpamAddressHistoryResourceType_Vpc
      ),
  )
where

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

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

pattern IpamAddressHistoryResourceType_Eip :: IpamAddressHistoryResourceType
pattern $bIpamAddressHistoryResourceType_Eip :: IpamAddressHistoryResourceType
$mIpamAddressHistoryResourceType_Eip :: forall {r}.
IpamAddressHistoryResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
IpamAddressHistoryResourceType_Eip = IpamAddressHistoryResourceType' "eip"

pattern IpamAddressHistoryResourceType_Instance :: IpamAddressHistoryResourceType
pattern $bIpamAddressHistoryResourceType_Instance :: IpamAddressHistoryResourceType
$mIpamAddressHistoryResourceType_Instance :: forall {r}.
IpamAddressHistoryResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
IpamAddressHistoryResourceType_Instance = IpamAddressHistoryResourceType' "instance"

pattern IpamAddressHistoryResourceType_Network_interface :: IpamAddressHistoryResourceType
pattern $bIpamAddressHistoryResourceType_Network_interface :: IpamAddressHistoryResourceType
$mIpamAddressHistoryResourceType_Network_interface :: forall {r}.
IpamAddressHistoryResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
IpamAddressHistoryResourceType_Network_interface = IpamAddressHistoryResourceType' "network-interface"

pattern IpamAddressHistoryResourceType_Subnet :: IpamAddressHistoryResourceType
pattern $bIpamAddressHistoryResourceType_Subnet :: IpamAddressHistoryResourceType
$mIpamAddressHistoryResourceType_Subnet :: forall {r}.
IpamAddressHistoryResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
IpamAddressHistoryResourceType_Subnet = IpamAddressHistoryResourceType' "subnet"

pattern IpamAddressHistoryResourceType_Vpc :: IpamAddressHistoryResourceType
pattern $bIpamAddressHistoryResourceType_Vpc :: IpamAddressHistoryResourceType
$mIpamAddressHistoryResourceType_Vpc :: forall {r}.
IpamAddressHistoryResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
IpamAddressHistoryResourceType_Vpc = IpamAddressHistoryResourceType' "vpc"

{-# COMPLETE
  IpamAddressHistoryResourceType_Eip,
  IpamAddressHistoryResourceType_Instance,
  IpamAddressHistoryResourceType_Network_interface,
  IpamAddressHistoryResourceType_Subnet,
  IpamAddressHistoryResourceType_Vpc,
  IpamAddressHistoryResourceType'
  #-}