{-# 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.CodeDeploy.Types.TriggerEventType
-- 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.CodeDeploy.Types.TriggerEventType
  ( TriggerEventType
      ( ..,
        TriggerEventType_DeploymentFailure,
        TriggerEventType_DeploymentReady,
        TriggerEventType_DeploymentRollback,
        TriggerEventType_DeploymentStart,
        TriggerEventType_DeploymentStop,
        TriggerEventType_DeploymentSuccess,
        TriggerEventType_InstanceFailure,
        TriggerEventType_InstanceReady,
        TriggerEventType_InstanceStart,
        TriggerEventType_InstanceSuccess
      ),
  )
where

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

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

pattern TriggerEventType_DeploymentFailure :: TriggerEventType
pattern $bTriggerEventType_DeploymentFailure :: TriggerEventType
$mTriggerEventType_DeploymentFailure :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_DeploymentFailure = TriggerEventType' "DeploymentFailure"

pattern TriggerEventType_DeploymentReady :: TriggerEventType
pattern $bTriggerEventType_DeploymentReady :: TriggerEventType
$mTriggerEventType_DeploymentReady :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_DeploymentReady = TriggerEventType' "DeploymentReady"

pattern TriggerEventType_DeploymentRollback :: TriggerEventType
pattern $bTriggerEventType_DeploymentRollback :: TriggerEventType
$mTriggerEventType_DeploymentRollback :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_DeploymentRollback = TriggerEventType' "DeploymentRollback"

pattern TriggerEventType_DeploymentStart :: TriggerEventType
pattern $bTriggerEventType_DeploymentStart :: TriggerEventType
$mTriggerEventType_DeploymentStart :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_DeploymentStart = TriggerEventType' "DeploymentStart"

pattern TriggerEventType_DeploymentStop :: TriggerEventType
pattern $bTriggerEventType_DeploymentStop :: TriggerEventType
$mTriggerEventType_DeploymentStop :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_DeploymentStop = TriggerEventType' "DeploymentStop"

pattern TriggerEventType_DeploymentSuccess :: TriggerEventType
pattern $bTriggerEventType_DeploymentSuccess :: TriggerEventType
$mTriggerEventType_DeploymentSuccess :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_DeploymentSuccess = TriggerEventType' "DeploymentSuccess"

pattern TriggerEventType_InstanceFailure :: TriggerEventType
pattern $bTriggerEventType_InstanceFailure :: TriggerEventType
$mTriggerEventType_InstanceFailure :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_InstanceFailure = TriggerEventType' "InstanceFailure"

pattern TriggerEventType_InstanceReady :: TriggerEventType
pattern $bTriggerEventType_InstanceReady :: TriggerEventType
$mTriggerEventType_InstanceReady :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_InstanceReady = TriggerEventType' "InstanceReady"

pattern TriggerEventType_InstanceStart :: TriggerEventType
pattern $bTriggerEventType_InstanceStart :: TriggerEventType
$mTriggerEventType_InstanceStart :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_InstanceStart = TriggerEventType' "InstanceStart"

pattern TriggerEventType_InstanceSuccess :: TriggerEventType
pattern $bTriggerEventType_InstanceSuccess :: TriggerEventType
$mTriggerEventType_InstanceSuccess :: forall r. TriggerEventType -> (Void# -> r) -> (Void# -> r) -> r
TriggerEventType_InstanceSuccess = TriggerEventType' "InstanceSuccess"

{-# COMPLETE
  TriggerEventType_DeploymentFailure,
  TriggerEventType_DeploymentReady,
  TriggerEventType_DeploymentRollback,
  TriggerEventType_DeploymentStart,
  TriggerEventType_DeploymentStop,
  TriggerEventType_DeploymentSuccess,
  TriggerEventType_InstanceFailure,
  TriggerEventType_InstanceReady,
  TriggerEventType_InstanceStart,
  TriggerEventType_InstanceSuccess,
  TriggerEventType'
  #-}