{-# 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.PatchComplianceDataState
-- 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.PatchComplianceDataState
  ( PatchComplianceDataState
      ( ..,
        PatchComplianceDataState_FAILED,
        PatchComplianceDataState_INSTALLED,
        PatchComplianceDataState_INSTALLED_OTHER,
        PatchComplianceDataState_INSTALLED_PENDING_REBOOT,
        PatchComplianceDataState_INSTALLED_REJECTED,
        PatchComplianceDataState_MISSING,
        PatchComplianceDataState_NOT_APPLICABLE
      ),
  )
where

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

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

pattern PatchComplianceDataState_FAILED :: PatchComplianceDataState
pattern $bPatchComplianceDataState_FAILED :: PatchComplianceDataState
$mPatchComplianceDataState_FAILED :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_FAILED = PatchComplianceDataState' "FAILED"

pattern PatchComplianceDataState_INSTALLED :: PatchComplianceDataState
pattern $bPatchComplianceDataState_INSTALLED :: PatchComplianceDataState
$mPatchComplianceDataState_INSTALLED :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_INSTALLED = PatchComplianceDataState' "INSTALLED"

pattern PatchComplianceDataState_INSTALLED_OTHER :: PatchComplianceDataState
pattern $bPatchComplianceDataState_INSTALLED_OTHER :: PatchComplianceDataState
$mPatchComplianceDataState_INSTALLED_OTHER :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_INSTALLED_OTHER = PatchComplianceDataState' "INSTALLED_OTHER"

pattern PatchComplianceDataState_INSTALLED_PENDING_REBOOT :: PatchComplianceDataState
pattern $bPatchComplianceDataState_INSTALLED_PENDING_REBOOT :: PatchComplianceDataState
$mPatchComplianceDataState_INSTALLED_PENDING_REBOOT :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_INSTALLED_PENDING_REBOOT = PatchComplianceDataState' "INSTALLED_PENDING_REBOOT"

pattern PatchComplianceDataState_INSTALLED_REJECTED :: PatchComplianceDataState
pattern $bPatchComplianceDataState_INSTALLED_REJECTED :: PatchComplianceDataState
$mPatchComplianceDataState_INSTALLED_REJECTED :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_INSTALLED_REJECTED = PatchComplianceDataState' "INSTALLED_REJECTED"

pattern PatchComplianceDataState_MISSING :: PatchComplianceDataState
pattern $bPatchComplianceDataState_MISSING :: PatchComplianceDataState
$mPatchComplianceDataState_MISSING :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_MISSING = PatchComplianceDataState' "MISSING"

pattern PatchComplianceDataState_NOT_APPLICABLE :: PatchComplianceDataState
pattern $bPatchComplianceDataState_NOT_APPLICABLE :: PatchComplianceDataState
$mPatchComplianceDataState_NOT_APPLICABLE :: forall r.
PatchComplianceDataState -> (Void# -> r) -> (Void# -> r) -> r
PatchComplianceDataState_NOT_APPLICABLE = PatchComplianceDataState' "NOT_APPLICABLE"

{-# COMPLETE
  PatchComplianceDataState_FAILED,
  PatchComplianceDataState_INSTALLED,
  PatchComplianceDataState_INSTALLED_OTHER,
  PatchComplianceDataState_INSTALLED_PENDING_REBOOT,
  PatchComplianceDataState_INSTALLED_REJECTED,
  PatchComplianceDataState_MISSING,
  PatchComplianceDataState_NOT_APPLICABLE,
  PatchComplianceDataState'
  #-}