{-# 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.PatchProperty
-- 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.PatchProperty
  ( PatchProperty
      ( ..,
        PatchProperty_CLASSIFICATION,
        PatchProperty_MSRC_SEVERITY,
        PatchProperty_PRIORITY,
        PatchProperty_PRODUCT,
        PatchProperty_PRODUCT_FAMILY,
        PatchProperty_SEVERITY
      ),
  )
where

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

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

pattern PatchProperty_CLASSIFICATION :: PatchProperty
pattern $bPatchProperty_CLASSIFICATION :: PatchProperty
$mPatchProperty_CLASSIFICATION :: forall r. PatchProperty -> (Void# -> r) -> (Void# -> r) -> r
PatchProperty_CLASSIFICATION = PatchProperty' "CLASSIFICATION"

pattern PatchProperty_MSRC_SEVERITY :: PatchProperty
pattern $bPatchProperty_MSRC_SEVERITY :: PatchProperty
$mPatchProperty_MSRC_SEVERITY :: forall r. PatchProperty -> (Void# -> r) -> (Void# -> r) -> r
PatchProperty_MSRC_SEVERITY = PatchProperty' "MSRC_SEVERITY"

pattern PatchProperty_PRIORITY :: PatchProperty
pattern $bPatchProperty_PRIORITY :: PatchProperty
$mPatchProperty_PRIORITY :: forall r. PatchProperty -> (Void# -> r) -> (Void# -> r) -> r
PatchProperty_PRIORITY = PatchProperty' "PRIORITY"

pattern PatchProperty_PRODUCT :: PatchProperty
pattern $bPatchProperty_PRODUCT :: PatchProperty
$mPatchProperty_PRODUCT :: forall r. PatchProperty -> (Void# -> r) -> (Void# -> r) -> r
PatchProperty_PRODUCT = PatchProperty' "PRODUCT"

pattern PatchProperty_PRODUCT_FAMILY :: PatchProperty
pattern $bPatchProperty_PRODUCT_FAMILY :: PatchProperty
$mPatchProperty_PRODUCT_FAMILY :: forall r. PatchProperty -> (Void# -> r) -> (Void# -> r) -> r
PatchProperty_PRODUCT_FAMILY = PatchProperty' "PRODUCT_FAMILY"

pattern PatchProperty_SEVERITY :: PatchProperty
pattern $bPatchProperty_SEVERITY :: PatchProperty
$mPatchProperty_SEVERITY :: forall r. PatchProperty -> (Void# -> r) -> (Void# -> r) -> r
PatchProperty_SEVERITY = PatchProperty' "SEVERITY"

{-# COMPLETE
  PatchProperty_CLASSIFICATION,
  PatchProperty_MSRC_SEVERITY,
  PatchProperty_PRIORITY,
  PatchProperty_PRODUCT,
  PatchProperty_PRODUCT_FAMILY,
  PatchProperty_SEVERITY,
  PatchProperty'
  #-}