{-# 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.PatchDeploymentStatus
-- 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.PatchDeploymentStatus
  ( PatchDeploymentStatus
      ( ..,
        PatchDeploymentStatus_APPROVED,
        PatchDeploymentStatus_EXPLICIT_APPROVED,
        PatchDeploymentStatus_EXPLICIT_REJECTED,
        PatchDeploymentStatus_PENDING_APPROVAL
      ),
  )
where

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

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

pattern PatchDeploymentStatus_APPROVED :: PatchDeploymentStatus
pattern $bPatchDeploymentStatus_APPROVED :: PatchDeploymentStatus
$mPatchDeploymentStatus_APPROVED :: forall r.
PatchDeploymentStatus -> (Void# -> r) -> (Void# -> r) -> r
PatchDeploymentStatus_APPROVED = PatchDeploymentStatus' "APPROVED"

pattern PatchDeploymentStatus_EXPLICIT_APPROVED :: PatchDeploymentStatus
pattern $bPatchDeploymentStatus_EXPLICIT_APPROVED :: PatchDeploymentStatus
$mPatchDeploymentStatus_EXPLICIT_APPROVED :: forall r.
PatchDeploymentStatus -> (Void# -> r) -> (Void# -> r) -> r
PatchDeploymentStatus_EXPLICIT_APPROVED = PatchDeploymentStatus' "EXPLICIT_APPROVED"

pattern PatchDeploymentStatus_EXPLICIT_REJECTED :: PatchDeploymentStatus
pattern $bPatchDeploymentStatus_EXPLICIT_REJECTED :: PatchDeploymentStatus
$mPatchDeploymentStatus_EXPLICIT_REJECTED :: forall r.
PatchDeploymentStatus -> (Void# -> r) -> (Void# -> r) -> r
PatchDeploymentStatus_EXPLICIT_REJECTED = PatchDeploymentStatus' "EXPLICIT_REJECTED"

pattern PatchDeploymentStatus_PENDING_APPROVAL :: PatchDeploymentStatus
pattern $bPatchDeploymentStatus_PENDING_APPROVAL :: PatchDeploymentStatus
$mPatchDeploymentStatus_PENDING_APPROVAL :: forall r.
PatchDeploymentStatus -> (Void# -> r) -> (Void# -> r) -> r
PatchDeploymentStatus_PENDING_APPROVAL = PatchDeploymentStatus' "PENDING_APPROVAL"

{-# COMPLETE
  PatchDeploymentStatus_APPROVED,
  PatchDeploymentStatus_EXPLICIT_APPROVED,
  PatchDeploymentStatus_EXPLICIT_REJECTED,
  PatchDeploymentStatus_PENDING_APPROVAL,
  PatchDeploymentStatus'
  #-}