/* * Copyright 2018-2023 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. */ package com.amazonaws.services.wafv2.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* A single rule, which you can use in a WebACL or RuleGroup to identify web requests that you want to * allow, block, or count. Each rule includes one top-level Statement that WAF uses to identify matching web * requests, and parameters that govern how WAF handles them. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Rule implements Serializable, Cloneable, StructuredPojo { /** *

* The name of the rule. You can't change the name of a Rule after you create it. *

*/ private String name; /** *

* If you define more than one Rule in a WebACL, WAF evaluates each request against the * Rules in order based on the value of Priority. WAF processes rules with lower priority * first. The priorities don't need to be consecutive, but they must all be different. *

*/ private Integer priority; /** *

* The WAF processing statement for the rule, for example ByteMatchStatement or * SizeConstraintStatement. *

*/ private Statement statement; /** *

* The action that WAF should take on a web request when it matches the rule statement. Settings at the web ACL * level can override the rule action setting. *

*

* This is used only for rules whose statements do not reference a rule group. Rule statements that reference a rule * group include RuleGroupReferenceStatement and ManagedRuleGroupStatement. *

*

* You must specify either this Action setting or the rule OverrideAction setting, but not * both: *

* */ private RuleAction action; /** *

* The action to use in the place of the action that results from the rule group evaluation. Set the override action * to none to leave the result of the rule group alone. Set it to count to override the result to count only. *

*

* You can only use this for rule statements that reference a rule group, like * RuleGroupReferenceStatement and ManagedRuleGroupStatement. *

* *

* This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want * the rules in the rule group to only count matches, do not use this and instead use the rule action override * option, with Count action, in your rule group reference statement settings. *

*
*/ private OverrideAction overrideAction; /** *

* Labels to apply to web requests that match the rule match statement. WAF applies fully qualified labels to * matching web requests. A fully qualified label is the concatenation of a label namespace and a rule label. The * rule's rule group or web ACL defines the label namespace. *

*

* Rules that run after this rule in the web ACL can match against these labels using a * LabelMatchStatement. *

*

* For each label, provide a case-sensitive string containing optional namespaces and a label name, according to the * following guidelines: *

* *

* For example, myLabelName or nameSpace1:nameSpace2:myLabelName. *

*/ private java.util.List