{-# 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.ManagedAgentName
-- 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.ManagedAgentName
  ( ManagedAgentName
      ( ..,
        ManagedAgentName_ExecuteCommandAgent
      ),
  )
where

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

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

pattern ManagedAgentName_ExecuteCommandAgent :: ManagedAgentName
pattern $bManagedAgentName_ExecuteCommandAgent :: ManagedAgentName
$mManagedAgentName_ExecuteCommandAgent :: forall r. ManagedAgentName -> (Void# -> r) -> (Void# -> r) -> r
ManagedAgentName_ExecuteCommandAgent = ManagedAgentName' "ExecuteCommandAgent"

{-# COMPLETE
  ManagedAgentName_ExecuteCommandAgent,
  ManagedAgentName'
  #-}