/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Details for a rule in an WAF web ACL.

See Also:

AWS * API Reference

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

Specifies the action that CloudFront or WAF takes when a web request matches * the conditions in the rule.

*/ inline const WafAction& GetAction() const{ return m_action; } /** *

Specifies the action that CloudFront or WAF takes when a web request matches * the conditions in the rule.

*/ inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; } /** *

Specifies the action that CloudFront or WAF takes when a web request matches * the conditions in the rule.

*/ inline void SetAction(const WafAction& value) { m_actionHasBeenSet = true; m_action = value; } /** *

Specifies the action that CloudFront or WAF takes when a web request matches * the conditions in the rule.

*/ inline void SetAction(WafAction&& value) { m_actionHasBeenSet = true; m_action = std::move(value); } /** *

Specifies the action that CloudFront or WAF takes when a web request matches * the conditions in the rule.

*/ inline AwsWafWebAclRule& WithAction(const WafAction& value) { SetAction(value); return *this;} /** *

Specifies the action that CloudFront or WAF takes when a web request matches * the conditions in the rule.

*/ inline AwsWafWebAclRule& WithAction(WafAction&& value) { SetAction(std::move(value)); return *this;} /** *

Rules to exclude from a rule group.

*/ inline const Aws::Vector& GetExcludedRules() const{ return m_excludedRules; } /** *

Rules to exclude from a rule group.

*/ inline bool ExcludedRulesHasBeenSet() const { return m_excludedRulesHasBeenSet; } /** *

Rules to exclude from a rule group.

*/ inline void SetExcludedRules(const Aws::Vector& value) { m_excludedRulesHasBeenSet = true; m_excludedRules = value; } /** *

Rules to exclude from a rule group.

*/ inline void SetExcludedRules(Aws::Vector&& value) { m_excludedRulesHasBeenSet = true; m_excludedRules = std::move(value); } /** *

Rules to exclude from a rule group.

*/ inline AwsWafWebAclRule& WithExcludedRules(const Aws::Vector& value) { SetExcludedRules(value); return *this;} /** *

Rules to exclude from a rule group.

*/ inline AwsWafWebAclRule& WithExcludedRules(Aws::Vector&& value) { SetExcludedRules(std::move(value)); return *this;} /** *

Rules to exclude from a rule group.

*/ inline AwsWafWebAclRule& AddExcludedRules(const WafExcludedRule& value) { m_excludedRulesHasBeenSet = true; m_excludedRules.push_back(value); return *this; } /** *

Rules to exclude from a rule group.

*/ inline AwsWafWebAclRule& AddExcludedRules(WafExcludedRule&& value) { m_excludedRulesHasBeenSet = true; m_excludedRules.push_back(std::move(value)); return *this; } /** *

Use the OverrideAction to test your RuleGroup.

*

Any rule in a RuleGroup can potentially block a request. If you * set the OverrideAction to None, the * RuleGroup blocks a request if any individual rule in the * RuleGroup matches the request and is configured to block that * request.

However, if you first want to test the RuleGroup, * set the OverrideAction to Count. The * RuleGroup then overrides any block action specified by individual * rules contained within the group. Instead of blocking matching requests, those * requests are counted.

* ActivatedRule|OverrideAction applies only when * updating or adding a RuleGroup to a web ACL. In this case you do * not use ActivatedRule Action. For all other update * requests, ActivatedRule Action is used instead of * ActivatedRule OverrideAction.

*/ inline const WafOverrideAction& GetOverrideAction() const{ return m_overrideAction; } /** *

Use the OverrideAction to test your RuleGroup.

*

Any rule in a RuleGroup can potentially block a request. If you * set the OverrideAction to None, the * RuleGroup blocks a request if any individual rule in the * RuleGroup matches the request and is configured to block that * request.

However, if you first want to test the RuleGroup, * set the OverrideAction to Count. The * RuleGroup then overrides any block action specified by individual * rules contained within the group. Instead of blocking matching requests, those * requests are counted.

* ActivatedRule|OverrideAction applies only when * updating or adding a RuleGroup to a web ACL. In this case you do * not use ActivatedRule Action. For all other update * requests, ActivatedRule Action is used instead of * ActivatedRule OverrideAction.

*/ inline bool OverrideActionHasBeenSet() const { return m_overrideActionHasBeenSet; } /** *

Use the OverrideAction to test your RuleGroup.

*

Any rule in a RuleGroup can potentially block a request. If you * set the OverrideAction to None, the * RuleGroup blocks a request if any individual rule in the * RuleGroup matches the request and is configured to block that * request.

However, if you first want to test the RuleGroup, * set the OverrideAction to Count. The * RuleGroup then overrides any block action specified by individual * rules contained within the group. Instead of blocking matching requests, those * requests are counted.

* ActivatedRule|OverrideAction applies only when * updating or adding a RuleGroup to a web ACL. In this case you do * not use ActivatedRule Action. For all other update * requests, ActivatedRule Action is used instead of * ActivatedRule OverrideAction.

*/ inline void SetOverrideAction(const WafOverrideAction& value) { m_overrideActionHasBeenSet = true; m_overrideAction = value; } /** *

Use the OverrideAction to test your RuleGroup.

*

Any rule in a RuleGroup can potentially block a request. If you * set the OverrideAction to None, the * RuleGroup blocks a request if any individual rule in the * RuleGroup matches the request and is configured to block that * request.

However, if you first want to test the RuleGroup, * set the OverrideAction to Count. The * RuleGroup then overrides any block action specified by individual * rules contained within the group. Instead of blocking matching requests, those * requests are counted.

* ActivatedRule|OverrideAction applies only when * updating or adding a RuleGroup to a web ACL. In this case you do * not use ActivatedRule Action. For all other update * requests, ActivatedRule Action is used instead of * ActivatedRule OverrideAction.

*/ inline void SetOverrideAction(WafOverrideAction&& value) { m_overrideActionHasBeenSet = true; m_overrideAction = std::move(value); } /** *

Use the OverrideAction to test your RuleGroup.

*

Any rule in a RuleGroup can potentially block a request. If you * set the OverrideAction to None, the * RuleGroup blocks a request if any individual rule in the * RuleGroup matches the request and is configured to block that * request.

However, if you first want to test the RuleGroup, * set the OverrideAction to Count. The * RuleGroup then overrides any block action specified by individual * rules contained within the group. Instead of blocking matching requests, those * requests are counted.

* ActivatedRule|OverrideAction applies only when * updating or adding a RuleGroup to a web ACL. In this case you do * not use ActivatedRule Action. For all other update * requests, ActivatedRule Action is used instead of * ActivatedRule OverrideAction.

*/ inline AwsWafWebAclRule& WithOverrideAction(const WafOverrideAction& value) { SetOverrideAction(value); return *this;} /** *

Use the OverrideAction to test your RuleGroup.

*

Any rule in a RuleGroup can potentially block a request. If you * set the OverrideAction to None, the * RuleGroup blocks a request if any individual rule in the * RuleGroup matches the request and is configured to block that * request.

However, if you first want to test the RuleGroup, * set the OverrideAction to Count. The * RuleGroup then overrides any block action specified by individual * rules contained within the group. Instead of blocking matching requests, those * requests are counted.

* ActivatedRule|OverrideAction applies only when * updating or adding a RuleGroup to a web ACL. In this case you do * not use ActivatedRule Action. For all other update * requests, ActivatedRule Action is used instead of * ActivatedRule OverrideAction.

*/ inline AwsWafWebAclRule& WithOverrideAction(WafOverrideAction&& value) { SetOverrideAction(std::move(value)); return *this;} /** *

Specifies the order in which the rules in a web ACL are evaluated. Rules with * a lower value for Priority are evaluated before rules with a higher * value. The value must be a unique integer. If you add multiple rules to a web * ACL, the values do not need to be consecutive.

*/ inline int GetPriority() const{ return m_priority; } /** *

Specifies the order in which the rules in a web ACL are evaluated. Rules with * a lower value for Priority are evaluated before rules with a higher * value. The value must be a unique integer. If you add multiple rules to a web * ACL, the values do not need to be consecutive.

*/ inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; } /** *

Specifies the order in which the rules in a web ACL are evaluated. Rules with * a lower value for Priority are evaluated before rules with a higher * value. The value must be a unique integer. If you add multiple rules to a web * ACL, the values do not need to be consecutive.

*/ inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; } /** *

Specifies the order in which the rules in a web ACL are evaluated. Rules with * a lower value for Priority are evaluated before rules with a higher * value. The value must be a unique integer. If you add multiple rules to a web * ACL, the values do not need to be consecutive.

*/ inline AwsWafWebAclRule& WithPriority(int value) { SetPriority(value); return *this;} /** *

The identifier for a rule.

*/ inline const Aws::String& GetRuleId() const{ return m_ruleId; } /** *

The identifier for a rule.

*/ inline bool RuleIdHasBeenSet() const { return m_ruleIdHasBeenSet; } /** *

The identifier for a rule.

*/ inline void SetRuleId(const Aws::String& value) { m_ruleIdHasBeenSet = true; m_ruleId = value; } /** *

The identifier for a rule.

*/ inline void SetRuleId(Aws::String&& value) { m_ruleIdHasBeenSet = true; m_ruleId = std::move(value); } /** *

The identifier for a rule.

*/ inline void SetRuleId(const char* value) { m_ruleIdHasBeenSet = true; m_ruleId.assign(value); } /** *

The identifier for a rule.

*/ inline AwsWafWebAclRule& WithRuleId(const Aws::String& value) { SetRuleId(value); return *this;} /** *

The identifier for a rule.

*/ inline AwsWafWebAclRule& WithRuleId(Aws::String&& value) { SetRuleId(std::move(value)); return *this;} /** *

The identifier for a rule.

*/ inline AwsWafWebAclRule& WithRuleId(const char* value) { SetRuleId(value); return *this;} /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline AwsWafWebAclRule& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline AwsWafWebAclRule& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

The rule type.

Valid values: REGULAR | * RATE_BASED | GROUP

The default is * REGULAR.

*/ inline AwsWafWebAclRule& WithType(const char* value) { SetType(value); return *this;} private: WafAction m_action; bool m_actionHasBeenSet = false; Aws::Vector m_excludedRules; bool m_excludedRulesHasBeenSet = false; WafOverrideAction m_overrideAction; bool m_overrideActionHasBeenSet = false; int m_priority; bool m_priorityHasBeenSet = false; Aws::String m_ruleId; bool m_ruleIdHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws