/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.wafv2.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to * bypass detection. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class TextTransformation implements Serializable, Cloneable, StructuredPojo { /** ** Sets the relative processing order for multiple transformations. WAF processes all transformations, from lowest * priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but * they must all be different. *
*/ private Integer priority; /** ** You can specify the following transformation types: *
*
     * BASE64_DECODE - Decode a Base64-encoded string.
     * 
     * BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation that
     * ignores characters that aren't valid.
     * 
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who * inject an operating system command-line command and use unusual formatting to disguise some or all of the * command. *
*
     * Delete the following characters: \ " ' ^
     * 
     * Delete spaces before the following characters: / (
     * 
     * Replace the following characters with a space: , ;
     * 
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     * \f, formfeed, decimal 12
     * 
     * \t, tab, decimal 9
     * 
     * \n, newline, decimal 10
     * 
     * \r, carriage return, decimal 13
     * 
     * \v, vertical tab, decimal 11
     * 
* Non-breaking space, decimal 160 *
*
     * COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     * 
     * CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     * syndata.html#characters. This function uses up to two bytes in the decoding process, so it can help
     * to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be encoded. It's also
     * useful in countering evasion, which is a combination of a backslash and non-hexadecimal characters. For example,
     * ja\vascript for javascript.
     * 
     * ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     * \f, \n, \r, \t, \v, \\,
     * \?, \', \", \xHH (hexadecimal), \0OOO (octal).
     * Encodings that aren't valid remain in the output.
     * 
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     * HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     * HTML_ENTITY_DECODE performs these operations:
     * 
     * Replaces (ampersand)quot; with "
     * 
     * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     * 
     * Replaces (ampersand)lt; with a "less than" symbol
     * 
     * Replaces (ampersand)gt; with >
     * 
     * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     * corresponding characters
     * 
     * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     * corresponding characters
     * 
     * JS_DECODE - Decode JavaScript escape sequences. If a \ u HHHH code
     * is in the full-width ASCII code range of FF01-FF5E, then the higher byte is used to detect and
     * adjust the lower byte. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss
     * of information.
     * 
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     * NONE - Specify NONE if you don't want any text transformations.
     * 
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that * are not at the beginning of the input from an input string. *
*
     * NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     * characters to forward slashes.
     * 
     * REMOVE_NULLS - Remove all NULL bytes from the input.
     * 
     * REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a single
     * space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced with a space
     * (ASCII 0x20). However, a standalone termination of a comment (*/) is not acted upon.
     * 
     * REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     * 
     * SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (ABC
     * ).
     * 
