{-# 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.NetworkInterfaceAttribute
-- 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.NetworkInterfaceAttribute
  ( NetworkInterfaceAttribute
      ( ..,
        NetworkInterfaceAttribute_Attachment,
        NetworkInterfaceAttribute_Description,
        NetworkInterfaceAttribute_GroupSet,
        NetworkInterfaceAttribute_SourceDestCheck
      ),
  )
where

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

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

pattern NetworkInterfaceAttribute_Attachment :: NetworkInterfaceAttribute
pattern $bNetworkInterfaceAttribute_Attachment :: NetworkInterfaceAttribute
$mNetworkInterfaceAttribute_Attachment :: forall {r}.
NetworkInterfaceAttribute -> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfaceAttribute_Attachment = NetworkInterfaceAttribute' "attachment"

pattern NetworkInterfaceAttribute_Description :: NetworkInterfaceAttribute
pattern $bNetworkInterfaceAttribute_Description :: NetworkInterfaceAttribute
$mNetworkInterfaceAttribute_Description :: forall {r}.
NetworkInterfaceAttribute -> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfaceAttribute_Description = NetworkInterfaceAttribute' "description"

pattern NetworkInterfaceAttribute_GroupSet :: NetworkInterfaceAttribute
pattern $bNetworkInterfaceAttribute_GroupSet :: NetworkInterfaceAttribute
$mNetworkInterfaceAttribute_GroupSet :: forall {r}.
NetworkInterfaceAttribute -> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfaceAttribute_GroupSet = NetworkInterfaceAttribute' "groupSet"

pattern NetworkInterfaceAttribute_SourceDestCheck :: NetworkInterfaceAttribute
pattern $bNetworkInterfaceAttribute_SourceDestCheck :: NetworkInterfaceAttribute
$mNetworkInterfaceAttribute_SourceDestCheck :: forall {r}.
NetworkInterfaceAttribute -> ((# #) -> r) -> ((# #) -> r) -> r
NetworkInterfaceAttribute_SourceDestCheck = NetworkInterfaceAttribute' "sourceDestCheck"

{-# COMPLETE
  NetworkInterfaceAttribute_Attachment,
  NetworkInterfaceAttribute_Description,
  NetworkInterfaceAttribute_GroupSet,
  NetworkInterfaceAttribute_SourceDestCheck,
  NetworkInterfaceAttribute'
  #-}