{-# 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.CommandPluginStatus
-- 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.CommandPluginStatus
  ( CommandPluginStatus
      ( ..,
        CommandPluginStatus_Cancelled,
        CommandPluginStatus_Failed,
        CommandPluginStatus_InProgress,
        CommandPluginStatus_Pending,
        CommandPluginStatus_Success,
        CommandPluginStatus_TimedOut
      ),
  )
where

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

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

pattern CommandPluginStatus_Cancelled :: CommandPluginStatus
pattern $bCommandPluginStatus_Cancelled :: CommandPluginStatus
$mCommandPluginStatus_Cancelled :: forall r. CommandPluginStatus -> (Void# -> r) -> (Void# -> r) -> r
CommandPluginStatus_Cancelled = CommandPluginStatus' "Cancelled"

pattern CommandPluginStatus_Failed :: CommandPluginStatus
pattern $bCommandPluginStatus_Failed :: CommandPluginStatus
$mCommandPluginStatus_Failed :: forall r. CommandPluginStatus -> (Void# -> r) -> (Void# -> r) -> r
CommandPluginStatus_Failed = CommandPluginStatus' "Failed"

pattern CommandPluginStatus_InProgress :: CommandPluginStatus
pattern $bCommandPluginStatus_InProgress :: CommandPluginStatus
$mCommandPluginStatus_InProgress :: forall r. CommandPluginStatus -> (Void# -> r) -> (Void# -> r) -> r
CommandPluginStatus_InProgress = CommandPluginStatus' "InProgress"

pattern CommandPluginStatus_Pending :: CommandPluginStatus
pattern $bCommandPluginStatus_Pending :: CommandPluginStatus
$mCommandPluginStatus_Pending :: forall r. CommandPluginStatus -> (Void# -> r) -> (Void# -> r) -> r
CommandPluginStatus_Pending = CommandPluginStatus' "Pending"

pattern CommandPluginStatus_Success :: CommandPluginStatus
pattern $bCommandPluginStatus_Success :: CommandPluginStatus
$mCommandPluginStatus_Success :: forall r. CommandPluginStatus -> (Void# -> r) -> (Void# -> r) -> r
CommandPluginStatus_Success = CommandPluginStatus' "Success"

pattern CommandPluginStatus_TimedOut :: CommandPluginStatus
pattern $bCommandPluginStatus_TimedOut :: CommandPluginStatus
$mCommandPluginStatus_TimedOut :: forall r. CommandPluginStatus -> (Void# -> r) -> (Void# -> r) -> r
CommandPluginStatus_TimedOut = CommandPluginStatus' "TimedOut"

{-# COMPLETE
  CommandPluginStatus_Cancelled,
  CommandPluginStatus_Failed,
  CommandPluginStatus_InProgress,
  CommandPluginStatus_Pending,
  CommandPluginStatus_Success,
  CommandPluginStatus_TimedOut,
  CommandPluginStatus'
  #-}