{-# 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.SESV2.Types.ScalingMode
-- 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.SESV2.Types.ScalingMode
  ( ScalingMode
      ( ..,
        ScalingMode_MANAGED,
        ScalingMode_STANDARD
      ),
  )
where

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

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

pattern ScalingMode_MANAGED :: ScalingMode
pattern $bScalingMode_MANAGED :: ScalingMode
$mScalingMode_MANAGED :: forall {r}. ScalingMode -> ((# #) -> r) -> ((# #) -> r) -> r
ScalingMode_MANAGED = ScalingMode' "MANAGED"

pattern ScalingMode_STANDARD :: ScalingMode
pattern $bScalingMode_STANDARD :: ScalingMode
$mScalingMode_STANDARD :: forall {r}. ScalingMode -> ((# #) -> r) -> ((# #) -> r) -> r
ScalingMode_STANDARD = ScalingMode' "STANDARD"

{-# COMPLETE
  ScalingMode_MANAGED,
  ScalingMode_STANDARD,
  ScalingMode'
  #-}