{-# 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.PlatformDeviceType
-- 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.PlatformDeviceType
  ( PlatformDeviceType
      ( ..,
        PlatformDeviceType_GPU
      ),
  )
where

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

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

pattern PlatformDeviceType_GPU :: PlatformDeviceType
pattern $bPlatformDeviceType_GPU :: PlatformDeviceType
$mPlatformDeviceType_GPU :: forall {r}. PlatformDeviceType -> ((# #) -> r) -> ((# #) -> r) -> r
PlatformDeviceType_GPU = PlatformDeviceType' "GPU"

{-# COMPLETE
  PlatformDeviceType_GPU,
  PlatformDeviceType'
  #-}