* URL_DECODE - Decode a URL-encoded value. *
*
     * URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific %u
     * encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the higher byte is used to
     * detect and adjust the lower byte. Otherwise, only the lower byte is used and the higher byte is zeroed.
     * 
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and * minimizing false-positives and false-negatives for non-English languages. *
*/ private String type; /** ** Sets the relative processing order for multiple transformations. WAF processes all transformations, from lowest * priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but * they must all be different. *
* * @param priority * Sets the relative processing order for multiple transformations. WAF processes all transformations, from * lowest priority to highest, before inspecting the transformed content. The priorities don't need to be * consecutive, but they must all be different. */ public void setPriority(Integer priority) { this.priority = priority; } /** ** Sets the relative processing order for multiple transformations. WAF processes all transformations, from lowest * priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but * they must all be different. *
* * @return Sets the relative processing order for multiple transformations. WAF processes all transformations, from * lowest priority to highest, before inspecting the transformed content. The priorities don't need to be * consecutive, but they must all be different. */ public Integer getPriority() { return this.priority; } /** ** Sets the relative processing order for multiple transformations. WAF processes all transformations, from lowest * priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but * they must all be different. *
* * @param priority * Sets the relative processing order for multiple transformations. WAF processes all transformations, from * lowest priority to highest, before inspecting the transformed content. The priorities don't need to be * consecutive, but they must all be different. * @return Returns a reference to this object so that method calls can be chained together. */ public TextTransformation withPriority(Integer priority) { setPriority(priority); return this; } /** ** You can specify the following transformation types: *
*
     * BASE64_DECODE - Decode a Base64-encoded string.
     * 
     * BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation that
     * ignores characters that aren't valid.
     * 
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who * inject an operating system command-line command and use unusual formatting to disguise some or all of the * command. *
*
     * Delete the following characters: \ " ' ^
     * 
     * Delete spaces before the following characters: / (
     * 
     * Replace the following characters with a space: , ;
     * 
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     * \f, formfeed, decimal 12
     * 
     * \t, tab, decimal 9
     * 
     * \n, newline, decimal 10
     * 
     * \r, carriage return, decimal 13
     * 
     * \v, vertical tab, decimal 11
     * 
* Non-breaking space, decimal 160 *
*
     * COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     * 
     * CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     * syndata.html#characters. This function uses up to two bytes in the decoding process, so it can help
     * to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be encoded. It's also
     * useful in countering evasion, which is a combination of a backslash and non-hexadecimal characters. For example,
     * ja\vascript for javascript.
     * 
     * ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     * \f, \n, \r, \t, \v, \\,
     * \?, \', \", \xHH (hexadecimal), \0OOO (octal).
     * Encodings that aren't valid remain in the output.
     * 
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     * HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     * HTML_ENTITY_DECODE performs these operations:
     * 
     * Replaces (ampersand)quot; with "
     * 
     * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     * 
     * Replaces (ampersand)lt; with a "less than" symbol
     * 
     * Replaces (ampersand)gt; with >
     * 
     * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     * corresponding characters
     * 
     * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     * corresponding characters
     * 
     * JS_DECODE - Decode JavaScript escape sequences. If a \ u HHHH code
     * is in the full-width ASCII code range of FF01-FF5E, then the higher byte is used to detect and
     * adjust the lower byte. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss
     * of information.
     * 
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     * NONE - Specify NONE if you don't want any text transformations.
     * 
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that * are not at the beginning of the input from an input string. *
*
     * NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     * characters to forward slashes.
     * 
     * REMOVE_NULLS - Remove all NULL bytes from the input.
     * 
     * REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a single
     * space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced with a space
     * (ASCII 0x20). However, a standalone termination of a comment (*/) is not acted upon.
     * 
     * REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     * 
     * SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (ABC
     * ).
     * 
