{-# 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.TrafficRoutingConfigType
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.TrafficRoutingConfigType
  ( TrafficRoutingConfigType
      ( ..,
        TrafficRoutingConfigType_ALL_AT_ONCE,
        TrafficRoutingConfigType_CANARY,
        TrafficRoutingConfigType_LINEAR
      ),
  )
where

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

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

pattern TrafficRoutingConfigType_ALL_AT_ONCE :: TrafficRoutingConfigType
pattern $bTrafficRoutingConfigType_ALL_AT_ONCE :: TrafficRoutingConfigType
$mTrafficRoutingConfigType_ALL_AT_ONCE :: forall {r}.
TrafficRoutingConfigType -> ((# #) -> r) -> ((# #) -> r) -> r
TrafficRoutingConfigType_ALL_AT_ONCE = TrafficRoutingConfigType' "ALL_AT_ONCE"

pattern TrafficRoutingConfigType_CANARY :: TrafficRoutingConfigType
pattern $bTrafficRoutingConfigType_CANARY :: TrafficRoutingConfigType
$mTrafficRoutingConfigType_CANARY :: forall {r}.
TrafficRoutingConfigType -> ((# #) -> r) -> ((# #) -> r) -> r
TrafficRoutingConfigType_CANARY = TrafficRoutingConfigType' "CANARY"

pattern TrafficRoutingConfigType_LINEAR :: TrafficRoutingConfigType
pattern $bTrafficRoutingConfigType_LINEAR :: TrafficRoutingConfigType
$mTrafficRoutingConfigType_LINEAR :: forall {r}.
TrafficRoutingConfigType -> ((# #) -> r) -> ((# #) -> r) -> r
TrafficRoutingConfigType_LINEAR = TrafficRoutingConfigType' "LINEAR"

{-# COMPLETE
  TrafficRoutingConfigType_ALL_AT_ONCE,
  TrafficRoutingConfigType_CANARY,
  TrafficRoutingConfigType_LINEAR,
  TrafficRoutingConfigType'
  #-}