{-# 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.SignalType
-- 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.SignalType
  ( SignalType
      ( ..,
        SignalType_Approve,
        SignalType_Reject,
        SignalType_Resume,
        SignalType_StartStep,
        SignalType_StopStep
      ),
  )
where

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

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

pattern SignalType_Approve :: SignalType
pattern $bSignalType_Approve :: SignalType
$mSignalType_Approve :: forall r. SignalType -> (Void# -> r) -> (Void# -> r) -> r
SignalType_Approve = SignalType' "Approve"

pattern SignalType_Reject :: SignalType
pattern $bSignalType_Reject :: SignalType
$mSignalType_Reject :: forall r. SignalType -> (Void# -> r) -> (Void# -> r) -> r
SignalType_Reject = SignalType' "Reject"

pattern SignalType_Resume :: SignalType
pattern $bSignalType_Resume :: SignalType
$mSignalType_Resume :: forall r. SignalType -> (Void# -> r) -> (Void# -> r) -> r
SignalType_Resume = SignalType' "Resume"

pattern SignalType_StartStep :: SignalType
pattern $bSignalType_StartStep :: SignalType
$mSignalType_StartStep :: forall r. SignalType -> (Void# -> r) -> (Void# -> r) -> r
SignalType_StartStep = SignalType' "StartStep"

pattern SignalType_StopStep :: SignalType
pattern $bSignalType_StopStep :: SignalType
$mSignalType_StopStep :: forall r. SignalType -> (Void# -> r) -> (Void# -> r) -> r
SignalType_StopStep = SignalType' "StopStep"

{-# COMPLETE
  SignalType_Approve,
  SignalType_Reject,
  SignalType_Resume,
  SignalType_StartStep,
  SignalType_StopStep,
  SignalType'
  #-}