{-# 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.MacieV2.Types.SeverityDescription
-- 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.MacieV2.Types.SeverityDescription
  ( SeverityDescription
      ( ..,
        SeverityDescription_High,
        SeverityDescription_Low,
        SeverityDescription_Medium
      ),
  )
where

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

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

pattern SeverityDescription_High :: SeverityDescription
pattern $bSeverityDescription_High :: SeverityDescription
$mSeverityDescription_High :: forall r. SeverityDescription -> (Void# -> r) -> (Void# -> r) -> r
SeverityDescription_High = SeverityDescription' "High"

pattern SeverityDescription_Low :: SeverityDescription
pattern $bSeverityDescription_Low :: SeverityDescription
$mSeverityDescription_Low :: forall r. SeverityDescription -> (Void# -> r) -> (Void# -> r) -> r
SeverityDescription_Low = SeverityDescription' "Low"

pattern SeverityDescription_Medium :: SeverityDescription
pattern $bSeverityDescription_Medium :: SeverityDescription
$mSeverityDescription_Medium :: forall r. SeverityDescription -> (Void# -> r) -> (Void# -> r) -> r
SeverityDescription_Medium = SeverityDescription' "Medium"

{-# COMPLETE
  SeverityDescription_High,
  SeverityDescription_Low,
  SeverityDescription_Medium,
  SeverityDescription'
  #-}