* URL_DECODE - Decode a URL-encoded value. *
*
     * URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific %u
     * encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the higher byte is used to
     * detect and adjust the lower byte. Otherwise, only the lower byte is used and the higher byte is zeroed.
     * 
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and * minimizing false-positives and false-negatives for non-English languages. *
* * @param type * You can specify the following transformation types: *
     *        BASE64_DECODE - Decode a Base64-encoded string.
     *        
     *        BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation
     *        that ignores characters that aren't valid.
     *        
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers * who inject an operating system command-line command and use unusual formatting to disguise some or all of * the command. *
*
     *        Delete the following characters: \ " ' ^
     *        
     *        Delete spaces before the following characters: / (
     *        
     *        Replace the following characters with a space: , ;
     *        
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     *        \f, formfeed, decimal 12
     *        
     *        \t, tab, decimal 9
     *        
     *        \n, newline, decimal 10
     *        
     *        \r, carriage return, decimal 13
     *        
     *        \v, vertical tab, decimal 11
     *        
* Non-breaking space, decimal 160 *
*
     *        COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     *        
     *        CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     *        syndata.html#characters. This function uses up to two bytes in the decoding process, so it
     *        can help to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be
     *        encoded. It's also useful in countering evasion, which is a combination of a backslash and non-hexadecimal
     *        characters. For example, ja\vascript for javascript.
     *        
     *        ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     *        \f, \n, \r, \t, \v, \\,
     *        \?, \', \", \xHH (hexadecimal), \0OOO
     *        (octal). Encodings that aren't valid remain in the output.
     *        
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     *        HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     *        HTML_ENTITY_DECODE performs these operations:
     *        
     *        Replaces (ampersand)quot; with "
     *        
     *        Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     *        
     *        Replaces (ampersand)lt; with a "less than" symbol
     *        
     *        Replaces (ampersand)gt; with >
     *        
     *        Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     *        corresponding characters
     *        
     *        Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     *        corresponding characters
     *        
     *        JS_DECODE - Decode JavaScript escape sequences. If a \ u
     *        HHHH code is in the full-width ASCII code range of FF01-FF5E, then the higher
     *        byte is used to detect and adjust the lower byte. If not, only the lower byte is used and the higher byte
     *        is zeroed, causing a possible loss of information.
     *        
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     *        NONE - Specify NONE if you don't want any text transformations.
     *        
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references * that are not at the beginning of the input from an input string. *
*
     *        NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     *        characters to forward slashes.
     *        
     *        REMOVE_NULLS - Remove all NULL bytes from the input.
     *        
     *        REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a
     *        single space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced
     *        with a space (ASCII 0x20). However, a standalone termination of a comment (*/) is not
     *        acted upon.
     *        
     *        REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     *        
     *        SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (
     *        ABC).
     *        
* URL_DECODE - Decode a URL-encoded value. *
*
     *        URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific
     *        %u encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the
     *        higher byte is used to detect and adjust the lower byte. Otherwise, only the lower byte is used and the
     *        higher byte is zeroed.
     *        
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, * and minimizing false-positives and false-negatives for non-English languages. * @see TextTransformationType */ public void setType(String type) { this.type = type; } /** *
* You can specify the following transformation types: *
*
     * BASE64_DECODE - Decode a Base64-encoded string.
     * 
     * BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation that
     * ignores characters that aren't valid.
     * 
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who * inject an operating system command-line command and use unusual formatting to disguise some or all of the * command. *
*
     * Delete the following characters: \ " ' ^
     * 
     * Delete spaces before the following characters: / (
     * 
     * Replace the following characters with a space: , ;
     * 
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     * \f, formfeed, decimal 12
     * 
     * \t, tab, decimal 9
     * 
     * \n, newline, decimal 10
     * 
     * \r, carriage return, decimal 13
     * 
     * \v, vertical tab, decimal 11
     * 
* Non-breaking space, decimal 160 *
*
     * COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     * 
     * CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     * syndata.html#characters. This function uses up to two bytes in the decoding process, so it can help
     * to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be encoded. It's also
     * useful in countering evasion, which is a combination of a backslash and non-hexadecimal characters. For example,
     * ja\vascript for javascript.
     * 
     * ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     * \f, \n, \r, \t, \v, \\,
     * \?, \', \", \xHH (hexadecimal), \0OOO (octal).
     * Encodings that aren't valid remain in the output.
     * 
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     * HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     * HTML_ENTITY_DECODE performs these operations:
     * 
     * Replaces (ampersand)quot; with "
     * 
     * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     * 
     * Replaces (ampersand)lt; with a "less than" symbol
     * 
     * Replaces (ampersand)gt; with >
     * 
     * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     * corresponding characters
     * 
     * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     * corresponding characters
     * 
     * JS_DECODE - Decode JavaScript escape sequences. If a \ u HHHH code
     * is in the full-width ASCII code range of FF01-FF5E, then the higher byte is used to detect and
     * adjust the lower byte. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss
     * of information.
     * 
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     * NONE - Specify NONE if you don't want any text transformations.
     * 
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that * are not at the beginning of the input from an input string. *
*
     * NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     * characters to forward slashes.
     * 
     * REMOVE_NULLS - Remove all NULL bytes from the input.
     * 
     * REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a single
     * space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced with a space
     * (ASCII 0x20). However, a standalone termination of a comment (*/) is not acted upon.
     * 
     * REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     * 
     * SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (ABC
     * ).
     * 
