{-# 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.Personalize.Types.ObjectiveSensitivity
-- 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.Personalize.Types.ObjectiveSensitivity
  ( ObjectiveSensitivity
      ( ..,
        ObjectiveSensitivity_HIGH,
        ObjectiveSensitivity_LOW,
        ObjectiveSensitivity_MEDIUM,
        ObjectiveSensitivity_OFF
      ),
  )
where

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

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

pattern ObjectiveSensitivity_HIGH :: ObjectiveSensitivity
pattern $bObjectiveSensitivity_HIGH :: ObjectiveSensitivity
$mObjectiveSensitivity_HIGH :: forall r. ObjectiveSensitivity -> (Void# -> r) -> (Void# -> r) -> r
ObjectiveSensitivity_HIGH = ObjectiveSensitivity' "HIGH"

pattern ObjectiveSensitivity_LOW :: ObjectiveSensitivity
pattern $bObjectiveSensitivity_LOW :: ObjectiveSensitivity
$mObjectiveSensitivity_LOW :: forall r. ObjectiveSensitivity -> (Void# -> r) -> (Void# -> r) -> r
ObjectiveSensitivity_LOW = ObjectiveSensitivity' "LOW"

pattern ObjectiveSensitivity_MEDIUM :: ObjectiveSensitivity
pattern $bObjectiveSensitivity_MEDIUM :: ObjectiveSensitivity
$mObjectiveSensitivity_MEDIUM :: forall r. ObjectiveSensitivity -> (Void# -> r) -> (Void# -> r) -> r
ObjectiveSensitivity_MEDIUM = ObjectiveSensitivity' "MEDIUM"

pattern ObjectiveSensitivity_OFF :: ObjectiveSensitivity
pattern $bObjectiveSensitivity_OFF :: ObjectiveSensitivity
$mObjectiveSensitivity_OFF :: forall r. ObjectiveSensitivity -> (Void# -> r) -> (Void# -> r) -> r
ObjectiveSensitivity_OFF = ObjectiveSensitivity' "OFF"

{-# COMPLETE
  ObjectiveSensitivity_HIGH,
  ObjectiveSensitivity_LOW,
  ObjectiveSensitivity_MEDIUM,
  ObjectiveSensitivity_OFF,
  ObjectiveSensitivity'
  #-}