{-# 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.WAFV2.Types.TextTransformationType
-- 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.WAFV2.Types.TextTransformationType
  ( TextTransformationType
      ( ..,
        TextTransformationType_BASE64_DECODE,
        TextTransformationType_BASE64_DECODE_EXT,
        TextTransformationType_CMD_LINE,
        TextTransformationType_COMPRESS_WHITE_SPACE,
        TextTransformationType_CSS_DECODE,
        TextTransformationType_ESCAPE_SEQ_DECODE,
        TextTransformationType_HEX_DECODE,
        TextTransformationType_HTML_ENTITY_DECODE,
        TextTransformationType_JS_DECODE,
        TextTransformationType_LOWERCASE,
        TextTransformationType_MD5,
        TextTransformationType_NONE,
        TextTransformationType_NORMALIZE_PATH,
        TextTransformationType_NORMALIZE_PATH_WIN,
        TextTransformationType_REMOVE_NULLS,
        TextTransformationType_REPLACE_COMMENTS,
        TextTransformationType_REPLACE_NULLS,
        TextTransformationType_SQL_HEX_DECODE,
        TextTransformationType_URL_DECODE,
        TextTransformationType_URL_DECODE_UNI,
        TextTransformationType_UTF8_TO_UNICODE
      ),
  )
where

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

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

pattern TextTransformationType_BASE64_DECODE :: TextTransformationType
pattern $bTextTransformationType_BASE64_DECODE :: TextTransformationType
$mTextTransformationType_BASE64_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_BASE64_DECODE = TextTransformationType' "BASE64_DECODE"

pattern TextTransformationType_BASE64_DECODE_EXT :: TextTransformationType
pattern $bTextTransformationType_BASE64_DECODE_EXT :: TextTransformationType
$mTextTransformationType_BASE64_DECODE_EXT :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_BASE64_DECODE_EXT = TextTransformationType' "BASE64_DECODE_EXT"

pattern TextTransformationType_CMD_LINE :: TextTransformationType
pattern $bTextTransformationType_CMD_LINE :: TextTransformationType
$mTextTransformationType_CMD_LINE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_CMD_LINE = TextTransformationType' "CMD_LINE"

pattern TextTransformationType_COMPRESS_WHITE_SPACE :: TextTransformationType
pattern $bTextTransformationType_COMPRESS_WHITE_SPACE :: TextTransformationType
$mTextTransformationType_COMPRESS_WHITE_SPACE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_COMPRESS_WHITE_SPACE = TextTransformationType' "COMPRESS_WHITE_SPACE"

pattern TextTransformationType_CSS_DECODE :: TextTransformationType
pattern $bTextTransformationType_CSS_DECODE :: TextTransformationType
$mTextTransformationType_CSS_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_CSS_DECODE = TextTransformationType' "CSS_DECODE"

pattern TextTransformationType_ESCAPE_SEQ_DECODE :: TextTransformationType
pattern $bTextTransformationType_ESCAPE_SEQ_DECODE :: TextTransformationType
$mTextTransformationType_ESCAPE_SEQ_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_ESCAPE_SEQ_DECODE = TextTransformationType' "ESCAPE_SEQ_DECODE"

pattern TextTransformationType_HEX_DECODE :: TextTransformationType
pattern $bTextTransformationType_HEX_DECODE :: TextTransformationType
$mTextTransformationType_HEX_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_HEX_DECODE = TextTransformationType' "HEX_DECODE"

pattern TextTransformationType_HTML_ENTITY_DECODE :: TextTransformationType
pattern $bTextTransformationType_HTML_ENTITY_DECODE :: TextTransformationType
$mTextTransformationType_HTML_ENTITY_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_HTML_ENTITY_DECODE = TextTransformationType' "HTML_ENTITY_DECODE"

pattern TextTransformationType_JS_DECODE :: TextTransformationType
pattern $bTextTransformationType_JS_DECODE :: TextTransformationType
$mTextTransformationType_JS_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_JS_DECODE = TextTransformationType' "JS_DECODE"

pattern TextTransformationType_LOWERCASE :: TextTransformationType
pattern $bTextTransformationType_LOWERCASE :: TextTransformationType
$mTextTransformationType_LOWERCASE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_LOWERCASE = TextTransformationType' "LOWERCASE"

pattern TextTransformationType_MD5 :: TextTransformationType
pattern $bTextTransformationType_MD5 :: TextTransformationType
$mTextTransformationType_MD5 :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_MD5 = TextTransformationType' "MD5"

pattern TextTransformationType_NONE :: TextTransformationType
pattern $bTextTransformationType_NONE :: TextTransformationType
$mTextTransformationType_NONE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_NONE = TextTransformationType' "NONE"

pattern TextTransformationType_NORMALIZE_PATH :: TextTransformationType
pattern $bTextTransformationType_NORMALIZE_PATH :: TextTransformationType
$mTextTransformationType_NORMALIZE_PATH :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_NORMALIZE_PATH = TextTransformationType' "NORMALIZE_PATH"

pattern TextTransformationType_NORMALIZE_PATH_WIN :: TextTransformationType
pattern $bTextTransformationType_NORMALIZE_PATH_WIN :: TextTransformationType
$mTextTransformationType_NORMALIZE_PATH_WIN :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_NORMALIZE_PATH_WIN = TextTransformationType' "NORMALIZE_PATH_WIN"

pattern TextTransformationType_REMOVE_NULLS :: TextTransformationType
pattern $bTextTransformationType_REMOVE_NULLS :: TextTransformationType
$mTextTransformationType_REMOVE_NULLS :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_REMOVE_NULLS = TextTransformationType' "REMOVE_NULLS"

pattern TextTransformationType_REPLACE_COMMENTS :: TextTransformationType
pattern $bTextTransformationType_REPLACE_COMMENTS :: TextTransformationType
$mTextTransformationType_REPLACE_COMMENTS :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_REPLACE_COMMENTS = TextTransformationType' "REPLACE_COMMENTS"

pattern TextTransformationType_REPLACE_NULLS :: TextTransformationType
pattern $bTextTransformationType_REPLACE_NULLS :: TextTransformationType
$mTextTransformationType_REPLACE_NULLS :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_REPLACE_NULLS = TextTransformationType' "REPLACE_NULLS"

pattern TextTransformationType_SQL_HEX_DECODE :: TextTransformationType
pattern $bTextTransformationType_SQL_HEX_DECODE :: TextTransformationType
$mTextTransformationType_SQL_HEX_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_SQL_HEX_DECODE = TextTransformationType' "SQL_HEX_DECODE"

pattern TextTransformationType_URL_DECODE :: TextTransformationType
pattern $bTextTransformationType_URL_DECODE :: TextTransformationType
$mTextTransformationType_URL_DECODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_URL_DECODE = TextTransformationType' "URL_DECODE"

pattern TextTransformationType_URL_DECODE_UNI :: TextTransformationType
pattern $bTextTransformationType_URL_DECODE_UNI :: TextTransformationType
$mTextTransformationType_URL_DECODE_UNI :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_URL_DECODE_UNI = TextTransformationType' "URL_DECODE_UNI"

pattern TextTransformationType_UTF8_TO_UNICODE :: TextTransformationType
pattern $bTextTransformationType_UTF8_TO_UNICODE :: TextTransformationType
$mTextTransformationType_UTF8_TO_UNICODE :: forall {r}.
TextTransformationType -> ((# #) -> r) -> ((# #) -> r) -> r
TextTransformationType_UTF8_TO_UNICODE = TextTransformationType' "UTF8_TO_UNICODE"

{-# COMPLETE
  TextTransformationType_BASE64_DECODE,
  TextTransformationType_BASE64_DECODE_EXT,
  TextTransformationType_CMD_LINE,
  TextTransformationType_COMPRESS_WHITE_SPACE,
  TextTransformationType_CSS_DECODE,
  TextTransformationType_ESCAPE_SEQ_DECODE,
  TextTransformationType_HEX_DECODE,
  TextTransformationType_HTML_ENTITY_DECODE,
  TextTransformationType_JS_DECODE,
  TextTransformationType_LOWERCASE,
  TextTransformationType_MD5,
  TextTransformationType_NONE,
  TextTransformationType_NORMALIZE_PATH,
  TextTransformationType_NORMALIZE_PATH_WIN,
  TextTransformationType_REMOVE_NULLS,
  TextTransformationType_REPLACE_COMMENTS,
  TextTransformationType_REPLACE_NULLS,
  TextTransformationType_SQL_HEX_DECODE,
  TextTransformationType_URL_DECODE,
  TextTransformationType_URL_DECODE_UNI,
  TextTransformationType_UTF8_TO_UNICODE,
  TextTransformationType'
  #-}