* URL_DECODE - Decode a URL-encoded value. *
*
     * URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific %u
     * encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the higher byte is used to
     * detect and adjust the lower byte. Otherwise, only the lower byte is used and the higher byte is zeroed.
     * 
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and * minimizing false-positives and false-negatives for non-English languages. *
* * @return You can specify the following transformation types: *
     *         BASE64_DECODE - Decode a Base64-encoded string.
     *         
     *         BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving
     *         implementation that ignores characters that aren't valid.
     *         
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers * who inject an operating system command-line command and use unusual formatting to disguise some or all of * the command. *
*
     *         Delete the following characters: \ " ' ^
     *         
     *         Delete spaces before the following characters: / (
     *         
     *         Replace the following characters with a space: , ;
     *         
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     *         \f, formfeed, decimal 12
     *         
     *         \t, tab, decimal 9
     *         
     *         \n, newline, decimal 10
     *         
     *         \r, carriage return, decimal 13
     *         
     *         \v, vertical tab, decimal 11
     *         
* Non-breaking space, decimal 160 *
*
     *         COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     *         
     *         CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     *         syndata.html#characters. This function uses up to two bytes in the decoding process, so it
     *         can help to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be
     *         encoded. It's also useful in countering evasion, which is a combination of a backslash and
     *         non-hexadecimal characters. For example, ja\vascript for javascript.
     *         
     *         ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b, \f, \n, \r, \t, \v, \\,
     *         \?, \', \", \xHH (hexadecimal), \0OOO
     *         (octal). Encodings that aren't valid remain in the output.
     *         
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     *         HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     *         HTML_ENTITY_DECODE performs these operations:
     *         
     *         Replaces (ampersand)quot; with "
     *         
     *         Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     *         
     *         Replaces (ampersand)lt; with a "less than" symbol
     *         
     *         Replaces (ampersand)gt; with >
     *         
     *         Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     *         corresponding characters
     *         
     *         Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     *         corresponding characters
     *         
     *         JS_DECODE - Decode JavaScript escape sequences. If a \ u
     *         HHHH code is in the full-width ASCII code range of FF01-FF5E, then the higher
     *         byte is used to detect and adjust the lower byte. If not, only the lower byte is used and the higher byte
     *         is zeroed, causing a possible loss of information.
     *         
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     *         NONE - Specify NONE if you don't want any text transformations.
     *         
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references * that are not at the beginning of the input from an input string. *
*
     *         NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     *         characters to forward slashes.
     *         
     *         REMOVE_NULLS - Remove all NULL bytes from the input.
     *         
     *         REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with
     *         a single space. Multiple consecutive occurrences are not compressed. Unterminated comments are also
     *         replaced with a space (ASCII 0x20). However, a standalone termination of a comment (*/)
     *         is not acted upon.
     *         
     *         REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     *         
     *         SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (
     *         ABC).
     *         
* URL_DECODE - Decode a URL-encoded value. *
*
     *         URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific
     *         %u encoding. If the code is in the full-width ASCII code range of FF01-FF5E,
     *         the higher byte is used to detect and adjust the lower byte. Otherwise, only the lower byte is used and
     *         the higher byte is zeroed.
     *         
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input * normalization, and minimizing false-positives and false-negatives for non-English languages. * @see TextTransformationType */ public String getType() { return this.type; } /** *
* You can specify the following transformation types: *
*
     * BASE64_DECODE - Decode a Base64-encoded string.
     * 
     * BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation that
     * ignores characters that aren't valid.
     * 
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who * inject an operating system command-line command and use unusual formatting to disguise some or all of the * command. *
*
     * Delete the following characters: \ " ' ^
     * 
     * Delete spaces before the following characters: / (
     * 
     * Replace the following characters with a space: , ;
     * 
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     * \f, formfeed, decimal 12
     * 
     * \t, tab, decimal 9
     * 
     * \n, newline, decimal 10
     * 
     * \r, carriage return, decimal 13
     * 
     * \v, vertical tab, decimal 11
     * 
* Non-breaking space, decimal 160 *
*
     * COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     * 
     * CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     * syndata.html#characters. This function uses up to two bytes in the decoding process, so it can help
     * to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be encoded. It's also
     * useful in countering evasion, which is a combination of a backslash and non-hexadecimal characters. For example,
     * ja\vascript for javascript.
     * 
     * ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     * \f, \n, \r, \t, \v, \\,
     * \?, \', \", \xHH (hexadecimal), \0OOO (octal).
     * Encodings that aren't valid remain in the output.
     * 
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     * HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     * HTML_ENTITY_DECODE performs these operations:
     * 
     * Replaces (ampersand)quot; with "
     * 
     * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     * 
     * Replaces (ampersand)lt; with a "less than" symbol
     * 
     * Replaces (ampersand)gt; with >
     * 
     * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     * corresponding characters
     * 
     * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     * corresponding characters
     * 
     * JS_DECODE - Decode JavaScript escape sequences. If a \ u HHHH code
     * is in the full-width ASCII code range of FF01-FF5E, then the higher byte is used to detect and
     * adjust the lower byte. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss
     * of information.
     * 
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     * NONE - Specify NONE if you don't want any text transformations.
     * 
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that * are not at the beginning of the input from an input string. *
*
     * NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     * characters to forward slashes.
     * 
     * REMOVE_NULLS - Remove all NULL bytes from the input.
     * 
     * REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a single
     * space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced with a space
     * (ASCII 0x20). However, a standalone termination of a comment (*/) is not acted upon.
     * 
     * REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     * 
     * SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (ABC
     * ).
     * 
