{-# 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.IoTThingsGraph.Types.FlowExecutionEventType
-- 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.IoTThingsGraph.Types.FlowExecutionEventType
  ( FlowExecutionEventType
      ( ..,
        FlowExecutionEventType_ACKNOWLEDGE_TASK_MESSAGE,
        FlowExecutionEventType_ACTIVITY_FAILED,
        FlowExecutionEventType_ACTIVITY_SCHEDULED,
        FlowExecutionEventType_ACTIVITY_STARTED,
        FlowExecutionEventType_ACTIVITY_SUCCEEDED,
        FlowExecutionEventType_EXECUTION_ABORTED,
        FlowExecutionEventType_EXECUTION_FAILED,
        FlowExecutionEventType_EXECUTION_STARTED,
        FlowExecutionEventType_EXECUTION_SUCCEEDED,
        FlowExecutionEventType_SCHEDULE_NEXT_READY_STEPS_TASK,
        FlowExecutionEventType_START_FLOW_EXECUTION_TASK,
        FlowExecutionEventType_STEP_FAILED,
        FlowExecutionEventType_STEP_STARTED,
        FlowExecutionEventType_STEP_SUCCEEDED,
        FlowExecutionEventType_THING_ACTION_TASK,
        FlowExecutionEventType_THING_ACTION_TASK_FAILED,
        FlowExecutionEventType_THING_ACTION_TASK_SUCCEEDED
      ),
  )
where

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

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

pattern FlowExecutionEventType_ACKNOWLEDGE_TASK_MESSAGE :: FlowExecutionEventType
pattern $bFlowExecutionEventType_ACKNOWLEDGE_TASK_MESSAGE :: FlowExecutionEventType
$mFlowExecutionEventType_ACKNOWLEDGE_TASK_MESSAGE :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_ACKNOWLEDGE_TASK_MESSAGE = FlowExecutionEventType' "ACKNOWLEDGE_TASK_MESSAGE"

pattern FlowExecutionEventType_ACTIVITY_FAILED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_ACTIVITY_FAILED :: FlowExecutionEventType
$mFlowExecutionEventType_ACTIVITY_FAILED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_ACTIVITY_FAILED = FlowExecutionEventType' "ACTIVITY_FAILED"

pattern FlowExecutionEventType_ACTIVITY_SCHEDULED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_ACTIVITY_SCHEDULED :: FlowExecutionEventType
$mFlowExecutionEventType_ACTIVITY_SCHEDULED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_ACTIVITY_SCHEDULED = FlowExecutionEventType' "ACTIVITY_SCHEDULED"

pattern FlowExecutionEventType_ACTIVITY_STARTED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_ACTIVITY_STARTED :: FlowExecutionEventType
$mFlowExecutionEventType_ACTIVITY_STARTED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_ACTIVITY_STARTED = FlowExecutionEventType' "ACTIVITY_STARTED"

pattern FlowExecutionEventType_ACTIVITY_SUCCEEDED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_ACTIVITY_SUCCEEDED :: FlowExecutionEventType
$mFlowExecutionEventType_ACTIVITY_SUCCEEDED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_ACTIVITY_SUCCEEDED = FlowExecutionEventType' "ACTIVITY_SUCCEEDED"

pattern FlowExecutionEventType_EXECUTION_ABORTED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_EXECUTION_ABORTED :: FlowExecutionEventType
$mFlowExecutionEventType_EXECUTION_ABORTED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_EXECUTION_ABORTED = FlowExecutionEventType' "EXECUTION_ABORTED"

pattern FlowExecutionEventType_EXECUTION_FAILED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_EXECUTION_FAILED :: FlowExecutionEventType
$mFlowExecutionEventType_EXECUTION_FAILED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_EXECUTION_FAILED = FlowExecutionEventType' "EXECUTION_FAILED"

pattern FlowExecutionEventType_EXECUTION_STARTED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_EXECUTION_STARTED :: FlowExecutionEventType
$mFlowExecutionEventType_EXECUTION_STARTED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_EXECUTION_STARTED = FlowExecutionEventType' "EXECUTION_STARTED"

pattern FlowExecutionEventType_EXECUTION_SUCCEEDED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_EXECUTION_SUCCEEDED :: FlowExecutionEventType
$mFlowExecutionEventType_EXECUTION_SUCCEEDED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_EXECUTION_SUCCEEDED = FlowExecutionEventType' "EXECUTION_SUCCEEDED"

pattern FlowExecutionEventType_SCHEDULE_NEXT_READY_STEPS_TASK :: FlowExecutionEventType
pattern $bFlowExecutionEventType_SCHEDULE_NEXT_READY_STEPS_TASK :: FlowExecutionEventType
$mFlowExecutionEventType_SCHEDULE_NEXT_READY_STEPS_TASK :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_SCHEDULE_NEXT_READY_STEPS_TASK = FlowExecutionEventType' "SCHEDULE_NEXT_READY_STEPS_TASK"

pattern FlowExecutionEventType_START_FLOW_EXECUTION_TASK :: FlowExecutionEventType
pattern $bFlowExecutionEventType_START_FLOW_EXECUTION_TASK :: FlowExecutionEventType
$mFlowExecutionEventType_START_FLOW_EXECUTION_TASK :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_START_FLOW_EXECUTION_TASK = FlowExecutionEventType' "START_FLOW_EXECUTION_TASK"

pattern FlowExecutionEventType_STEP_FAILED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_STEP_FAILED :: FlowExecutionEventType
$mFlowExecutionEventType_STEP_FAILED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_STEP_FAILED = FlowExecutionEventType' "STEP_FAILED"

pattern FlowExecutionEventType_STEP_STARTED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_STEP_STARTED :: FlowExecutionEventType
$mFlowExecutionEventType_STEP_STARTED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_STEP_STARTED = FlowExecutionEventType' "STEP_STARTED"

pattern FlowExecutionEventType_STEP_SUCCEEDED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_STEP_SUCCEEDED :: FlowExecutionEventType
$mFlowExecutionEventType_STEP_SUCCEEDED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_STEP_SUCCEEDED = FlowExecutionEventType' "STEP_SUCCEEDED"

pattern FlowExecutionEventType_THING_ACTION_TASK :: FlowExecutionEventType
pattern $bFlowExecutionEventType_THING_ACTION_TASK :: FlowExecutionEventType
$mFlowExecutionEventType_THING_ACTION_TASK :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_THING_ACTION_TASK = FlowExecutionEventType' "THING_ACTION_TASK"

pattern FlowExecutionEventType_THING_ACTION_TASK_FAILED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_THING_ACTION_TASK_FAILED :: FlowExecutionEventType
$mFlowExecutionEventType_THING_ACTION_TASK_FAILED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_THING_ACTION_TASK_FAILED = FlowExecutionEventType' "THING_ACTION_TASK_FAILED"

pattern FlowExecutionEventType_THING_ACTION_TASK_SUCCEEDED :: FlowExecutionEventType
pattern $bFlowExecutionEventType_THING_ACTION_TASK_SUCCEEDED :: FlowExecutionEventType
$mFlowExecutionEventType_THING_ACTION_TASK_SUCCEEDED :: forall r.
FlowExecutionEventType -> (Void# -> r) -> (Void# -> r) -> r
FlowExecutionEventType_THING_ACTION_TASK_SUCCEEDED = FlowExecutionEventType' "THING_ACTION_TASK_SUCCEEDED"

{-# COMPLETE
  FlowExecutionEventType_ACKNOWLEDGE_TASK_MESSAGE,
  FlowExecutionEventType_ACTIVITY_FAILED,
  FlowExecutionEventType_ACTIVITY_SCHEDULED,
  FlowExecutionEventType_ACTIVITY_STARTED,
  FlowExecutionEventType_ACTIVITY_SUCCEEDED,
  FlowExecutionEventType_EXECUTION_ABORTED,
  FlowExecutionEventType_EXECUTION_FAILED,
  FlowExecutionEventType_EXECUTION_STARTED,
  FlowExecutionEventType_EXECUTION_SUCCEEDED,
  FlowExecutionEventType_SCHEDULE_NEXT_READY_STEPS_TASK,
  FlowExecutionEventType_START_FLOW_EXECUTION_TASK,
  FlowExecutionEventType_STEP_FAILED,
  FlowExecutionEventType_STEP_STARTED,
  FlowExecutionEventType_STEP_SUCCEEDED,
  FlowExecutionEventType_THING_ACTION_TASK,
  FlowExecutionEventType_THING_ACTION_TASK_FAILED,
  FlowExecutionEventType_THING_ACTION_TASK_SUCCEEDED,
  FlowExecutionEventType'
  #-}