{-# 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.CloudTrail.Types.LookupAttributeKey
-- 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.CloudTrail.Types.LookupAttributeKey
  ( LookupAttributeKey
      ( ..,
        LookupAttributeKey_AccessKeyId,
        LookupAttributeKey_EventId,
        LookupAttributeKey_EventName,
        LookupAttributeKey_EventSource,
        LookupAttributeKey_ReadOnly,
        LookupAttributeKey_ResourceName,
        LookupAttributeKey_ResourceType,
        LookupAttributeKey_Username
      ),
  )
where

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

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

pattern LookupAttributeKey_AccessKeyId :: LookupAttributeKey
pattern $bLookupAttributeKey_AccessKeyId :: LookupAttributeKey
$mLookupAttributeKey_AccessKeyId :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_AccessKeyId = LookupAttributeKey' "AccessKeyId"

pattern LookupAttributeKey_EventId :: LookupAttributeKey
pattern $bLookupAttributeKey_EventId :: LookupAttributeKey
$mLookupAttributeKey_EventId :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_EventId = LookupAttributeKey' "EventId"

pattern LookupAttributeKey_EventName :: LookupAttributeKey
pattern $bLookupAttributeKey_EventName :: LookupAttributeKey
$mLookupAttributeKey_EventName :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_EventName = LookupAttributeKey' "EventName"

pattern LookupAttributeKey_EventSource :: LookupAttributeKey
pattern $bLookupAttributeKey_EventSource :: LookupAttributeKey
$mLookupAttributeKey_EventSource :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_EventSource = LookupAttributeKey' "EventSource"

pattern LookupAttributeKey_ReadOnly :: LookupAttributeKey
pattern $bLookupAttributeKey_ReadOnly :: LookupAttributeKey
$mLookupAttributeKey_ReadOnly :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_ReadOnly = LookupAttributeKey' "ReadOnly"

pattern LookupAttributeKey_ResourceName :: LookupAttributeKey
pattern $bLookupAttributeKey_ResourceName :: LookupAttributeKey
$mLookupAttributeKey_ResourceName :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_ResourceName = LookupAttributeKey' "ResourceName"

pattern LookupAttributeKey_ResourceType :: LookupAttributeKey
pattern $bLookupAttributeKey_ResourceType :: LookupAttributeKey
$mLookupAttributeKey_ResourceType :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_ResourceType = LookupAttributeKey' "ResourceType"

pattern LookupAttributeKey_Username :: LookupAttributeKey
pattern $bLookupAttributeKey_Username :: LookupAttributeKey
$mLookupAttributeKey_Username :: forall {r}. LookupAttributeKey -> ((# #) -> r) -> ((# #) -> r) -> r
LookupAttributeKey_Username = LookupAttributeKey' "Username"

{-# COMPLETE
  LookupAttributeKey_AccessKeyId,
  LookupAttributeKey_EventId,
  LookupAttributeKey_EventName,
  LookupAttributeKey_EventSource,
  LookupAttributeKey_ReadOnly,
  LookupAttributeKey_ResourceName,
  LookupAttributeKey_ResourceType,
  LookupAttributeKey_Username,
  LookupAttributeKey'
  #-}