{-# 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.LexV2Models.Types.ObfuscationSettingType
-- 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.LexV2Models.Types.ObfuscationSettingType
  ( ObfuscationSettingType
      ( ..,
        ObfuscationSettingType_DefaultObfuscation,
        ObfuscationSettingType_None
      ),
  )
where

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

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

pattern ObfuscationSettingType_DefaultObfuscation :: ObfuscationSettingType
pattern $bObfuscationSettingType_DefaultObfuscation :: ObfuscationSettingType
$mObfuscationSettingType_DefaultObfuscation :: forall {r}.
ObfuscationSettingType -> ((# #) -> r) -> ((# #) -> r) -> r
ObfuscationSettingType_DefaultObfuscation = ObfuscationSettingType' "DefaultObfuscation"

pattern ObfuscationSettingType_None :: ObfuscationSettingType
pattern $bObfuscationSettingType_None :: ObfuscationSettingType
$mObfuscationSettingType_None :: forall {r}.
ObfuscationSettingType -> ((# #) -> r) -> ((# #) -> r) -> r
ObfuscationSettingType_None = ObfuscationSettingType' "None"

{-# COMPLETE
  ObfuscationSettingType_DefaultObfuscation,
  ObfuscationSettingType_None,
  ObfuscationSettingType'
  #-}