{-# 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.GreengrassV2.Types.IoTJobExecutionFailureType
-- 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.GreengrassV2.Types.IoTJobExecutionFailureType
  ( IoTJobExecutionFailureType
      ( ..,
        IoTJobExecutionFailureType_ALL,
        IoTJobExecutionFailureType_FAILED,
        IoTJobExecutionFailureType_REJECTED,
        IoTJobExecutionFailureType_TIMED_OUT
      ),
  )
where

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

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

pattern IoTJobExecutionFailureType_ALL :: IoTJobExecutionFailureType
pattern $bIoTJobExecutionFailureType_ALL :: IoTJobExecutionFailureType
$mIoTJobExecutionFailureType_ALL :: forall r.
IoTJobExecutionFailureType -> (Void# -> r) -> (Void# -> r) -> r
IoTJobExecutionFailureType_ALL = IoTJobExecutionFailureType' "ALL"

pattern IoTJobExecutionFailureType_FAILED :: IoTJobExecutionFailureType
pattern $bIoTJobExecutionFailureType_FAILED :: IoTJobExecutionFailureType
$mIoTJobExecutionFailureType_FAILED :: forall r.
IoTJobExecutionFailureType -> (Void# -> r) -> (Void# -> r) -> r
IoTJobExecutionFailureType_FAILED = IoTJobExecutionFailureType' "FAILED"

pattern IoTJobExecutionFailureType_REJECTED :: IoTJobExecutionFailureType
pattern $bIoTJobExecutionFailureType_REJECTED :: IoTJobExecutionFailureType
$mIoTJobExecutionFailureType_REJECTED :: forall r.
IoTJobExecutionFailureType -> (Void# -> r) -> (Void# -> r) -> r
IoTJobExecutionFailureType_REJECTED = IoTJobExecutionFailureType' "REJECTED"

pattern IoTJobExecutionFailureType_TIMED_OUT :: IoTJobExecutionFailureType
pattern $bIoTJobExecutionFailureType_TIMED_OUT :: IoTJobExecutionFailureType
$mIoTJobExecutionFailureType_TIMED_OUT :: forall r.
IoTJobExecutionFailureType -> (Void# -> r) -> (Void# -> r) -> r
IoTJobExecutionFailureType_TIMED_OUT = IoTJobExecutionFailureType' "TIMED_OUT"

{-# COMPLETE
  IoTJobExecutionFailureType_ALL,
  IoTJobExecutionFailureType_FAILED,
  IoTJobExecutionFailureType_REJECTED,
  IoTJobExecutionFailureType_TIMED_OUT,
  IoTJobExecutionFailureType'
  #-}