{-# 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.ProductionVariantAcceleratorType
-- 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.ProductionVariantAcceleratorType
  ( ProductionVariantAcceleratorType
      ( ..,
        ProductionVariantAcceleratorType_Ml_eia1_large,
        ProductionVariantAcceleratorType_Ml_eia1_medium,
        ProductionVariantAcceleratorType_Ml_eia1_xlarge,
        ProductionVariantAcceleratorType_Ml_eia2_large,
        ProductionVariantAcceleratorType_Ml_eia2_medium,
        ProductionVariantAcceleratorType_Ml_eia2_xlarge
      ),
  )
where

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

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

pattern ProductionVariantAcceleratorType_Ml_eia1_large :: ProductionVariantAcceleratorType
pattern $bProductionVariantAcceleratorType_Ml_eia1_large :: ProductionVariantAcceleratorType
$mProductionVariantAcceleratorType_Ml_eia1_large :: forall r.
ProductionVariantAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
ProductionVariantAcceleratorType_Ml_eia1_large = ProductionVariantAcceleratorType' "ml.eia1.large"

pattern ProductionVariantAcceleratorType_Ml_eia1_medium :: ProductionVariantAcceleratorType
pattern $bProductionVariantAcceleratorType_Ml_eia1_medium :: ProductionVariantAcceleratorType
$mProductionVariantAcceleratorType_Ml_eia1_medium :: forall r.
ProductionVariantAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
ProductionVariantAcceleratorType_Ml_eia1_medium = ProductionVariantAcceleratorType' "ml.eia1.medium"

pattern ProductionVariantAcceleratorType_Ml_eia1_xlarge :: ProductionVariantAcceleratorType
pattern $bProductionVariantAcceleratorType_Ml_eia1_xlarge :: ProductionVariantAcceleratorType
$mProductionVariantAcceleratorType_Ml_eia1_xlarge :: forall r.
ProductionVariantAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
ProductionVariantAcceleratorType_Ml_eia1_xlarge = ProductionVariantAcceleratorType' "ml.eia1.xlarge"

pattern ProductionVariantAcceleratorType_Ml_eia2_large :: ProductionVariantAcceleratorType
pattern $bProductionVariantAcceleratorType_Ml_eia2_large :: ProductionVariantAcceleratorType
$mProductionVariantAcceleratorType_Ml_eia2_large :: forall r.
ProductionVariantAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
ProductionVariantAcceleratorType_Ml_eia2_large = ProductionVariantAcceleratorType' "ml.eia2.large"

pattern ProductionVariantAcceleratorType_Ml_eia2_medium :: ProductionVariantAcceleratorType
pattern $bProductionVariantAcceleratorType_Ml_eia2_medium :: ProductionVariantAcceleratorType
$mProductionVariantAcceleratorType_Ml_eia2_medium :: forall r.
ProductionVariantAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
ProductionVariantAcceleratorType_Ml_eia2_medium = ProductionVariantAcceleratorType' "ml.eia2.medium"

pattern ProductionVariantAcceleratorType_Ml_eia2_xlarge :: ProductionVariantAcceleratorType
pattern $bProductionVariantAcceleratorType_Ml_eia2_xlarge :: ProductionVariantAcceleratorType
$mProductionVariantAcceleratorType_Ml_eia2_xlarge :: forall r.
ProductionVariantAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
ProductionVariantAcceleratorType_Ml_eia2_xlarge = ProductionVariantAcceleratorType' "ml.eia2.xlarge"

{-# COMPLETE
  ProductionVariantAcceleratorType_Ml_eia1_large,
  ProductionVariantAcceleratorType_Ml_eia1_medium,
  ProductionVariantAcceleratorType_Ml_eia1_xlarge,
  ProductionVariantAcceleratorType_Ml_eia2_large,
  ProductionVariantAcceleratorType_Ml_eia2_medium,
  ProductionVariantAcceleratorType_Ml_eia2_xlarge,
  ProductionVariantAcceleratorType'
  #-}