{-# 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.AutoScaling.Types.InstanceMetadataHttpTokensState
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.AutoScaling.Types.InstanceMetadataHttpTokensState
  ( InstanceMetadataHttpTokensState
      ( ..,
        InstanceMetadataHttpTokensState_Optional,
        InstanceMetadataHttpTokensState_Required
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

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

pattern InstanceMetadataHttpTokensState_Optional :: InstanceMetadataHttpTokensState
pattern $bInstanceMetadataHttpTokensState_Optional :: InstanceMetadataHttpTokensState
$mInstanceMetadataHttpTokensState_Optional :: forall r.
InstanceMetadataHttpTokensState
-> (Void# -> r) -> (Void# -> r) -> r
InstanceMetadataHttpTokensState_Optional = InstanceMetadataHttpTokensState' "optional"

pattern InstanceMetadataHttpTokensState_Required :: InstanceMetadataHttpTokensState
pattern $bInstanceMetadataHttpTokensState_Required :: InstanceMetadataHttpTokensState
$mInstanceMetadataHttpTokensState_Required :: forall r.
InstanceMetadataHttpTokensState
-> (Void# -> r) -> (Void# -> r) -> r
InstanceMetadataHttpTokensState_Required = InstanceMetadataHttpTokensState' "required"

{-# COMPLETE
  InstanceMetadataHttpTokensState_Optional,
  InstanceMetadataHttpTokensState_Required,
  InstanceMetadataHttpTokensState'
  #-}