{-# 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.CodeGuruProfiler.Types.MetadataField
-- 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.CodeGuruProfiler.Types.MetadataField
  ( MetadataField
      ( ..,
        MetadataField_AgentId,
        MetadataField_AwsRequestId,
        MetadataField_ComputePlatform,
        MetadataField_ExecutionEnvironment,
        MetadataField_LambdaFunctionArn,
        MetadataField_LambdaMemoryLimitInMB,
        MetadataField_LambdaPreviousExecutionTimeInMilliseconds,
        MetadataField_LambdaRemainingTimeInMilliseconds,
        MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds
      ),
  )
where

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

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

pattern MetadataField_AgentId :: MetadataField
pattern $bMetadataField_AgentId :: MetadataField
$mMetadataField_AgentId :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_AgentId = MetadataField' "AgentId"

pattern MetadataField_AwsRequestId :: MetadataField
pattern $bMetadataField_AwsRequestId :: MetadataField
$mMetadataField_AwsRequestId :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_AwsRequestId = MetadataField' "AwsRequestId"

pattern MetadataField_ComputePlatform :: MetadataField
pattern $bMetadataField_ComputePlatform :: MetadataField
$mMetadataField_ComputePlatform :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_ComputePlatform = MetadataField' "ComputePlatform"

pattern MetadataField_ExecutionEnvironment :: MetadataField
pattern $bMetadataField_ExecutionEnvironment :: MetadataField
$mMetadataField_ExecutionEnvironment :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_ExecutionEnvironment = MetadataField' "ExecutionEnvironment"

pattern MetadataField_LambdaFunctionArn :: MetadataField
pattern $bMetadataField_LambdaFunctionArn :: MetadataField
$mMetadataField_LambdaFunctionArn :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_LambdaFunctionArn = MetadataField' "LambdaFunctionArn"

pattern MetadataField_LambdaMemoryLimitInMB :: MetadataField
pattern $bMetadataField_LambdaMemoryLimitInMB :: MetadataField
$mMetadataField_LambdaMemoryLimitInMB :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_LambdaMemoryLimitInMB = MetadataField' "LambdaMemoryLimitInMB"

pattern MetadataField_LambdaPreviousExecutionTimeInMilliseconds :: MetadataField
pattern $bMetadataField_LambdaPreviousExecutionTimeInMilliseconds :: MetadataField
$mMetadataField_LambdaPreviousExecutionTimeInMilliseconds :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_LambdaPreviousExecutionTimeInMilliseconds = MetadataField' "LambdaPreviousExecutionTimeInMilliseconds"

pattern MetadataField_LambdaRemainingTimeInMilliseconds :: MetadataField
pattern $bMetadataField_LambdaRemainingTimeInMilliseconds :: MetadataField
$mMetadataField_LambdaRemainingTimeInMilliseconds :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_LambdaRemainingTimeInMilliseconds = MetadataField' "LambdaRemainingTimeInMilliseconds"

pattern MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds :: MetadataField
pattern $bMetadataField_LambdaTimeGapBetweenInvokesInMilliseconds :: MetadataField
$mMetadataField_LambdaTimeGapBetweenInvokesInMilliseconds :: forall r. MetadataField -> (Void# -> r) -> (Void# -> r) -> r
MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds = MetadataField' "LambdaTimeGapBetweenInvokesInMilliseconds"

{-# COMPLETE
  MetadataField_AgentId,
  MetadataField_AwsRequestId,
  MetadataField_ComputePlatform,
  MetadataField_ExecutionEnvironment,
  MetadataField_LambdaFunctionArn,
  MetadataField_LambdaMemoryLimitInMB,
  MetadataField_LambdaPreviousExecutionTimeInMilliseconds,
  MetadataField_LambdaRemainingTimeInMilliseconds,
  MetadataField_LambdaTimeGapBetweenInvokesInMilliseconds,
  MetadataField'
  #-}