{-# 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.StepExecutionFilterKey
-- 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.StepExecutionFilterKey
  ( StepExecutionFilterKey
      ( ..,
        StepExecutionFilterKey_Action,
        StepExecutionFilterKey_StartTimeAfter,
        StepExecutionFilterKey_StartTimeBefore,
        StepExecutionFilterKey_StepExecutionId,
        StepExecutionFilterKey_StepExecutionStatus,
        StepExecutionFilterKey_StepName
      ),
  )
where

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

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

pattern StepExecutionFilterKey_Action :: StepExecutionFilterKey
pattern $bStepExecutionFilterKey_Action :: StepExecutionFilterKey
$mStepExecutionFilterKey_Action :: forall r.
StepExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
StepExecutionFilterKey_Action = StepExecutionFilterKey' "Action"

pattern StepExecutionFilterKey_StartTimeAfter :: StepExecutionFilterKey
pattern $bStepExecutionFilterKey_StartTimeAfter :: StepExecutionFilterKey
$mStepExecutionFilterKey_StartTimeAfter :: forall r.
StepExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
StepExecutionFilterKey_StartTimeAfter = StepExecutionFilterKey' "StartTimeAfter"

pattern StepExecutionFilterKey_StartTimeBefore :: StepExecutionFilterKey
pattern $bStepExecutionFilterKey_StartTimeBefore :: StepExecutionFilterKey
$mStepExecutionFilterKey_StartTimeBefore :: forall r.
StepExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
StepExecutionFilterKey_StartTimeBefore = StepExecutionFilterKey' "StartTimeBefore"

pattern StepExecutionFilterKey_StepExecutionId :: StepExecutionFilterKey
pattern $bStepExecutionFilterKey_StepExecutionId :: StepExecutionFilterKey
$mStepExecutionFilterKey_StepExecutionId :: forall r.
StepExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
StepExecutionFilterKey_StepExecutionId = StepExecutionFilterKey' "StepExecutionId"

pattern StepExecutionFilterKey_StepExecutionStatus :: StepExecutionFilterKey
pattern $bStepExecutionFilterKey_StepExecutionStatus :: StepExecutionFilterKey
$mStepExecutionFilterKey_StepExecutionStatus :: forall r.
StepExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
StepExecutionFilterKey_StepExecutionStatus = StepExecutionFilterKey' "StepExecutionStatus"

pattern StepExecutionFilterKey_StepName :: StepExecutionFilterKey
pattern $bStepExecutionFilterKey_StepName :: StepExecutionFilterKey
$mStepExecutionFilterKey_StepName :: forall r.
StepExecutionFilterKey -> (Void# -> r) -> (Void# -> r) -> r
StepExecutionFilterKey_StepName = StepExecutionFilterKey' "StepName"

{-# COMPLETE
  StepExecutionFilterKey_Action,
  StepExecutionFilterKey_StartTimeAfter,
  StepExecutionFilterKey_StartTimeBefore,
  StepExecutionFilterKey_StepExecutionId,
  StepExecutionFilterKey_StepExecutionStatus,
  StepExecutionFilterKey_StepName,
  StepExecutionFilterKey'
  #-}