{-# 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.CostExplorer.Types.FindingReasonCode
-- 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.CostExplorer.Types.FindingReasonCode
  ( FindingReasonCode
      ( ..,
        FindingReasonCode_CPU_OVER_PROVISIONED,
        FindingReasonCode_CPU_UNDER_PROVISIONED,
        FindingReasonCode_DISK_IOPS_OVER_PROVISIONED,
        FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED,
        FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED,
        FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED,
        FindingReasonCode_EBS_IOPS_OVER_PROVISIONED,
        FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED,
        FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED,
        FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED,
        FindingReasonCode_MEMORY_OVER_PROVISIONED,
        FindingReasonCode_MEMORY_UNDER_PROVISIONED,
        FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED,
        FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED,
        FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED,
        FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED
      ),
  )
where

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

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

pattern FindingReasonCode_CPU_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_CPU_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_CPU_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_CPU_OVER_PROVISIONED = FindingReasonCode' "CPU_OVER_PROVISIONED"

pattern FindingReasonCode_CPU_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_CPU_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_CPU_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_CPU_UNDER_PROVISIONED = FindingReasonCode' "CPU_UNDER_PROVISIONED"

pattern FindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_DISK_IOPS_OVER_PROVISIONED = FindingReasonCode' "DISK_IOPS_OVER_PROVISIONED"

pattern FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED = FindingReasonCode' "DISK_IOPS_UNDER_PROVISIONED"

pattern FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED = FindingReasonCode' "DISK_THROUGHPUT_OVER_PROVISIONED"

pattern FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED = FindingReasonCode' "DISK_THROUGHPUT_UNDER_PROVISIONED"

pattern FindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_EBS_IOPS_OVER_PROVISIONED = FindingReasonCode' "EBS_IOPS_OVER_PROVISIONED"

pattern FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED = FindingReasonCode' "EBS_IOPS_UNDER_PROVISIONED"

pattern FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED = FindingReasonCode' "EBS_THROUGHPUT_OVER_PROVISIONED"

pattern FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED = FindingReasonCode' "EBS_THROUGHPUT_UNDER_PROVISIONED"

pattern FindingReasonCode_MEMORY_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_MEMORY_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_MEMORY_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_MEMORY_OVER_PROVISIONED = FindingReasonCode' "MEMORY_OVER_PROVISIONED"

pattern FindingReasonCode_MEMORY_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_MEMORY_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_MEMORY_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_MEMORY_UNDER_PROVISIONED = FindingReasonCode' "MEMORY_UNDER_PROVISIONED"

pattern FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED = FindingReasonCode' "NETWORK_BANDWIDTH_OVER_PROVISIONED"

pattern FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED = FindingReasonCode' "NETWORK_BANDWIDTH_UNDER_PROVISIONED"

pattern FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED = FindingReasonCode' "NETWORK_PPS_OVER_PROVISIONED"

pattern FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: FindingReasonCode
pattern $bFindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: FindingReasonCode
$mFindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: forall r. FindingReasonCode -> (Void# -> r) -> (Void# -> r) -> r
FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED = FindingReasonCode' "NETWORK_PPS_UNDER_PROVISIONED"

{-# COMPLETE
  FindingReasonCode_CPU_OVER_PROVISIONED,
  FindingReasonCode_CPU_UNDER_PROVISIONED,
  FindingReasonCode_DISK_IOPS_OVER_PROVISIONED,
  FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED,
  FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED,
  FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED,
  FindingReasonCode_EBS_IOPS_OVER_PROVISIONED,
  FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED,
  FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED,
  FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED,
  FindingReasonCode_MEMORY_OVER_PROVISIONED,
  FindingReasonCode_MEMORY_UNDER_PROVISIONED,
  FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED,
  FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED,
  FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED,
  FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED,
  FindingReasonCode'
  #-}