* URL_DECODE - Decode a URL-encoded value. *
*
     * URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific %u
     * encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the higher byte is used to
     * detect and adjust the lower byte. Otherwise, only the lower byte is used and the higher byte is zeroed.
     * 
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and * minimizing false-positives and false-negatives for non-English languages. *
* * @param type * You can specify the following transformation types: *
     *        BASE64_DECODE - Decode a Base64-encoded string.
     *        
     *        BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation
     *        that ignores characters that aren't valid.
     *        
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers * who inject an operating system command-line command and use unusual formatting to disguise some or all of * the command. *
*
     *        Delete the following characters: \ " ' ^
     *        
     *        Delete spaces before the following characters: / (
     *        
     *        Replace the following characters with a space: , ;
     *        
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     *        \f, formfeed, decimal 12
     *        
     *        \t, tab, decimal 9
     *        
     *        \n, newline, decimal 10
     *        
     *        \r, carriage return, decimal 13
     *        
     *        \v, vertical tab, decimal 11
     *        
* Non-breaking space, decimal 160 *
*
     *        COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     *        
     *        CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     *        syndata.html#characters. This function uses up to two bytes in the decoding process, so it
     *        can help to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be
     *        encoded. It's also useful in countering evasion, which is a combination of a backslash and non-hexadecimal
     *        characters. For example, ja\vascript for javascript.
     *        
     *        ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     *        \f, \n, \r, \t, \v, \\,
     *        \?, \', \", \xHH (hexadecimal), \0OOO
     *        (octal). Encodings that aren't valid remain in the output.
     *        
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     *        HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     *        HTML_ENTITY_DECODE performs these operations:
     *        
     *        Replaces (ampersand)quot; with "
     *        
     *        Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     *        
     *        Replaces (ampersand)lt; with a "less than" symbol
     *        
     *        Replaces (ampersand)gt; with >
     *        
     *        Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     *        corresponding characters
     *        
     *        Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     *        corresponding characters
     *        
     *        JS_DECODE - Decode JavaScript escape sequences. If a \ u
     *        HHHH code is in the full-width ASCII code range of FF01-FF5E, then the higher
     *        byte is used to detect and adjust the lower byte. If not, only the lower byte is used and the higher byte
     *        is zeroed, causing a possible loss of information.
     *        
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     *        NONE - Specify NONE if you don't want any text transformations.
     *        
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references * that are not at the beginning of the input from an input string. *
*
     *        NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     *        characters to forward slashes.
     *        
     *        REMOVE_NULLS - Remove all NULL bytes from the input.
     *        
     *        REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a
     *        single space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced
     *        with a space (ASCII 0x20). However, a standalone termination of a comment (*/) is not
     *        acted upon.
     *        
     *        REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     *        
     *        SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (
     *        ABC).
     *        
* URL_DECODE - Decode a URL-encoded value. *
*
     *        URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific
     *        %u encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the
     *        higher byte is used to detect and adjust the lower byte. Otherwise, only the lower byte is used and the
     *        higher byte is zeroed.
     *        
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, * and minimizing false-positives and false-negatives for non-English languages. * @return Returns a reference to this object so that method calls can be chained together. * @see TextTransformationType */ public TextTransformation withType(String type) { setType(type); return this; } /** *
* You can specify the following transformation types: *
*
     * BASE64_DECODE - Decode a Base64-encoded string.
     * 
     * BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation that
     * ignores characters that aren't valid.
     * 
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who * inject an operating system command-line command and use unusual formatting to disguise some or all of the * command. *
*
     * Delete the following characters: \ " ' ^
     * 
     * Delete spaces before the following characters: / (
     * 
     * Replace the following characters with a space: , ;
     * 
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     * \f, formfeed, decimal 12
     * 
     * \t, tab, decimal 9
     * 
     * \n, newline, decimal 10
     * 
     * \r, carriage return, decimal 13
     * 
     * \v, vertical tab, decimal 11
     * 
* Non-breaking space, decimal 160 *
*
     * COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     * 
     * CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     * syndata.html#characters. This function uses up to two bytes in the decoding process, so it can help
     * to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be encoded. It's also
     * useful in countering evasion, which is a combination of a backslash and non-hexadecimal characters. For example,
     * ja\vascript for javascript.
     * 
     * ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     * \f, \n, \r, \t, \v, \\,
     * \?, \', \", \xHH (hexadecimal), \0OOO (octal).
     * Encodings that aren't valid remain in the output.
     * 
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     * HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     * HTML_ENTITY_DECODE performs these operations:
     * 
     * Replaces (ampersand)quot; with "
     * 
     * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     * 
     * Replaces (ampersand)lt; with a "less than" symbol
     * 
     * Replaces (ampersand)gt; with >
     * 
     * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     * corresponding characters
     * 
     * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     * corresponding characters
     * 
     * JS_DECODE - Decode JavaScript escape sequences. If a \ u HHHH code
     * is in the full-width ASCII code range of FF01-FF5E, then the higher byte is used to detect and
     * adjust the lower byte. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss
     * of information.
     * 
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     * NONE - Specify NONE if you don't want any text transformations.
     * 
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that * are not at the beginning of the input from an input string. *
*
     * NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     * characters to forward slashes.
     * 
     * REMOVE_NULLS - Remove all NULL bytes from the input.
     * 
     * REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a single
     * space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced with a space
     * (ASCII 0x20). However, a standalone termination of a comment (*/) is not acted upon.
     * 
     * REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     * 
     * SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (ABC
     * ).
     * 
