{-# 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.ContainerMode
-- 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.ContainerMode
  ( ContainerMode
      ( ..,
        ContainerMode_MultiModel,
        ContainerMode_SingleModel
      ),
  )
where

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

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

pattern ContainerMode_MultiModel :: ContainerMode
pattern $bContainerMode_MultiModel :: ContainerMode
$mContainerMode_MultiModel :: forall r. ContainerMode -> (Void# -> r) -> (Void# -> r) -> r
ContainerMode_MultiModel = ContainerMode' "MultiModel"

pattern ContainerMode_SingleModel :: ContainerMode
pattern $bContainerMode_SingleModel :: ContainerMode
$mContainerMode_SingleModel :: forall r. ContainerMode -> (Void# -> r) -> (Void# -> r) -> r
ContainerMode_SingleModel = ContainerMode' "SingleModel"

{-# COMPLETE
  ContainerMode_MultiModel,
  ContainerMode_SingleModel,
  ContainerMode'
  #-}