{-# 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.ThreatIntelIndicatorCategory
-- 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.ThreatIntelIndicatorCategory
  ( ThreatIntelIndicatorCategory
      ( ..,
        ThreatIntelIndicatorCategory_BACKDOOR,
        ThreatIntelIndicatorCategory_CARD_STEALER,
        ThreatIntelIndicatorCategory_COMMAND_AND_CONTROL,
        ThreatIntelIndicatorCategory_DROP_SITE,
        ThreatIntelIndicatorCategory_EXPLOIT_SITE,
        ThreatIntelIndicatorCategory_KEYLOGGER
      ),
  )
where

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

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

pattern ThreatIntelIndicatorCategory_BACKDOOR :: ThreatIntelIndicatorCategory
pattern $bThreatIntelIndicatorCategory_BACKDOOR :: ThreatIntelIndicatorCategory
$mThreatIntelIndicatorCategory_BACKDOOR :: forall r.
ThreatIntelIndicatorCategory -> (Void# -> r) -> (Void# -> r) -> r
ThreatIntelIndicatorCategory_BACKDOOR = ThreatIntelIndicatorCategory' "BACKDOOR"

pattern ThreatIntelIndicatorCategory_CARD_STEALER :: ThreatIntelIndicatorCategory
pattern $bThreatIntelIndicatorCategory_CARD_STEALER :: ThreatIntelIndicatorCategory
$mThreatIntelIndicatorCategory_CARD_STEALER :: forall r.
ThreatIntelIndicatorCategory -> (Void# -> r) -> (Void# -> r) -> r
ThreatIntelIndicatorCategory_CARD_STEALER = ThreatIntelIndicatorCategory' "CARD_STEALER"

pattern ThreatIntelIndicatorCategory_COMMAND_AND_CONTROL :: ThreatIntelIndicatorCategory
pattern $bThreatIntelIndicatorCategory_COMMAND_AND_CONTROL :: ThreatIntelIndicatorCategory
$mThreatIntelIndicatorCategory_COMMAND_AND_CONTROL :: forall r.
ThreatIntelIndicatorCategory -> (Void# -> r) -> (Void# -> r) -> r
ThreatIntelIndicatorCategory_COMMAND_AND_CONTROL = ThreatIntelIndicatorCategory' "COMMAND_AND_CONTROL"

pattern ThreatIntelIndicatorCategory_DROP_SITE :: ThreatIntelIndicatorCategory
pattern $bThreatIntelIndicatorCategory_DROP_SITE :: ThreatIntelIndicatorCategory
$mThreatIntelIndicatorCategory_DROP_SITE :: forall r.
ThreatIntelIndicatorCategory -> (Void# -> r) -> (Void# -> r) -> r
ThreatIntelIndicatorCategory_DROP_SITE = ThreatIntelIndicatorCategory' "DROP_SITE"

pattern ThreatIntelIndicatorCategory_EXPLOIT_SITE :: ThreatIntelIndicatorCategory
pattern $bThreatIntelIndicatorCategory_EXPLOIT_SITE :: ThreatIntelIndicatorCategory
$mThreatIntelIndicatorCategory_EXPLOIT_SITE :: forall r.
ThreatIntelIndicatorCategory -> (Void# -> r) -> (Void# -> r) -> r
ThreatIntelIndicatorCategory_EXPLOIT_SITE = ThreatIntelIndicatorCategory' "EXPLOIT_SITE"

pattern ThreatIntelIndicatorCategory_KEYLOGGER :: ThreatIntelIndicatorCategory
pattern $bThreatIntelIndicatorCategory_KEYLOGGER :: ThreatIntelIndicatorCategory
$mThreatIntelIndicatorCategory_KEYLOGGER :: forall r.
ThreatIntelIndicatorCategory -> (Void# -> r) -> (Void# -> r) -> r
ThreatIntelIndicatorCategory_KEYLOGGER = ThreatIntelIndicatorCategory' "KEYLOGGER"

{-# COMPLETE
  ThreatIntelIndicatorCategory_BACKDOOR,
  ThreatIntelIndicatorCategory_CARD_STEALER,
  ThreatIntelIndicatorCategory_COMMAND_AND_CONTROL,
  ThreatIntelIndicatorCategory_DROP_SITE,
  ThreatIntelIndicatorCategory_EXPLOIT_SITE,
  ThreatIntelIndicatorCategory_KEYLOGGER,
  ThreatIntelIndicatorCategory'
  #-}