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

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

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

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

{-# COMPLETE
  PlatformDeviceType_GPU,
  PlatformDeviceType'
  #-}