{-# 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.ECS.Types.AgentUpdateStatus
-- 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.ECS.Types.AgentUpdateStatus
  ( AgentUpdateStatus
      ( ..,
        AgentUpdateStatus_FAILED,
        AgentUpdateStatus_PENDING,
        AgentUpdateStatus_STAGED,
        AgentUpdateStatus_STAGING,
        AgentUpdateStatus_UPDATED,
        AgentUpdateStatus_UPDATING
      ),
  )
where

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

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

pattern AgentUpdateStatus_FAILED :: AgentUpdateStatus
pattern $bAgentUpdateStatus_FAILED :: AgentUpdateStatus
$mAgentUpdateStatus_FAILED :: forall r. AgentUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
AgentUpdateStatus_FAILED = AgentUpdateStatus' "FAILED"

pattern AgentUpdateStatus_PENDING :: AgentUpdateStatus
pattern $bAgentUpdateStatus_PENDING :: AgentUpdateStatus
$mAgentUpdateStatus_PENDING :: forall r. AgentUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
AgentUpdateStatus_PENDING = AgentUpdateStatus' "PENDING"

pattern AgentUpdateStatus_STAGED :: AgentUpdateStatus
pattern $bAgentUpdateStatus_STAGED :: AgentUpdateStatus
$mAgentUpdateStatus_STAGED :: forall r. AgentUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
AgentUpdateStatus_STAGED = AgentUpdateStatus' "STAGED"

pattern AgentUpdateStatus_STAGING :: AgentUpdateStatus
pattern $bAgentUpdateStatus_STAGING :: AgentUpdateStatus
$mAgentUpdateStatus_STAGING :: forall r. AgentUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
AgentUpdateStatus_STAGING = AgentUpdateStatus' "STAGING"

pattern AgentUpdateStatus_UPDATED :: AgentUpdateStatus
pattern $bAgentUpdateStatus_UPDATED :: AgentUpdateStatus
$mAgentUpdateStatus_UPDATED :: forall r. AgentUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
AgentUpdateStatus_UPDATED = AgentUpdateStatus' "UPDATED"

pattern AgentUpdateStatus_UPDATING :: AgentUpdateStatus
pattern $bAgentUpdateStatus_UPDATING :: AgentUpdateStatus
$mAgentUpdateStatus_UPDATING :: forall r. AgentUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
AgentUpdateStatus_UPDATING = AgentUpdateStatus' "UPDATING"

{-# COMPLETE
  AgentUpdateStatus_FAILED,
  AgentUpdateStatus_PENDING,
  AgentUpdateStatus_STAGED,
  AgentUpdateStatus_STAGING,
  AgentUpdateStatus_UPDATED,
  AgentUpdateStatus_UPDATING,
  AgentUpdateStatus'
  #-}