/* * 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 { /// /// A rule statement used to run the rules that are defined in a managed rule group. To /// use this, provide the vendor name and the name of the rule group in this statement. /// You can retrieve the required names by calling ListAvailableManagedRuleGroups. /// /// /// /// You cannot nest a ManagedRuleGroupStatement, for example for use inside /// a NotStatement or OrStatement. It can only be referenced /// as a top-level statement within a rule. /// /// /// /// You are charged additional fees when you use the WAF Bot Control managed rule group /// AWSManagedRulesBotControlRuleSet, the WAF Fraud Control account takeover /// prevention (ATP) managed rule group AWSManagedRulesATPRuleSet, or the /// WAF Fraud Control account creation fraud prevention (ACFP) managed rule group AWSManagedRulesACFPRuleSet. /// For more information, see WAF Pricing. /// /// /// public partial class ManagedRuleGroupStatement { private List _excludedRules = new List(); private List _managedRuleGroupConfigs = new List(); private string _name; private List _ruleActionOverrides = new List(); private Statement _scopeDownStatement; private string _vendorName; private string _version; /// /// Gets and sets the property ExcludedRules. /// /// Rules in the referenced rule group whose actions are set to Count. /// /// /// /// Instead of this option, use RuleActionOverrides. It accepts any valid /// action setting, including Count. /// /// /// [AWSProperty(Max=100)] public List ExcludedRules { get { return this._excludedRules; } set { this._excludedRules = value; } } // Check to see if ExcludedRules property is set internal bool IsSetExcludedRules() { return this._excludedRules != null && this._excludedRules.Count > 0; } /// /// Gets and sets the property ManagedRuleGroupConfigs. /// /// Additional information that's used by a managed rule group. Many managed rule groups /// don't require this. /// /// /// /// The rule groups used for intelligent threat mitigation require additional configuration: /// /// ///
  • /// /// Use the AWSManagedRulesACFPRuleSet configuration object to configure /// the account creation fraud prevention managed rule group. The configuration includes /// the registration and sign-up pages of your application and the locations in the account /// creation request payload of data, such as the user email and phone number fields. /// /// ///
  • /// /// Use the AWSManagedRulesATPRuleSet configuration object to configure the /// account takeover prevention managed rule group. The configuration includes the sign-in /// page of your application and the locations in the login request payload of data such /// as the username and password. /// ///
  • /// /// Use the AWSManagedRulesBotControlRuleSet configuration object to configure /// the protection level that you want the Bot Control rule group to use. /// ///
///
public List ManagedRuleGroupConfigs { get { return this._managedRuleGroupConfigs; } set { this._managedRuleGroupConfigs = value; } } // Check to see if ManagedRuleGroupConfigs property is set internal bool IsSetManagedRuleGroupConfigs() { return this._managedRuleGroupConfigs != null && this._managedRuleGroupConfigs.Count > 0; } /// /// Gets and sets the property Name. /// /// The name of the managed rule group. You use this, along with the vendor name, to identify /// the rule group. /// /// [AWSProperty(Required=true, Min=1, Max=128)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property RuleActionOverrides. /// /// Action settings to use in the place of the rule actions that are configured inside /// the rule group. You specify one override for each rule whose action you want to change. /// /// /// /// /// You can use overrides for testing, for example you can override all of rule actions /// to Count and then monitor the resulting count metrics to understand how /// the rule group would handle your web traffic. You can also permanently override some /// or all actions, to modify how the rule group manages your web traffic. /// /// [AWSProperty(Min=1, Max=100)] public List RuleActionOverrides { get { return this._ruleActionOverrides; } set { this._ruleActionOverrides = value; } } // Check to see if RuleActionOverrides property is set internal bool IsSetRuleActionOverrides() { return this._ruleActionOverrides != null && this._ruleActionOverrides.Count > 0; } /// /// Gets and sets the property ScopeDownStatement. /// /// An optional nested statement that narrows the scope of the web requests that are evaluated /// by the managed rule group. Requests are only evaluated by the rule group if they match /// the scope-down statement. You can use any nestable Statement in the scope-down /// statement, and you can nest statements at any level, the same as you can for a rule /// statement. /// /// public Statement ScopeDownStatement { get { return this._scopeDownStatement; } set { this._scopeDownStatement = value; } } // Check to see if ScopeDownStatement property is set internal bool IsSetScopeDownStatement() { return this._scopeDownStatement != null; } /// /// Gets and sets the property VendorName. /// /// The name of the managed rule group vendor. You use this, along with the rule group /// name, to identify a rule group. /// /// [AWSProperty(Required=true, Min=1, Max=128)] public string VendorName { get { return this._vendorName; } set { this._vendorName = value; } } // Check to see if VendorName property is set internal bool IsSetVendorName() { return this._vendorName != null; } /// /// Gets and sets the property Version. /// /// The version of the managed rule group to use. If you specify this, the version setting /// is fixed until you change it. If you don't specify this, WAF uses the vendor's default /// version, and then keeps the version at the vendor's default when the vendor updates /// the managed rule group settings. /// /// [AWSProperty(Min=1, Max=64)] public string Version { get { return this._version; } set { this._version = value; } } // Check to see if Version property is set internal bool IsSetVersion() { return this._version != null; } } }