{-# 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.SageMaker.Types.TargetPlatformAccelerator
-- 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.SageMaker.Types.TargetPlatformAccelerator
  ( TargetPlatformAccelerator
      ( ..,
        TargetPlatformAccelerator_INTEL_GRAPHICS,
        TargetPlatformAccelerator_MALI,
        TargetPlatformAccelerator_NVIDIA
      ),
  )
where

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

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

pattern TargetPlatformAccelerator_INTEL_GRAPHICS :: TargetPlatformAccelerator
pattern $bTargetPlatformAccelerator_INTEL_GRAPHICS :: TargetPlatformAccelerator
$mTargetPlatformAccelerator_INTEL_GRAPHICS :: forall r.
TargetPlatformAccelerator -> (Void# -> r) -> (Void# -> r) -> r
TargetPlatformAccelerator_INTEL_GRAPHICS = TargetPlatformAccelerator' "INTEL_GRAPHICS"

pattern TargetPlatformAccelerator_MALI :: TargetPlatformAccelerator
pattern $bTargetPlatformAccelerator_MALI :: TargetPlatformAccelerator
$mTargetPlatformAccelerator_MALI :: forall r.
TargetPlatformAccelerator -> (Void# -> r) -> (Void# -> r) -> r
TargetPlatformAccelerator_MALI = TargetPlatformAccelerator' "MALI"

pattern TargetPlatformAccelerator_NVIDIA :: TargetPlatformAccelerator
pattern $bTargetPlatformAccelerator_NVIDIA :: TargetPlatformAccelerator
$mTargetPlatformAccelerator_NVIDIA :: forall r.
TargetPlatformAccelerator -> (Void# -> r) -> (Void# -> r) -> r
TargetPlatformAccelerator_NVIDIA = TargetPlatformAccelerator' "NVIDIA"

{-# COMPLETE
  TargetPlatformAccelerator_INTEL_GRAPHICS,
  TargetPlatformAccelerator_MALI,
  TargetPlatformAccelerator_NVIDIA,
  TargetPlatformAccelerator'
  #-}