{-# 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.DevOpsGuru.Types.CloudWatchMetricsStat
-- 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.DevOpsGuru.Types.CloudWatchMetricsStat
  ( CloudWatchMetricsStat
      ( ..,
        CloudWatchMetricsStat_Average,
        CloudWatchMetricsStat_Maximum,
        CloudWatchMetricsStat_Minimum,
        CloudWatchMetricsStat_P50,
        CloudWatchMetricsStat_P90,
        CloudWatchMetricsStat_P99,
        CloudWatchMetricsStat_SampleCount,
        CloudWatchMetricsStat_Sum
      ),
  )
where

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

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

pattern CloudWatchMetricsStat_Average :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_Average :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_Average :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_Average = CloudWatchMetricsStat' "Average"

pattern CloudWatchMetricsStat_Maximum :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_Maximum :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_Maximum :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_Maximum = CloudWatchMetricsStat' "Maximum"

pattern CloudWatchMetricsStat_Minimum :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_Minimum :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_Minimum :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_Minimum = CloudWatchMetricsStat' "Minimum"

pattern CloudWatchMetricsStat_P50 :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_P50 :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_P50 :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_P50 = CloudWatchMetricsStat' "p50"

pattern CloudWatchMetricsStat_P90 :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_P90 :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_P90 :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_P90 = CloudWatchMetricsStat' "p90"

pattern CloudWatchMetricsStat_P99 :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_P99 :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_P99 :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_P99 = CloudWatchMetricsStat' "p99"

pattern CloudWatchMetricsStat_SampleCount :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_SampleCount :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_SampleCount :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_SampleCount = CloudWatchMetricsStat' "SampleCount"

pattern CloudWatchMetricsStat_Sum :: CloudWatchMetricsStat
pattern $bCloudWatchMetricsStat_Sum :: CloudWatchMetricsStat
$mCloudWatchMetricsStat_Sum :: forall r.
CloudWatchMetricsStat -> (Void# -> r) -> (Void# -> r) -> r
CloudWatchMetricsStat_Sum = CloudWatchMetricsStat' "Sum"

{-# COMPLETE
  CloudWatchMetricsStat_Average,
  CloudWatchMetricsStat_Maximum,
  CloudWatchMetricsStat_Minimum,
  CloudWatchMetricsStat_P50,
  CloudWatchMetricsStat_P90,
  CloudWatchMetricsStat_P99,
  CloudWatchMetricsStat_SampleCount,
  CloudWatchMetricsStat_Sum,
  CloudWatchMetricsStat'
  #-}