/*
* 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;
}
}
}