{-# 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.SSM.Types.AutomationExecutionFilterKey
-- 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.SSM.Types.AutomationExecutionFilterKey
  ( AutomationExecutionFilterKey
      ( ..,
        AutomationExecutionFilterKey_AutomationSubtype,
        AutomationExecutionFilterKey_AutomationType,
        AutomationExecutionFilterKey_CurrentAction,
        AutomationExecutionFilterKey_DocumentNamePrefix,
        AutomationExecutionFilterKey_ExecutionId,
        AutomationExecutionFilterKey_ExecutionStatus,
        AutomationExecutionFilterKey_OpsItemId,
        AutomationExecutionFilterKey_ParentExecutionId,
        AutomationExecutionFilterKey_StartTimeAfter,
        AutomationExecutionFilterKey_StartTimeBefore,
        AutomationExecutionFilterKey_TagKey,
        AutomationExecutionFilterKey_TargetResourceGroup
      ),
  )
where

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

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

pattern AutomationExecutionFilterKey_AutomationSubtype :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_AutomationSubtype :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_AutomationSubtype :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_AutomationSubtype = AutomationExecutionFilterKey' "AutomationSubtype"

pattern AutomationExecutionFilterKey_AutomationType :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_AutomationType :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_AutomationType :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_AutomationType = AutomationExecutionFilterKey' "AutomationType"

pattern AutomationExecutionFilterKey_CurrentAction :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_CurrentAction :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_CurrentAction :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_CurrentAction = AutomationExecutionFilterKey' "CurrentAction"

pattern AutomationExecutionFilterKey_DocumentNamePrefix :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_DocumentNamePrefix :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_DocumentNamePrefix :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_DocumentNamePrefix = AutomationExecutionFilterKey' "DocumentNamePrefix"

pattern AutomationExecutionFilterKey_ExecutionId :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_ExecutionId :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_ExecutionId :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_ExecutionId = AutomationExecutionFilterKey' "ExecutionId"

pattern AutomationExecutionFilterKey_ExecutionStatus :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_ExecutionStatus :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_ExecutionStatus :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_ExecutionStatus = AutomationExecutionFilterKey' "ExecutionStatus"

pattern AutomationExecutionFilterKey_OpsItemId :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_OpsItemId :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_OpsItemId :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_OpsItemId = AutomationExecutionFilterKey' "OpsItemId"

pattern AutomationExecutionFilterKey_ParentExecutionId :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_ParentExecutionId :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_ParentExecutionId :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_ParentExecutionId = AutomationExecutionFilterKey' "ParentExecutionId"

pattern AutomationExecutionFilterKey_StartTimeAfter :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_StartTimeAfter :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_StartTimeAfter :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_StartTimeAfter = AutomationExecutionFilterKey' "StartTimeAfter"

pattern AutomationExecutionFilterKey_StartTimeBefore :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_StartTimeBefore :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_StartTimeBefore :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_StartTimeBefore = AutomationExecutionFilterKey' "StartTimeBefore"

pattern AutomationExecutionFilterKey_TagKey :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_TagKey :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_TagKey :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_TagKey = AutomationExecutionFilterKey' "TagKey"

pattern AutomationExecutionFilterKey_TargetResourceGroup :: AutomationExecutionFilterKey
pattern $bAutomationExecutionFilterKey_TargetResourceGroup :: AutomationExecutionFilterKey
$mAutomationExecutionFilterKey_TargetResourceGroup :: forall r.
AutomationExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
AutomationExecutionFilterKey_TargetResourceGroup = AutomationExecutionFilterKey' "TargetResourceGroup"

{-# COMPLETE
  AutomationExecutionFilterKey_AutomationSubtype,
  AutomationExecutionFilterKey_AutomationType,
  AutomationExecutionFilterKey_CurrentAction,
  AutomationExecutionFilterKey_DocumentNamePrefix,
  AutomationExecutionFilterKey_ExecutionId,
  AutomationExecutionFilterKey_ExecutionStatus,
  AutomationExecutionFilterKey_OpsItemId,
  AutomationExecutionFilterKey_ParentExecutionId,
  AutomationExecutionFilterKey_StartTimeAfter,
  AutomationExecutionFilterKey_StartTimeBefore,
  AutomationExecutionFilterKey_TagKey,
  AutomationExecutionFilterKey_TargetResourceGroup,
  AutomationExecutionFilterKey'
  #-}