* URL_DECODE - Decode a URL-encoded value. *
*
     * URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific %u
     * encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the higher byte is used to
     * detect and adjust the lower byte. Otherwise, only the lower byte is used and the higher byte is zeroed.
     * 
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and * minimizing false-positives and false-negatives for non-English languages. *
* * @param type * You can specify the following transformation types: *
     *        BASE64_DECODE - Decode a Base64-encoded string.
     *        
     *        BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation
     *        that ignores characters that aren't valid.
     *        
* CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers * who inject an operating system command-line command and use unusual formatting to disguise some or all of * the command. *
*
     *        Delete the following characters: \ " ' ^
     *        
     *        Delete spaces before the following characters: / (
     *        
     *        Replace the following characters with a space: , ;
     *        
* Replace multiple spaces with one space *
** Convert uppercase letters (A-Z) to lowercase (a-z) *
** COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 32): *
*
     *        \f, formfeed, decimal 12
     *        
     *        \t, tab, decimal 9
     *        
     *        \n, newline, decimal 10
     *        
     *        \r, carriage return, decimal 13
     *        
     *        \v, vertical tab, decimal 11
     *        
* Non-breaking space, decimal 160 *
*
     *        COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
     *        
     *        CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
     *        syndata.html#characters. This function uses up to two bytes in the decoding process, so it
     *        can help to uncover ASCII characters that were encoded using CSS encoding that wouldn’t typically be
     *        encoded. It's also useful in countering evasion, which is a combination of a backslash and non-hexadecimal
     *        characters. For example, ja\vascript for javascript.
     *        
     *        ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b,
     *        \f, \n, \r, \t, \v, \\,
     *        \?, \', \", \xHH (hexadecimal), \0OOO
     *        (octal). Encodings that aren't valid remain in the output.
     *        
