{-# 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.TargetDevice
-- 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.TargetDevice
  ( TargetDevice
      ( ..,
        TargetDevice_Aisage,
        TargetDevice_Amba_cv22,
        TargetDevice_Amba_cv25,
        TargetDevice_Coreml,
        TargetDevice_Deeplens,
        TargetDevice_Imx8mplus,
        TargetDevice_Imx8qm,
        TargetDevice_Jacinto_tda4vm,
        TargetDevice_Jetson_nano,
        TargetDevice_Jetson_tx1,
        TargetDevice_Jetson_tx2,
        TargetDevice_Jetson_xavier,
        TargetDevice_Lambda,
        TargetDevice_Ml_c4,
        TargetDevice_Ml_c5,
        TargetDevice_Ml_eia2,
        TargetDevice_Ml_g4dn,
        TargetDevice_Ml_inf1,
        TargetDevice_Ml_m4,
        TargetDevice_Ml_m5,
        TargetDevice_Ml_p2,
        TargetDevice_Ml_p3,
        TargetDevice_Qcs603,
        TargetDevice_Qcs605,
        TargetDevice_Rasp3b,
        TargetDevice_Rk3288,
        TargetDevice_Rk3399,
        TargetDevice_Sbe_c,
        TargetDevice_Sitara_am57x,
        TargetDevice_X86_win32,
        TargetDevice_X86_win64
      ),
  )
where

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

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

pattern TargetDevice_Aisage :: TargetDevice
pattern $bTargetDevice_Aisage :: TargetDevice
$mTargetDevice_Aisage :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Aisage = TargetDevice' "aisage"

pattern TargetDevice_Amba_cv22 :: TargetDevice
pattern $bTargetDevice_Amba_cv22 :: TargetDevice
$mTargetDevice_Amba_cv22 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Amba_cv22 = TargetDevice' "amba_cv22"

pattern TargetDevice_Amba_cv25 :: TargetDevice
pattern $bTargetDevice_Amba_cv25 :: TargetDevice
$mTargetDevice_Amba_cv25 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Amba_cv25 = TargetDevice' "amba_cv25"

pattern TargetDevice_Coreml :: TargetDevice
pattern $bTargetDevice_Coreml :: TargetDevice
$mTargetDevice_Coreml :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Coreml = TargetDevice' "coreml"

pattern TargetDevice_Deeplens :: TargetDevice
pattern $bTargetDevice_Deeplens :: TargetDevice
$mTargetDevice_Deeplens :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Deeplens = TargetDevice' "deeplens"

pattern TargetDevice_Imx8mplus :: TargetDevice
pattern $bTargetDevice_Imx8mplus :: TargetDevice
$mTargetDevice_Imx8mplus :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Imx8mplus = TargetDevice' "imx8mplus"

pattern TargetDevice_Imx8qm :: TargetDevice
pattern $bTargetDevice_Imx8qm :: TargetDevice
$mTargetDevice_Imx8qm :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Imx8qm = TargetDevice' "imx8qm"

pattern TargetDevice_Jacinto_tda4vm :: TargetDevice
pattern $bTargetDevice_Jacinto_tda4vm :: TargetDevice
$mTargetDevice_Jacinto_tda4vm :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Jacinto_tda4vm = TargetDevice' "jacinto_tda4vm"

pattern TargetDevice_Jetson_nano :: TargetDevice
pattern $bTargetDevice_Jetson_nano :: TargetDevice
$mTargetDevice_Jetson_nano :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Jetson_nano = TargetDevice' "jetson_nano"

pattern TargetDevice_Jetson_tx1 :: TargetDevice
pattern $bTargetDevice_Jetson_tx1 :: TargetDevice
$mTargetDevice_Jetson_tx1 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Jetson_tx1 = TargetDevice' "jetson_tx1"

pattern TargetDevice_Jetson_tx2 :: TargetDevice
pattern $bTargetDevice_Jetson_tx2 :: TargetDevice
$mTargetDevice_Jetson_tx2 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Jetson_tx2 = TargetDevice' "jetson_tx2"

pattern TargetDevice_Jetson_xavier :: TargetDevice
pattern $bTargetDevice_Jetson_xavier :: TargetDevice
$mTargetDevice_Jetson_xavier :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Jetson_xavier = TargetDevice' "jetson_xavier"

pattern TargetDevice_Lambda :: TargetDevice
pattern $bTargetDevice_Lambda :: TargetDevice
$mTargetDevice_Lambda :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Lambda = TargetDevice' "lambda"

pattern TargetDevice_Ml_c4 :: TargetDevice
pattern $bTargetDevice_Ml_c4 :: TargetDevice
$mTargetDevice_Ml_c4 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_c4 = TargetDevice' "ml_c4"

pattern TargetDevice_Ml_c5 :: TargetDevice
pattern $bTargetDevice_Ml_c5 :: TargetDevice
$mTargetDevice_Ml_c5 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_c5 = TargetDevice' "ml_c5"

pattern TargetDevice_Ml_eia2 :: TargetDevice
pattern $bTargetDevice_Ml_eia2 :: TargetDevice
$mTargetDevice_Ml_eia2 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_eia2 = TargetDevice' "ml_eia2"

pattern TargetDevice_Ml_g4dn :: TargetDevice
pattern $bTargetDevice_Ml_g4dn :: TargetDevice
$mTargetDevice_Ml_g4dn :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_g4dn = TargetDevice' "ml_g4dn"

pattern TargetDevice_Ml_inf1 :: TargetDevice
pattern $bTargetDevice_Ml_inf1 :: TargetDevice
$mTargetDevice_Ml_inf1 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_inf1 = TargetDevice' "ml_inf1"

pattern TargetDevice_Ml_m4 :: TargetDevice
pattern $bTargetDevice_Ml_m4 :: TargetDevice
$mTargetDevice_Ml_m4 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_m4 = TargetDevice' "ml_m4"

pattern TargetDevice_Ml_m5 :: TargetDevice
pattern $bTargetDevice_Ml_m5 :: TargetDevice
$mTargetDevice_Ml_m5 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_m5 = TargetDevice' "ml_m5"

pattern TargetDevice_Ml_p2 :: TargetDevice
pattern $bTargetDevice_Ml_p2 :: TargetDevice
$mTargetDevice_Ml_p2 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_p2 = TargetDevice' "ml_p2"

pattern TargetDevice_Ml_p3 :: TargetDevice
pattern $bTargetDevice_Ml_p3 :: TargetDevice
$mTargetDevice_Ml_p3 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Ml_p3 = TargetDevice' "ml_p3"

pattern TargetDevice_Qcs603 :: TargetDevice
pattern $bTargetDevice_Qcs603 :: TargetDevice
$mTargetDevice_Qcs603 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Qcs603 = TargetDevice' "qcs603"

pattern TargetDevice_Qcs605 :: TargetDevice
pattern $bTargetDevice_Qcs605 :: TargetDevice
$mTargetDevice_Qcs605 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Qcs605 = TargetDevice' "qcs605"

pattern TargetDevice_Rasp3b :: TargetDevice
pattern $bTargetDevice_Rasp3b :: TargetDevice
$mTargetDevice_Rasp3b :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Rasp3b = TargetDevice' "rasp3b"

pattern TargetDevice_Rk3288 :: TargetDevice
pattern $bTargetDevice_Rk3288 :: TargetDevice
$mTargetDevice_Rk3288 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Rk3288 = TargetDevice' "rk3288"

pattern TargetDevice_Rk3399 :: TargetDevice
pattern $bTargetDevice_Rk3399 :: TargetDevice
$mTargetDevice_Rk3399 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Rk3399 = TargetDevice' "rk3399"

pattern TargetDevice_Sbe_c :: TargetDevice
pattern $bTargetDevice_Sbe_c :: TargetDevice
$mTargetDevice_Sbe_c :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Sbe_c = TargetDevice' "sbe_c"

pattern TargetDevice_Sitara_am57x :: TargetDevice
pattern $bTargetDevice_Sitara_am57x :: TargetDevice
$mTargetDevice_Sitara_am57x :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_Sitara_am57x = TargetDevice' "sitara_am57x"

pattern TargetDevice_X86_win32 :: TargetDevice
pattern $bTargetDevice_X86_win32 :: TargetDevice
$mTargetDevice_X86_win32 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_X86_win32 = TargetDevice' "x86_win32"

pattern TargetDevice_X86_win64 :: TargetDevice
pattern $bTargetDevice_X86_win64 :: TargetDevice
$mTargetDevice_X86_win64 :: forall r. TargetDevice -> (Void# -> r) -> (Void# -> r) -> r
TargetDevice_X86_win64 = TargetDevice' "x86_win64"

{-# COMPLETE
  TargetDevice_Aisage,
  TargetDevice_Amba_cv22,
  TargetDevice_Amba_cv25,
  TargetDevice_Coreml,
  TargetDevice_Deeplens,
  TargetDevice_Imx8mplus,
  TargetDevice_Imx8qm,
  TargetDevice_Jacinto_tda4vm,
  TargetDevice_Jetson_nano,
  TargetDevice_Jetson_tx1,
  TargetDevice_Jetson_tx2,
  TargetDevice_Jetson_xavier,
  TargetDevice_Lambda,
  TargetDevice_Ml_c4,
  TargetDevice_Ml_c5,
  TargetDevice_Ml_eia2,
  TargetDevice_Ml_g4dn,
  TargetDevice_Ml_inf1,
  TargetDevice_Ml_m4,
  TargetDevice_Ml_m5,
  TargetDevice_Ml_p2,
  TargetDevice_Ml_p3,
  TargetDevice_Qcs603,
  TargetDevice_Qcs605,
  TargetDevice_Rasp3b,
  TargetDevice_Rk3288,
  TargetDevice_Rk3399,
  TargetDevice_Sbe_c,
  TargetDevice_Sitara_am57x,
  TargetDevice_X86_win32,
  TargetDevice_X86_win64,
  TargetDevice'
  #-}