{-# 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.Inspector.Types.InspectorEvent
-- 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.Inspector.Types.InspectorEvent
  ( InspectorEvent
      ( ..,
        InspectorEvent_ASSESSMENT_RUN_COMPLETED,
        InspectorEvent_ASSESSMENT_RUN_STARTED,
        InspectorEvent_ASSESSMENT_RUN_STATE_CHANGED,
        InspectorEvent_FINDING_REPORTED,
        InspectorEvent_OTHER
      ),
  )
where

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

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

pattern InspectorEvent_ASSESSMENT_RUN_COMPLETED :: InspectorEvent
pattern $bInspectorEvent_ASSESSMENT_RUN_COMPLETED :: InspectorEvent
$mInspectorEvent_ASSESSMENT_RUN_COMPLETED :: forall r. InspectorEvent -> (Void# -> r) -> (Void# -> r) -> r
InspectorEvent_ASSESSMENT_RUN_COMPLETED = InspectorEvent' "ASSESSMENT_RUN_COMPLETED"

pattern InspectorEvent_ASSESSMENT_RUN_STARTED :: InspectorEvent
pattern $bInspectorEvent_ASSESSMENT_RUN_STARTED :: InspectorEvent
$mInspectorEvent_ASSESSMENT_RUN_STARTED :: forall r. InspectorEvent -> (Void# -> r) -> (Void# -> r) -> r
InspectorEvent_ASSESSMENT_RUN_STARTED = InspectorEvent' "ASSESSMENT_RUN_STARTED"

pattern InspectorEvent_ASSESSMENT_RUN_STATE_CHANGED :: InspectorEvent
pattern $bInspectorEvent_ASSESSMENT_RUN_STATE_CHANGED :: InspectorEvent
$mInspectorEvent_ASSESSMENT_RUN_STATE_CHANGED :: forall r. InspectorEvent -> (Void# -> r) -> (Void# -> r) -> r
InspectorEvent_ASSESSMENT_RUN_STATE_CHANGED = InspectorEvent' "ASSESSMENT_RUN_STATE_CHANGED"

pattern InspectorEvent_FINDING_REPORTED :: InspectorEvent
pattern $bInspectorEvent_FINDING_REPORTED :: InspectorEvent
$mInspectorEvent_FINDING_REPORTED :: forall r. InspectorEvent -> (Void# -> r) -> (Void# -> r) -> r
InspectorEvent_FINDING_REPORTED = InspectorEvent' "FINDING_REPORTED"

pattern InspectorEvent_OTHER :: InspectorEvent
pattern $bInspectorEvent_OTHER :: InspectorEvent
$mInspectorEvent_OTHER :: forall r. InspectorEvent -> (Void# -> r) -> (Void# -> r) -> r
InspectorEvent_OTHER = InspectorEvent' "OTHER"

{-# COMPLETE
  InspectorEvent_ASSESSMENT_RUN_COMPLETED,
  InspectorEvent_ASSESSMENT_RUN_STARTED,
  InspectorEvent_ASSESSMENT_RUN_STATE_CHANGED,
  InspectorEvent_FINDING_REPORTED,
  InspectorEvent_OTHER,
  InspectorEvent'
  #-}