/* * 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 waf-2015-08-24.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.WAF.Model { /// /// /// /// This is AWS WAF Classic documentation. For more information, see AWS /// WAF Classic in the developer guide. /// /// /// /// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS /// WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints /// for regional and global use. /// /// /// /// Specifies a constraint on the size of a part of the web request. AWS WAF uses the /// Size, ComparisonOperator, and FieldToMatch /// to build an expression in the form of "Size ComparisonOperator /// size in bytes of FieldToMatch". If that expression is true, the SizeConstraint /// is considered to match. /// /// public partial class SizeConstraint { private ComparisonOperator _comparisonOperator; private FieldToMatch _fieldToMatch; private long? _size; private TextTransformation _textTransformation; /// /// Gets and sets the property ComparisonOperator. /// /// The type of comparison you want AWS WAF to perform. AWS WAF uses this in combination /// with the provided Size and FieldToMatch to build an expression /// in the form of "Size ComparisonOperator size in bytes of /// FieldToMatch". If that expression is true, the SizeConstraint /// is considered to match. /// /// /// /// EQ: Used to test if the Size is equal to the size of the FieldToMatch /// /// /// /// /// NE: Used to test if the Size is not equal to the size of the /// FieldToMatch /// /// /// /// LE: Used to test if the Size is less than or equal to the size /// of the FieldToMatch /// /// /// /// LT: Used to test if the Size is strictly less than the size of /// the FieldToMatch /// /// /// /// GE: Used to test if the Size is greater than or equal to the /// size of the FieldToMatch /// /// /// /// GT: Used to test if the Size is strictly greater than the size /// of the FieldToMatch /// /// [AWSProperty(Required=true)] public ComparisonOperator ComparisonOperator { get { return this._comparisonOperator; } set { this._comparisonOperator = value; } } // Check to see if ComparisonOperator property is set internal bool IsSetComparisonOperator() { return this._comparisonOperator != null; } /// /// Gets and sets the property FieldToMatch. /// /// Specifies where in a web request to look for the size constraint. /// /// [AWSProperty(Required=true)] public FieldToMatch FieldToMatch { get { return this._fieldToMatch; } set { this._fieldToMatch = value; } } // Check to see if FieldToMatch property is set internal bool IsSetFieldToMatch() { return this._fieldToMatch != null; } /// /// Gets and sets the property Size. /// /// The size in bytes that you want AWS WAF to compare against the size of the specified /// FieldToMatch. AWS WAF uses this in combination with ComparisonOperator /// and FieldToMatch to build an expression in the form of "Size /// ComparisonOperator size in bytes of FieldToMatch". If that /// expression is true, the SizeConstraint is considered to match. /// /// /// /// Valid values for size are 0 - 21474836480 bytes (0 - 20 GB). /// /// /// /// If you specify URI for the value of Type, the / in the URI /// counts as one character. For example, the URI /logo.jpg is nine characters /// long. /// /// [AWSProperty(Required=true, Min=0, Max=21474836480)] public long Size { get { return this._size.GetValueOrDefault(); } set { this._size = value; } } // Check to see if Size property is set internal bool IsSetSize() { return this._size.HasValue; } /// /// Gets and sets the property TextTransformation. /// /// Text transformations eliminate some of the unusual formatting that attackers use in /// web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS /// WAF performs the transformation on FieldToMatch before inspecting it /// for a match. /// /// /// /// You can only specify a single type of TextTransformation. /// /// /// /// Note that if you choose BODY for the value of Type, you /// must choose NONE for TextTransformation because CloudFront /// forwards only the first 8192 bytes for inspection. /// /// /// /// NONE /// /// /// /// Specify NONE if you don't want to perform any text transformations. /// /// /// /// CMD_LINE /// /// /// /// When you're concerned that attackers are injecting an operating system command line /// command and using unusual formatting to disguise some or all of the command, use this /// option to perform the following transformations: /// /// /// /// COMPRESS_WHITE_SPACE /// /// /// /// Use this option to replace the following characters with a space character (decimal /// 32): /// /// /// /// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. /// /// /// /// HTML_ENTITY_DECODE /// /// /// /// Use this option to replace HTML-encoded characters with unencoded characters. HTML_ENTITY_DECODE /// performs the following operations: /// /// /// /// LOWERCASE /// /// /// /// Use this option to convert uppercase letters (A-Z) to lowercase (a-z). /// /// /// /// URL_DECODE /// /// /// /// Use this option to decode a URL-encoded value. /// /// [AWSProperty(Required=true)] public TextTransformation TextTransformation { get { return this._textTransformation; } set { this._textTransformation = value; } } // Check to see if TextTransformation property is set internal bool IsSetTextTransformation() { return this._textTransformation != null; } } }