/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace WAFV2 { namespace 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.

See Also:

AWS * API Reference

*/ class ManagedRuleGroupConfig { public: AWS_WAFV2_API ManagedRuleGroupConfig(); AWS_WAFV2_API ManagedRuleGroupConfig(Aws::Utils::Json::JsonView jsonValue); AWS_WAFV2_API ManagedRuleGroupConfig& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_WAFV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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.

*/ inline const AWSManagedRulesBotControlRuleSet& GetAWSManagedRulesBotControlRuleSet() const{ return m_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.

*/ inline bool AWSManagedRulesBotControlRuleSetHasBeenSet() const { return m_aWSManagedRulesBotControlRuleSetHasBeenSet; } /** *

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.

*/ inline void SetAWSManagedRulesBotControlRuleSet(const AWSManagedRulesBotControlRuleSet& value) { m_aWSManagedRulesBotControlRuleSetHasBeenSet = true; m_aWSManagedRulesBotControlRuleSet = value; } /** *

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.

*/ inline void SetAWSManagedRulesBotControlRuleSet(AWSManagedRulesBotControlRuleSet&& value) { m_aWSManagedRulesBotControlRuleSetHasBeenSet = true; m_aWSManagedRulesBotControlRuleSet = std::move(value); } /** *

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.

*/ inline ManagedRuleGroupConfig& WithAWSManagedRulesBotControlRuleSet(const AWSManagedRulesBotControlRuleSet& value) { SetAWSManagedRulesBotControlRuleSet(value); return *this;} /** *

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.

*/ inline ManagedRuleGroupConfig& WithAWSManagedRulesBotControlRuleSet(AWSManagedRulesBotControlRuleSet&& value) { SetAWSManagedRulesBotControlRuleSet(std::move(value)); return *this;} /** *

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.

*/ inline const AWSManagedRulesATPRuleSet& GetAWSManagedRulesATPRuleSet() const{ return m_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.

*/ inline bool AWSManagedRulesATPRuleSetHasBeenSet() const { return m_aWSManagedRulesATPRuleSetHasBeenSet; } /** *

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.

*/ inline void SetAWSManagedRulesATPRuleSet(const AWSManagedRulesATPRuleSet& value) { m_aWSManagedRulesATPRuleSetHasBeenSet = true; m_aWSManagedRulesATPRuleSet = value; } /** *

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.

*/ inline void SetAWSManagedRulesATPRuleSet(AWSManagedRulesATPRuleSet&& value) { m_aWSManagedRulesATPRuleSetHasBeenSet = true; m_aWSManagedRulesATPRuleSet = std::move(value); } /** *

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.

*/ inline ManagedRuleGroupConfig& WithAWSManagedRulesATPRuleSet(const AWSManagedRulesATPRuleSet& value) { SetAWSManagedRulesATPRuleSet(value); return *this;} /** *

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.

*/ inline ManagedRuleGroupConfig& WithAWSManagedRulesATPRuleSet(AWSManagedRulesATPRuleSet&& value) { SetAWSManagedRulesATPRuleSet(std::move(value)); return *this;} /** *

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.

*/ inline const AWSManagedRulesACFPRuleSet& GetAWSManagedRulesACFPRuleSet() const{ return m_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.

*/ inline bool AWSManagedRulesACFPRuleSetHasBeenSet() const { return m_aWSManagedRulesACFPRuleSetHasBeenSet; } /** *

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.

*/ inline void SetAWSManagedRulesACFPRuleSet(const AWSManagedRulesACFPRuleSet& value) { m_aWSManagedRulesACFPRuleSetHasBeenSet = true; m_aWSManagedRulesACFPRuleSet = value; } /** *

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.

*/ inline void SetAWSManagedRulesACFPRuleSet(AWSManagedRulesACFPRuleSet&& value) { m_aWSManagedRulesACFPRuleSetHasBeenSet = true; m_aWSManagedRulesACFPRuleSet = std::move(value); } /** *

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.

*/ inline ManagedRuleGroupConfig& WithAWSManagedRulesACFPRuleSet(const AWSManagedRulesACFPRuleSet& value) { SetAWSManagedRulesACFPRuleSet(value); return *this;} /** *

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.

*/ inline ManagedRuleGroupConfig& WithAWSManagedRulesACFPRuleSet(AWSManagedRulesACFPRuleSet&& value) { SetAWSManagedRulesACFPRuleSet(std::move(value)); return *this;} private: AWSManagedRulesBotControlRuleSet m_aWSManagedRulesBotControlRuleSet; bool m_aWSManagedRulesBotControlRuleSetHasBeenSet = false; AWSManagedRulesATPRuleSet m_aWSManagedRulesATPRuleSet; bool m_aWSManagedRulesATPRuleSetHasBeenSet = false; AWSManagedRulesACFPRuleSet m_aWSManagedRulesACFPRuleSet; bool m_aWSManagedRulesACFPRuleSetHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws