{-# 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.AssociationStatusName
-- 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.AssociationStatusName
  ( AssociationStatusName
      ( ..,
        AssociationStatusName_Failed,
        AssociationStatusName_Pending,
        AssociationStatusName_Success
      ),
  )
where

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

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

pattern AssociationStatusName_Failed :: AssociationStatusName
pattern $bAssociationStatusName_Failed :: AssociationStatusName
$mAssociationStatusName_Failed :: forall r.
AssociationStatusName -> (Void# -> r) -> (Void# -> r) -> r
AssociationStatusName_Failed = AssociationStatusName' "Failed"

pattern AssociationStatusName_Pending :: AssociationStatusName
pattern $bAssociationStatusName_Pending :: AssociationStatusName
$mAssociationStatusName_Pending :: forall r.
AssociationStatusName -> (Void# -> r) -> (Void# -> r) -> r
AssociationStatusName_Pending = AssociationStatusName' "Pending"

pattern AssociationStatusName_Success :: AssociationStatusName
pattern $bAssociationStatusName_Success :: AssociationStatusName
$mAssociationStatusName_Success :: forall r.
AssociationStatusName -> (Void# -> r) -> (Void# -> r) -> r
AssociationStatusName_Success = AssociationStatusName' "Success"

{-# COMPLETE
  AssociationStatusName_Failed,
  AssociationStatusName_Pending,
  AssociationStatusName_Success,
  AssociationStatusName'
  #-}