{-# 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-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.TrafficRoutingConfigType
  ( TrafficRoutingConfigType
      ( ..,
        TrafficRoutingConfigType_ALL_AT_ONCE,
        TrafficRoutingConfigType_CANARY
      ),
  )
where

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

newtype TrafficRoutingConfigType = TrafficRoutingConfigType'
  { TrafficRoutingConfigType -> Text
fromTrafficRoutingConfigType ::
      Core.Text
  }
  deriving stock
    ( Int -> TrafficRoutingConfigType -> ShowS
[TrafficRoutingConfigType] -> ShowS
TrafficRoutingConfigType -> String
(Int -> TrafficRoutingConfigType -> ShowS)
-> (TrafficRoutingConfigType -> String)
-> ([TrafficRoutingConfigType] -> ShowS)
-> Show TrafficRoutingConfigType
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]
(Int -> ReadS TrafficRoutingConfigType)
-> ReadS [TrafficRoutingConfigType]
-> ReadPrec TrafficRoutingConfigType
-> ReadPrec [TrafficRoutingConfigType]
-> Read 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
(TrafficRoutingConfigType -> TrafficRoutingConfigType -> Bool)
-> (TrafficRoutingConfigType -> TrafficRoutingConfigType -> Bool)
-> Eq TrafficRoutingConfigType
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
Eq TrafficRoutingConfigType
-> (TrafficRoutingConfigType
    -> TrafficRoutingConfigType -> Ordering)
-> (TrafficRoutingConfigType -> TrafficRoutingConfigType -> Bool)
-> (TrafficRoutingConfigType -> TrafficRoutingConfigType -> Bool)
-> (TrafficRoutingConfigType -> TrafficRoutingConfigType -> Bool)
-> (TrafficRoutingConfigType -> TrafficRoutingConfigType -> Bool)
-> (TrafficRoutingConfigType
    -> TrafficRoutingConfigType -> TrafficRoutingConfigType)
-> (TrafficRoutingConfigType
    -> TrafficRoutingConfigType -> TrafficRoutingConfigType)
-> Ord 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
$cp1Ord :: Eq TrafficRoutingConfigType
Prelude.Ord,
      (forall x.
 TrafficRoutingConfigType -> Rep TrafficRoutingConfigType x)
-> (forall x.
    Rep TrafficRoutingConfigType x -> TrafficRoutingConfigType)
-> Generic TrafficRoutingConfigType
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
    ( Int -> TrafficRoutingConfigType -> Int
TrafficRoutingConfigType -> Int
(Int -> TrafficRoutingConfigType -> Int)
-> (TrafficRoutingConfigType -> Int)
-> Hashable TrafficRoutingConfigType
forall 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 -> ()
(TrafficRoutingConfigType -> ()) -> NFData TrafficRoutingConfigType
forall a. (a -> ()) -> NFData a
rnf :: TrafficRoutingConfigType -> ()
$crnf :: TrafficRoutingConfigType -> ()
Prelude.NFData,
      Text -> Either String TrafficRoutingConfigType
(Text -> Either String TrafficRoutingConfigType)
-> FromText TrafficRoutingConfigType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String TrafficRoutingConfigType
$cfromText :: Text -> Either String TrafficRoutingConfigType
Core.FromText,
      TrafficRoutingConfigType -> Text
(TrafficRoutingConfigType -> Text)
-> ToText TrafficRoutingConfigType
forall a. (a -> Text) -> ToText a
toText :: TrafficRoutingConfigType -> Text
$ctoText :: TrafficRoutingConfigType -> Text
Core.ToText,
      TrafficRoutingConfigType -> ByteString
(TrafficRoutingConfigType -> ByteString)
-> ToByteString TrafficRoutingConfigType
forall a. (a -> ByteString) -> ToByteString a
toBS :: TrafficRoutingConfigType -> ByteString
$ctoBS :: TrafficRoutingConfigType -> ByteString
Core.ToByteString,
      TrafficRoutingConfigType -> ByteStringBuilder
(TrafficRoutingConfigType -> ByteStringBuilder)
-> ToLog TrafficRoutingConfigType
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: TrafficRoutingConfigType -> ByteStringBuilder
$cbuild :: TrafficRoutingConfigType -> ByteStringBuilder
Core.ToLog,
      HeaderName -> TrafficRoutingConfigType -> [Header]
(HeaderName -> TrafficRoutingConfigType -> [Header])
-> ToHeader TrafficRoutingConfigType
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> TrafficRoutingConfigType -> [Header]
$ctoHeader :: HeaderName -> TrafficRoutingConfigType -> [Header]
Core.ToHeader,
      TrafficRoutingConfigType -> QueryString
(TrafficRoutingConfigType -> QueryString)
-> ToQuery TrafficRoutingConfigType
forall a. (a -> QueryString) -> ToQuery a
toQuery :: TrafficRoutingConfigType -> QueryString
$ctoQuery :: TrafficRoutingConfigType -> QueryString
Core.ToQuery,
      Value -> Parser [TrafficRoutingConfigType]
Value -> Parser TrafficRoutingConfigType
(Value -> Parser TrafficRoutingConfigType)
-> (Value -> Parser [TrafficRoutingConfigType])
-> FromJSON 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
Core.FromJSON,
      FromJSONKeyFunction [TrafficRoutingConfigType]
FromJSONKeyFunction TrafficRoutingConfigType
FromJSONKeyFunction TrafficRoutingConfigType
-> FromJSONKeyFunction [TrafficRoutingConfigType]
-> FromJSONKey TrafficRoutingConfigType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [TrafficRoutingConfigType]
$cfromJSONKeyList :: FromJSONKeyFunction [TrafficRoutingConfigType]
fromJSONKey :: FromJSONKeyFunction TrafficRoutingConfigType
$cfromJSONKey :: FromJSONKeyFunction TrafficRoutingConfigType
Core.FromJSONKey,
      [TrafficRoutingConfigType] -> Encoding
[TrafficRoutingConfigType] -> Value
TrafficRoutingConfigType -> Encoding
TrafficRoutingConfigType -> Value
(TrafficRoutingConfigType -> Value)
-> (TrafficRoutingConfigType -> Encoding)
-> ([TrafficRoutingConfigType] -> Value)
-> ([TrafficRoutingConfigType] -> Encoding)
-> ToJSON TrafficRoutingConfigType
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
Core.ToJSON,
      ToJSONKeyFunction [TrafficRoutingConfigType]
ToJSONKeyFunction TrafficRoutingConfigType
ToJSONKeyFunction TrafficRoutingConfigType
-> ToJSONKeyFunction [TrafficRoutingConfigType]
-> ToJSONKey TrafficRoutingConfigType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [TrafficRoutingConfigType]
$ctoJSONKeyList :: ToJSONKeyFunction [TrafficRoutingConfigType]
toJSONKey :: ToJSONKeyFunction TrafficRoutingConfigType
$ctoJSONKey :: ToJSONKeyFunction TrafficRoutingConfigType
Core.ToJSONKey,
      [Node] -> Either String TrafficRoutingConfigType
([Node] -> Either String TrafficRoutingConfigType)
-> FromXML TrafficRoutingConfigType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String TrafficRoutingConfigType
$cparseXML :: [Node] -> Either String TrafficRoutingConfigType
Core.FromXML,
      TrafficRoutingConfigType -> XML
(TrafficRoutingConfigType -> XML) -> ToXML TrafficRoutingConfigType
forall a. (a -> XML) -> ToXML a
toXML :: TrafficRoutingConfigType -> XML
$ctoXML :: TrafficRoutingConfigType -> XML
Core.ToXML
    )

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

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

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