{-# 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.ComputeOptimizer.Types.LambdaFunctionMetricStatistic
-- 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.ComputeOptimizer.Types.LambdaFunctionMetricStatistic
  ( LambdaFunctionMetricStatistic
      ( ..,
        LambdaFunctionMetricStatistic_Average,
        LambdaFunctionMetricStatistic_Maximum
      ),
  )
where

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

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

pattern LambdaFunctionMetricStatistic_Average :: LambdaFunctionMetricStatistic
pattern $bLambdaFunctionMetricStatistic_Average :: LambdaFunctionMetricStatistic
$mLambdaFunctionMetricStatistic_Average :: forall r.
LambdaFunctionMetricStatistic -> (Void# -> r) -> (Void# -> r) -> r
LambdaFunctionMetricStatistic_Average = LambdaFunctionMetricStatistic' "Average"

pattern LambdaFunctionMetricStatistic_Maximum :: LambdaFunctionMetricStatistic
pattern $bLambdaFunctionMetricStatistic_Maximum :: LambdaFunctionMetricStatistic
$mLambdaFunctionMetricStatistic_Maximum :: forall r.
LambdaFunctionMetricStatistic -> (Void# -> r) -> (Void# -> r) -> r
LambdaFunctionMetricStatistic_Maximum = LambdaFunctionMetricStatistic' "Maximum"

{-# COMPLETE
  LambdaFunctionMetricStatistic_Average,
  LambdaFunctionMetricStatistic_Maximum,
  LambdaFunctionMetricStatistic'
  #-}