/* * 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 { /// /// Container for the parameters to the UpdateWebACL operation. /// /// /// 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. /// /// /// /// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule /// identifies web requests that you want to allow, block, or count. When you update a /// WebACL, you specify the following values: /// /// /// /// To create and configure a WebACL, perform the following steps: /// ///
  1. /// /// Create and update the predicates that you want to include in Rules. For /// more information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, /// UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. /// ///
  2. /// /// Create and update the Rules that you want to include in the WebACL. /// For more information, see CreateRule and UpdateRule. /// ///
  3. /// /// Create a WebACL. See CreateWebACL. /// ///
  4. /// /// Use GetChangeToken to get the change token that you provide in the ChangeToken /// parameter of an UpdateWebACL request. /// ///
  5. /// /// Submit an UpdateWebACL request to specify the Rules that /// you want to include in the WebACL, to specify the default action, and /// to associate the WebACL with a CloudFront distribution. /// /// /// /// The ActivatedRule can be a rule group. If you specify a rule group as /// your ActivatedRule , you can exclude specific rules from that rule group. /// /// /// /// If you already have a rule group associated with a web ACL and want to submit an UpdateWebACL /// request to exclude certain rules from that rule group, you must first remove the rule /// group from the web ACL, the re-insert it again, specifying the excluded rules. For /// details, see ActivatedRule$ExcludedRules . /// ///
/// /// Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the /// rule type when first creating the rule, the UpdateWebACL request will fail /// because the request tries to add a REGULAR rule (the default rule type) with the specified /// ID, which does not exist. /// /// /// /// For more information about how to use the AWS WAF API to allow or block HTTP requests, /// see the AWS WAF Developer /// Guide. /// ///
public partial class UpdateWebACLRequest : AmazonWAFRequest { private string _changeToken; private WafAction _defaultAction; private List _updates = new List(); private string _webACLId; /// /// Gets and sets the property ChangeToken. /// /// The value returned by the most recent call to GetChangeToken. /// /// [AWSProperty(Required=true, Min=1, Max=128)] public string ChangeToken { get { return this._changeToken; } set { this._changeToken = value; } } // Check to see if ChangeToken property is set internal bool IsSetChangeToken() { return this._changeToken != null; } /// /// Gets and sets the property DefaultAction. /// /// A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default /// action if a request doesn't match the criteria in any of the rules in a web ACL. /// /// public WafAction DefaultAction { get { return this._defaultAction; } set { this._defaultAction = value; } } // Check to see if DefaultAction property is set internal bool IsSetDefaultAction() { return this._defaultAction != null; } /// /// Gets and sets the property Updates. /// /// An array of updates to make to the WebACL. /// /// /// /// An array of WebACLUpdate objects that you want to insert into or delete /// from a WebACL. For more information, see the applicable data types: /// ///
  • /// /// WebACLUpdate: Contains Action and ActivatedRule /// /// ///
  • /// /// ActivatedRule: Contains Action, OverrideAction, /// Priority, RuleId, and Type. ActivatedRule|OverrideAction /// applies only when updating or adding a RuleGroup to a WebACL. /// In this case, you do not use ActivatedRule|Action. For all other update /// requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction. /// /// ///
  • /// /// WafAction: Contains Type /// ///
///
public List Updates { get { return this._updates; } set { this._updates = value; } } // Check to see if Updates property is set internal bool IsSetUpdates() { return this._updates != null && this._updates.Count > 0; } /// /// Gets and sets the property WebACLId. /// /// The WebACLId of the WebACL that you want to update. WebACLId /// is returned by CreateWebACL and by ListWebACLs. /// /// [AWSProperty(Required=true, Min=1, Max=128)] public string WebACLId { get { return this._webACLId; } set { this._webACLId = value; } } // Check to see if WebACLId property is set internal bool IsSetWebACLId() { return this._webACLId != null; } } }