{-# 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.SWF.Types.ChildPolicy
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SWF.Types.ChildPolicy
  ( ChildPolicy
      ( ..,
        ChildPolicy_ABANDON,
        ChildPolicy_REQUEST_CANCEL,
        ChildPolicy_TERMINATE
      ),
  )
where

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

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

pattern ChildPolicy_ABANDON :: ChildPolicy
pattern $bChildPolicy_ABANDON :: ChildPolicy
$mChildPolicy_ABANDON :: forall {r}. ChildPolicy -> ((# #) -> r) -> ((# #) -> r) -> r
ChildPolicy_ABANDON = ChildPolicy' "ABANDON"

pattern ChildPolicy_REQUEST_CANCEL :: ChildPolicy
pattern $bChildPolicy_REQUEST_CANCEL :: ChildPolicy
$mChildPolicy_REQUEST_CANCEL :: forall {r}. ChildPolicy -> ((# #) -> r) -> ((# #) -> r) -> r
ChildPolicy_REQUEST_CANCEL = ChildPolicy' "REQUEST_CANCEL"

pattern ChildPolicy_TERMINATE :: ChildPolicy
pattern $bChildPolicy_TERMINATE :: ChildPolicy
$mChildPolicy_TERMINATE :: forall {r}. ChildPolicy -> ((# #) -> r) -> ((# #) -> r) -> r
ChildPolicy_TERMINATE = ChildPolicy' "TERMINATE"

{-# COMPLETE
  ChildPolicy_ABANDON,
  ChildPolicy_REQUEST_CANCEL,
  ChildPolicy_TERMINATE,
  ChildPolicy'
  #-}