{-# 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.NetworkInterfacePermissionStateCode
-- 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.NetworkInterfacePermissionStateCode
  ( NetworkInterfacePermissionStateCode
      ( ..,
        NetworkInterfacePermissionStateCode_Granted,
        NetworkInterfacePermissionStateCode_Pending,
        NetworkInterfacePermissionStateCode_Revoked,
        NetworkInterfacePermissionStateCode_Revoking
      ),
  )
where

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

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

pattern NetworkInterfacePermissionStateCode_Granted :: NetworkInterfacePermissionStateCode
pattern $bNetworkInterfacePermissionStateCode_Granted :: NetworkInterfacePermissionStateCode
$mNetworkInterfacePermissionStateCode_Granted :: forall {r}.
NetworkInterfacePermissionStateCode
-> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfacePermissionStateCode_Granted = NetworkInterfacePermissionStateCode' "granted"

pattern NetworkInterfacePermissionStateCode_Pending :: NetworkInterfacePermissionStateCode
pattern $bNetworkInterfacePermissionStateCode_Pending :: NetworkInterfacePermissionStateCode
$mNetworkInterfacePermissionStateCode_Pending :: forall {r}.
NetworkInterfacePermissionStateCode
-> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfacePermissionStateCode_Pending = NetworkInterfacePermissionStateCode' "pending"

pattern NetworkInterfacePermissionStateCode_Revoked :: NetworkInterfacePermissionStateCode
pattern $bNetworkInterfacePermissionStateCode_Revoked :: NetworkInterfacePermissionStateCode
$mNetworkInterfacePermissionStateCode_Revoked :: forall {r}.
NetworkInterfacePermissionStateCode
-> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfacePermissionStateCode_Revoked = NetworkInterfacePermissionStateCode' "revoked"

pattern NetworkInterfacePermissionStateCode_Revoking :: NetworkInterfacePermissionStateCode
pattern $bNetworkInterfacePermissionStateCode_Revoking :: NetworkInterfacePermissionStateCode
$mNetworkInterfacePermissionStateCode_Revoking :: forall {r}.
NetworkInterfacePermissionStateCode
-> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfacePermissionStateCode_Revoking = NetworkInterfacePermissionStateCode' "revoking"

{-# COMPLETE
  NetworkInterfacePermissionStateCode_Granted,
  NetworkInterfacePermissionStateCode_Pending,
  NetworkInterfacePermissionStateCode_Revoked,
  NetworkInterfacePermissionStateCode_Revoking,
  NetworkInterfacePermissionStateCode'
  #-}