{-# 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.SecurityHub.Types.SeverityRating
-- 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.SecurityHub.Types.SeverityRating
  ( SeverityRating
      ( ..,
        SeverityRating_CRITICAL,
        SeverityRating_HIGH,
        SeverityRating_LOW,
        SeverityRating_MEDIUM
      ),
  )
where

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

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

pattern SeverityRating_CRITICAL :: SeverityRating
pattern $bSeverityRating_CRITICAL :: SeverityRating
$mSeverityRating_CRITICAL :: forall r. SeverityRating -> (Void# -> r) -> (Void# -> r) -> r
SeverityRating_CRITICAL = SeverityRating' "CRITICAL"

pattern SeverityRating_HIGH :: SeverityRating
pattern $bSeverityRating_HIGH :: SeverityRating
$mSeverityRating_HIGH :: forall r. SeverityRating -> (Void# -> r) -> (Void# -> r) -> r
SeverityRating_HIGH = SeverityRating' "HIGH"

pattern SeverityRating_LOW :: SeverityRating
pattern $bSeverityRating_LOW :: SeverityRating
$mSeverityRating_LOW :: forall r. SeverityRating -> (Void# -> r) -> (Void# -> r) -> r
SeverityRating_LOW = SeverityRating' "LOW"

pattern SeverityRating_MEDIUM :: SeverityRating
pattern $bSeverityRating_MEDIUM :: SeverityRating
$mSeverityRating_MEDIUM :: forall r. SeverityRating -> (Void# -> r) -> (Void# -> r) -> r
SeverityRating_MEDIUM = SeverityRating' "MEDIUM"

{-# COMPLETE
  SeverityRating_CRITICAL,
  SeverityRating_HIGH,
  SeverityRating_LOW,
  SeverityRating_MEDIUM,
  SeverityRating'
  #-}