/* * 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. /// /// /// /// The bytes (typically a string that corresponds with ASCII characters) that you want /// AWS WAF to search for in web requests, the location in requests that you want AWS /// WAF to search, and other settings. /// /// public partial class ByteMatchTuple { private FieldToMatch _fieldToMatch; private PositionalConstraint _positionalConstraint; private MemoryStream _targetStream; private TextTransformation _textTransformation; /// /// Gets and sets the property FieldToMatch. /// /// The part of a web request that you want AWS WAF to search, such as a specified header /// or a query string. For more information, see FieldToMatch. /// /// [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 PositionalConstraint. /// /// Within the portion of a web request that you want to search (for example, in the query /// string, if any), specify where you want AWS WAF to search. Valid values include the /// following: /// /// /// /// CONTAINS /// /// /// /// The specified part of the web request must include the value of TargetString, /// but the location doesn't matter. /// /// /// /// CONTAINS_WORD /// /// /// /// The specified part of the web request must include the value of TargetString, /// and TargetString must contain only alphanumeric characters or underscore /// (A-Z, a-z, 0-9, or _). In addition, TargetString must be a word, which /// means one of the following: /// /// /// /// EXACTLY /// /// /// /// The value of the specified part of the web request must exactly match the value of /// TargetString. /// /// /// /// STARTS_WITH /// /// /// /// The value of TargetString must appear at the beginning of the specified /// part of the web request. /// /// /// /// ENDS_WITH /// /// /// /// The value of TargetString must appear at the end of the specified part /// of the web request. /// /// [AWSProperty(Required=true)] public PositionalConstraint PositionalConstraint { get { return this._positionalConstraint; } set { this._positionalConstraint = value; } } // Check to see if PositionalConstraint property is set internal bool IsSetPositionalConstraint() { return this._positionalConstraint != null; } /// /// Gets and sets the property TargetStream. /// /// The value that you want AWS WAF to search for. AWS WAF searches for the specified /// string in the part of web requests that you specified in FieldToMatch. /// The maximum length of the value is 50 bytes. /// /// /// /// Valid values depend on the values that you specified for FieldToMatch: /// /// /// /// If TargetString includes alphabetic characters A-Z and a-z, note that /// the value is case sensitive. /// /// /// /// If you're using the AWS WAF API /// /// /// /// Specify a base64-encoded version of the value. The maximum length of the value before /// you base64-encode it is 50 bytes. /// /// /// /// For example, suppose the value of Type is HEADER and the /// value of Data is User-Agent. If you want to search the User-Agent /// header for the value BadBot, you base64-encode BadBot using /// MIME base64-encoding and include the resulting value, QmFkQm90, in the /// value of TargetString. /// /// /// /// If you're using the AWS CLI or one of the AWS SDKs /// /// /// /// The value that you want AWS WAF to search for. The SDK automatically base64 encodes /// the value. /// /// public MemoryStream TargetStream { get { return this._targetStream; } set { this._targetStream = value; } } // Check to see if TargetStream property is set internal bool IsSetTargetStream() { return this._targetStream != null; } /// /// 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. /// /// /// /// 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. /// /// /// /// NONE /// /// /// /// Specify NONE if you don't want to perform any text transformations. /// /// [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; } } }