{-# 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.FindingCategory
-- 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.FindingCategory
  ( FindingCategory
      ( ..,
        FindingCategory_CLASSIFICATION,
        FindingCategory_POLICY
      ),
  )
where

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

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

pattern FindingCategory_CLASSIFICATION :: FindingCategory
pattern $bFindingCategory_CLASSIFICATION :: FindingCategory
$mFindingCategory_CLASSIFICATION :: forall r. FindingCategory -> (Void# -> r) -> (Void# -> r) -> r
FindingCategory_CLASSIFICATION = FindingCategory' "CLASSIFICATION"

pattern FindingCategory_POLICY :: FindingCategory
pattern $bFindingCategory_POLICY :: FindingCategory
$mFindingCategory_POLICY :: forall r. FindingCategory -> (Void# -> r) -> (Void# -> r) -> r
FindingCategory_POLICY = FindingCategory' "POLICY"

{-# COMPLETE
  FindingCategory_CLASSIFICATION,
  FindingCategory_POLICY,
  FindingCategory'
  #-}