{-# 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.NotebookInstanceAcceleratorType
-- 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.NotebookInstanceAcceleratorType
  ( NotebookInstanceAcceleratorType
      ( ..,
        NotebookInstanceAcceleratorType_Ml_eia1_large,
        NotebookInstanceAcceleratorType_Ml_eia1_medium,
        NotebookInstanceAcceleratorType_Ml_eia1_xlarge,
        NotebookInstanceAcceleratorType_Ml_eia2_large,
        NotebookInstanceAcceleratorType_Ml_eia2_medium,
        NotebookInstanceAcceleratorType_Ml_eia2_xlarge
      ),
  )
where

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

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

pattern NotebookInstanceAcceleratorType_Ml_eia1_large :: NotebookInstanceAcceleratorType
pattern $bNotebookInstanceAcceleratorType_Ml_eia1_large :: NotebookInstanceAcceleratorType
$mNotebookInstanceAcceleratorType_Ml_eia1_large :: forall r.
NotebookInstanceAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
NotebookInstanceAcceleratorType_Ml_eia1_large = NotebookInstanceAcceleratorType' "ml.eia1.large"

pattern NotebookInstanceAcceleratorType_Ml_eia1_medium :: NotebookInstanceAcceleratorType
pattern $bNotebookInstanceAcceleratorType_Ml_eia1_medium :: NotebookInstanceAcceleratorType
$mNotebookInstanceAcceleratorType_Ml_eia1_medium :: forall r.
NotebookInstanceAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
NotebookInstanceAcceleratorType_Ml_eia1_medium = NotebookInstanceAcceleratorType' "ml.eia1.medium"

pattern NotebookInstanceAcceleratorType_Ml_eia1_xlarge :: NotebookInstanceAcceleratorType
pattern $bNotebookInstanceAcceleratorType_Ml_eia1_xlarge :: NotebookInstanceAcceleratorType
$mNotebookInstanceAcceleratorType_Ml_eia1_xlarge :: forall r.
NotebookInstanceAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
NotebookInstanceAcceleratorType_Ml_eia1_xlarge = NotebookInstanceAcceleratorType' "ml.eia1.xlarge"

pattern NotebookInstanceAcceleratorType_Ml_eia2_large :: NotebookInstanceAcceleratorType
pattern $bNotebookInstanceAcceleratorType_Ml_eia2_large :: NotebookInstanceAcceleratorType
$mNotebookInstanceAcceleratorType_Ml_eia2_large :: forall r.
NotebookInstanceAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
NotebookInstanceAcceleratorType_Ml_eia2_large = NotebookInstanceAcceleratorType' "ml.eia2.large"

pattern NotebookInstanceAcceleratorType_Ml_eia2_medium :: NotebookInstanceAcceleratorType
pattern $bNotebookInstanceAcceleratorType_Ml_eia2_medium :: NotebookInstanceAcceleratorType
$mNotebookInstanceAcceleratorType_Ml_eia2_medium :: forall r.
NotebookInstanceAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
NotebookInstanceAcceleratorType_Ml_eia2_medium = NotebookInstanceAcceleratorType' "ml.eia2.medium"

pattern NotebookInstanceAcceleratorType_Ml_eia2_xlarge :: NotebookInstanceAcceleratorType
pattern $bNotebookInstanceAcceleratorType_Ml_eia2_xlarge :: NotebookInstanceAcceleratorType
$mNotebookInstanceAcceleratorType_Ml_eia2_xlarge :: forall r.
NotebookInstanceAcceleratorType
-> (Void# -> r) -> (Void# -> r) -> r
NotebookInstanceAcceleratorType_Ml_eia2_xlarge = NotebookInstanceAcceleratorType' "ml.eia2.xlarge"

{-# COMPLETE
  NotebookInstanceAcceleratorType_Ml_eia1_large,
  NotebookInstanceAcceleratorType_Ml_eia1_medium,
  NotebookInstanceAcceleratorType_Ml_eia1_xlarge,
  NotebookInstanceAcceleratorType_Ml_eia2_large,
  NotebookInstanceAcceleratorType_Ml_eia2_medium,
  NotebookInstanceAcceleratorType_Ml_eia2_xlarge,
  NotebookInstanceAcceleratorType'
  #-}