{-# 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.IpamOverlapStatus
-- 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.IpamOverlapStatus
  ( IpamOverlapStatus
      ( ..,
        IpamOverlapStatus_Ignored,
        IpamOverlapStatus_Nonoverlapping,
        IpamOverlapStatus_Overlapping
      ),
  )
where

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

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

pattern IpamOverlapStatus_Ignored :: IpamOverlapStatus
pattern $bIpamOverlapStatus_Ignored :: IpamOverlapStatus
$mIpamOverlapStatus_Ignored :: forall {r}. IpamOverlapStatus -> ((# #) -> r) -> ((# #) -> r) -> r
IpamOverlapStatus_Ignored = IpamOverlapStatus' "ignored"

pattern IpamOverlapStatus_Nonoverlapping :: IpamOverlapStatus
pattern $bIpamOverlapStatus_Nonoverlapping :: IpamOverlapStatus
$mIpamOverlapStatus_Nonoverlapping :: forall {r}. IpamOverlapStatus -> ((# #) -> r) -> ((# #) -> r) -> r
IpamOverlapStatus_Nonoverlapping = IpamOverlapStatus' "nonoverlapping"

pattern IpamOverlapStatus_Overlapping :: IpamOverlapStatus
pattern $bIpamOverlapStatus_Overlapping :: IpamOverlapStatus
$mIpamOverlapStatus_Overlapping :: forall {r}. IpamOverlapStatus -> ((# #) -> r) -> ((# #) -> r) -> r
IpamOverlapStatus_Overlapping = IpamOverlapStatus' "overlapping"

{-# COMPLETE
  IpamOverlapStatus_Ignored,
  IpamOverlapStatus_Nonoverlapping,
  IpamOverlapStatus_Overlapping,
  IpamOverlapStatus'
  #-}