{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype AgentUpdateStatus = AgentUpdateStatus'
  { AgentUpdateStatus -> Text
fromAgentUpdateStatus ::
      Data.Text
  }
  deriving stock
    ( Int -> AgentUpdateStatus -> ShowS
[AgentUpdateStatus] -> ShowS
AgentUpdateStatus -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq AgentUpdateStatus
Int -> AgentUpdateStatus -> Int
AgentUpdateStatus -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: AgentUpdateStatus -> ()
$crnf :: AgentUpdateStatus -> ()
Prelude.NFData,
      Text -> Either String AgentUpdateStatus
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String AgentUpdateStatus
$cfromText :: Text -> Either String AgentUpdateStatus
Data.FromText,
      AgentUpdateStatus -> Text
forall a. (a -> Text) -> ToText a
toText :: AgentUpdateStatus -> Text
$ctoText :: AgentUpdateStatus -> Text
Data.ToText,
      AgentUpdateStatus -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: AgentUpdateStatus -> ByteString
$ctoBS :: AgentUpdateStatus -> ByteString
Data.ToByteString,
      AgentUpdateStatus -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: AgentUpdateStatus -> ByteStringBuilder
$cbuild :: AgentUpdateStatus -> ByteStringBuilder
Data.ToLog,
      HeaderName -> AgentUpdateStatus -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> AgentUpdateStatus -> [Header]
$ctoHeader :: HeaderName -> AgentUpdateStatus -> [Header]
Data.ToHeader,
      AgentUpdateStatus -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: AgentUpdateStatus -> QueryString
$ctoQuery :: AgentUpdateStatus -> QueryString
Data.ToQuery,
      Value -> Parser [AgentUpdateStatus]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [AgentUpdateStatus]
FromJSONKeyFunction AgentUpdateStatus
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [AgentUpdateStatus]
$cfromJSONKeyList :: FromJSONKeyFunction [AgentUpdateStatus]
fromJSONKey :: FromJSONKeyFunction AgentUpdateStatus
$cfromJSONKey :: FromJSONKeyFunction AgentUpdateStatus
Data.FromJSONKey,
      [AgentUpdateStatus] -> Encoding
[AgentUpdateStatus] -> Value
AgentUpdateStatus -> Encoding
AgentUpdateStatus -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [AgentUpdateStatus]
ToJSONKeyFunction AgentUpdateStatus
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [AgentUpdateStatus]
$ctoJSONKeyList :: ToJSONKeyFunction [AgentUpdateStatus]
toJSONKey :: ToJSONKeyFunction AgentUpdateStatus
$ctoJSONKey :: ToJSONKeyFunction AgentUpdateStatus
Data.ToJSONKey,
      [Node] -> Either String AgentUpdateStatus
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String AgentUpdateStatus
$cparseXML :: [Node] -> Either String AgentUpdateStatus
Data.FromXML,
      AgentUpdateStatus -> XML
forall a. (a -> XML) -> ToXML a
toXML :: AgentUpdateStatus -> XML
$ctoXML :: AgentUpdateStatus -> XML
Data.ToXML
    )

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

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

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

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

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

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

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