* HEX_DECODE - Decode a string of hexadecimal characters into a binary. *
*
     *        HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
     *        HTML_ENTITY_DECODE performs these operations:
     *        
     *        Replaces (ampersand)quot; with "
     *        
     *        Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
     *        
     *        Replaces (ampersand)lt; with a "less than" symbol
     *        
     *        Replaces (ampersand)gt; with >
     *        
     *        Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, with the
     *        corresponding characters
     *        
     *        Replaces characters that are represented in decimal format, (ampersand)#nnnn;, with the
     *        corresponding characters
     *        
     *        JS_DECODE - Decode JavaScript escape sequences. If a \ u
     *        HHHH code is in the full-width ASCII code range of FF01-FF5E, then the higher
     *        byte is used to detect and adjust the lower byte. If not, only the lower byte is used and the higher byte
     *        is zeroed, causing a possible loss of information.
     *        
* LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). *
** MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form. *
*
     *        NONE - Specify NONE if you don't want any text transformations.
     *        
* NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references * that are not at the beginning of the input from an input string. *
*
     *        NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts backslash
     *        characters to forward slashes.
     *        
     *        REMOVE_NULLS - Remove all NULL bytes from the input.
     *        
     *        REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) with a
     *        single space. Multiple consecutive occurrences are not compressed. Unterminated comments are also replaced
     *        with a space (ASCII 0x20). However, a standalone termination of a comment (*/) is not
     *        acted upon.
     *        
     *        REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 0x20).
     *        
     *        SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded to (
     *        ABC).
     *        
* URL_DECODE - Decode a URL-encoded value. *
*
     *        URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific
     *        %u encoding. If the code is in the full-width ASCII code range of FF01-FF5E, the
     *        higher byte is used to detect and adjust the lower byte. Otherwise, only the lower byte is used and the
     *        higher byte is zeroed.
     *        
* UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, * and minimizing false-positives and false-negatives for non-English languages. * @return Returns a reference to this object so that method calls can be chained together. * @see TextTransformationType */ public TextTransformation withType(TextTransformationType type) { this.type = type.toString(); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getPriority() != null) sb.append("Priority: ").append(getPriority()).append(","); if (getType() != null) sb.append("Type: ").append(getType()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof TextTransformation == false) return false; TextTransformation other = (TextTransformation) obj; if (other.getPriority() == null ^ this.getPriority() == null) return false; if (other.getPriority() != null && other.getPriority().equals(this.getPriority()) == false) return false; if (other.getType() == null ^ this.getType() == null) return false; if (other.getType() != null && other.getType().equals(this.getType()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getPriority() == null) ? 0 : getPriority().hashCode()); hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode()); return hashCode; } @Override public TextTransformation clone() { try { return (TextTransformation) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.wafv2.model.transform.TextTransformationMarshaller.getInstance().marshall(this, protocolMarshaller); } }