/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the wafv2-2019-07-29.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.WAFV2.Model { /// /// Text transformations eliminate some of the unusual formatting that attackers use in /// web requests in an effort to bypass detection. /// public partial class TextTransformation { private int? _priority; private TextTransformationType _type; /// /// Gets and sets the property 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. /// /// /// [AWSProperty(Required=true, Min=0)] public int Priority { get { return this._priority.GetValueOrDefault(); } set { this._priority = value; } } // Check to see if Priority property is set internal bool IsSetPriority() { return this._priority.HasValue; } /// /// Gets and sets the property 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. /// /// /// /// COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal /// 32): /// /// /// /// 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: /// /// /// /// 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. /// /// [AWSProperty(Required=true)] public TextTransformationType Type { get { return this._type; } set { this._type = value; } } // Check to see if Type property is set internal bool IsSetType() { return this._type != null; } } }