/*
* 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
{
///
/// 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.
///
///
///
/// For example specifications, see the examples section of CreateWebACL.
///
///
public partial class ManagedRuleGroupConfig
{
private AWSManagedRulesACFPRuleSet _awsManagedRulesACFPRuleSet;
private AWSManagedRulesATPRuleSet _awsManagedRulesATPRuleSet;
private AWSManagedRulesBotControlRuleSet _awsManagedRulesBotControlRuleSet;
private string _loginPath;
private PasswordField _passwordField;
private PayloadType _payloadType;
private UsernameField _usernameField;
///
/// Gets and sets the property AWSManagedRulesACFPRuleSet.
///
/// Additional configuration for using the account creation fraud prevention (ACFP) managed
/// rule group, AWSManagedRulesACFPRuleSet
. Use this to provide account creation
/// request information to the rule group. For web ACLs that protect CloudFront distributions,
/// use this to also provide the information about how your distribution responds to account
/// creation requests.
///
///
///
/// For information about using the ACFP managed rule group, see WAF
/// Fraud Control account creation fraud prevention (ACFP) rule group and WAF
/// Fraud Control account creation fraud prevention (ACFP) in the WAF Developer
/// Guide.
///
///
public AWSManagedRulesACFPRuleSet AWSManagedRulesACFPRuleSet
{
get { return this._awsManagedRulesACFPRuleSet; }
set { this._awsManagedRulesACFPRuleSet = value; }
}
// Check to see if AWSManagedRulesACFPRuleSet property is set
internal bool IsSetAWSManagedRulesACFPRuleSet()
{
return this._awsManagedRulesACFPRuleSet != null;
}
///
/// Gets and sets the property AWSManagedRulesATPRuleSet.
///
/// Additional configuration for using the account takeover prevention (ATP) managed rule
/// group, AWSManagedRulesATPRuleSet
. Use this to provide login request information
/// to the rule group. For web ACLs that protect CloudFront distributions, use this to
/// also provide the information about how your distribution responds to login requests.
///
///
///
///
/// This configuration replaces the individual configuration fields in ManagedRuleGroupConfig
/// and provides additional feature configuration.
///
///
///
/// For information about using the ATP managed rule group, see WAF
/// Fraud Control account takeover prevention (ATP) rule group and WAF
/// Fraud Control account takeover prevention (ATP) in the WAF Developer Guide.
///
///
public AWSManagedRulesATPRuleSet AWSManagedRulesATPRuleSet
{
get { return this._awsManagedRulesATPRuleSet; }
set { this._awsManagedRulesATPRuleSet = value; }
}
// Check to see if AWSManagedRulesATPRuleSet property is set
internal bool IsSetAWSManagedRulesATPRuleSet()
{
return this._awsManagedRulesATPRuleSet != null;
}
///
/// Gets and sets the property AWSManagedRulesBotControlRuleSet.
///
/// Additional configuration for using the Bot Control managed rule group. Use this to
/// specify the inspection level that you want to use. For information about using the
/// Bot Control managed rule group, see WAF
/// Bot Control rule group and WAF
/// Bot Control in the WAF Developer Guide.
///
///
public AWSManagedRulesBotControlRuleSet AWSManagedRulesBotControlRuleSet
{
get { return this._awsManagedRulesBotControlRuleSet; }
set { this._awsManagedRulesBotControlRuleSet = value; }
}
// Check to see if AWSManagedRulesBotControlRuleSet property is set
internal bool IsSetAWSManagedRulesBotControlRuleSet()
{
return this._awsManagedRulesBotControlRuleSet != null;
}
///
/// Gets and sets the property LoginPath.
///
/// Instead of this setting, provide your configuration under AWSManagedRulesATPRuleSet
.
///
///
///
///
[Obsolete("Deprecated. Use AWSManagedRulesATPRuleSet LoginPath")]
[AWSProperty(Min=1, Max=256)]
public string LoginPath
{
get { return this._loginPath; }
set { this._loginPath = value; }
}
// Check to see if LoginPath property is set
internal bool IsSetLoginPath()
{
return this._loginPath != null;
}
///
/// Gets and sets the property PasswordField.
///
/// Instead of this setting, provide your configuration under the request inspection configuration
/// for AWSManagedRulesATPRuleSet
or AWSManagedRulesACFPRuleSet
.
///
///
///
///
[Obsolete("Deprecated. Use AWSManagedRulesATPRuleSet RequestInspection PasswordField")]
public PasswordField PasswordField
{
get { return this._passwordField; }
set { this._passwordField = value; }
}
// Check to see if PasswordField property is set
internal bool IsSetPasswordField()
{
return this._passwordField != null;
}
///
/// Gets and sets the property PayloadType.
///
/// Instead of this setting, provide your configuration under the request inspection configuration
/// for AWSManagedRulesATPRuleSet
or AWSManagedRulesACFPRuleSet
.
///
///
///
///
[Obsolete("Deprecated. Use AWSManagedRulesATPRuleSet RequestInspection PayloadType")]
public PayloadType PayloadType
{
get { return this._payloadType; }
set { this._payloadType = value; }
}
// Check to see if PayloadType property is set
internal bool IsSetPayloadType()
{
return this._payloadType != null;
}
///
/// Gets and sets the property UsernameField.
///
/// Instead of this setting, provide your configuration under the request inspection configuration
/// for AWSManagedRulesATPRuleSet
or AWSManagedRulesACFPRuleSet
.
///
///
///
///
[Obsolete("Deprecated. Use AWSManagedRulesATPRuleSet RequestInspection UsernameField")]
public UsernameField UsernameField
{
get { return this._usernameField; }
set { this._usernameField = value; }
}
// Check to see if UsernameField property is set
internal bool IsSetUsernameField()
{
return this._usernameField != null;
}
}
}