@Generated(value="software.amazon.awssdk:codegen") public final class RateBasedRule extends Object implements SdkPojo, Serializable, ToCopyableBuilder<RateBasedRule.Builder,RateBasedRule>
This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide.
For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints for regional and global use.
A RateBasedRule is identical to a regular Rule, with one addition: a RateBasedRule
counts the number of requests that arrive from a specified IP address every five minutes. For example, based on
recent requests that you've seen from an attacker, you might create a RateBasedRule that includes the
following conditions:
The requests come from 192.0.2.44.
They contain the value BadBot in the User-Agent header.
In the rule, you also define the rate limit as 1,000.
Requests that meet both of these conditions and exceed 1,000 requests every five minutes trigger the rule's action (block or count), which is defined in the web ACL.
| Modifier and Type | Class and Description |
|---|---|
static interface |
RateBasedRule.Builder |
| Modifier and Type | Method and Description |
|---|---|
static RateBasedRule.Builder |
builder() |
boolean |
equals(Object obj) |
boolean |
equalsBySdkFields(Object obj) |
<T> Optional<T> |
getValueForField(String fieldName,
Class<T> clazz) |
int |
hashCode() |
boolean |
hasMatchPredicates()
For responses, this returns true if the service returned a value for the MatchPredicates property.
|
List<Predicate> |
matchPredicates()
The
Predicates object contains one Predicate element for each ByteMatchSet,
IPSet, or SqlInjectionMatchSet object that you want to include in a RateBasedRule. |
String |
metricName()
A friendly name or description for the metrics for a
RateBasedRule. |
String |
name()
A friendly name or description for a
RateBasedRule. |
RateKey |
rateKey()
The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to
rate monitoring.
|
String |
rateKeyAsString()
The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to
rate monitoring.
|
Long |
rateLimit()
The maximum number of requests, which have an identical value in the field specified by the
RateKey,
allowed in a five-minute period. |
String |
ruleId()
A unique identifier for a
RateBasedRule. |
List<SdkField<?>> |
sdkFields() |
static Class<? extends RateBasedRule.Builder> |
serializableBuilderClass() |
RateBasedRule.Builder |
toBuilder() |
String |
toString()
Returns a string representation of this object.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, waitcopypublic final String ruleId()
A unique identifier for a RateBasedRule. You use RuleId to get more information about a
RateBasedRule (see GetRateBasedRule), update a RateBasedRule (see
UpdateRateBasedRule), insert a RateBasedRule into a WebACL or delete one from a
WebACL (see UpdateWebACL), or delete a RateBasedRule from AWS WAF (see
DeleteRateBasedRule).
RateBasedRule. You use RuleId to get more information
about a RateBasedRule (see GetRateBasedRule), update a RateBasedRule
(see UpdateRateBasedRule), insert a RateBasedRule into a WebACL or
delete one from a WebACL (see UpdateWebACL), or delete a RateBasedRule
from AWS WAF (see DeleteRateBasedRule).public final String name()
A friendly name or description for a RateBasedRule. You can't change the name of a
RateBasedRule after you create it.
RateBasedRule. You can't change the name of a
RateBasedRule after you create it.public final String metricName()
A friendly name or description for the metrics for a RateBasedRule. The name can contain only
alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain
whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name
of the metric after you create the RateBasedRule.
RateBasedRule. The name can contain
only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't
contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't
change the name of the metric after you create the RateBasedRule.public final boolean hasMatchPredicates()
isEmpty() method on the property).
This is useful because the SDK will never return a null collection or map, but you may need to differentiate
between the service returning nothing (or null) and the service returning an empty collection or map. For
requests, this returns true if a value for the property was specified in the request builder, and false if a
value was not specified.public final List<Predicate> matchPredicates()
The Predicates object contains one Predicate element for each ByteMatchSet,
IPSet, or SqlInjectionMatchSet object that you want to include in a RateBasedRule.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that
you can differentiate between null and empty), you can use the hasMatchPredicates() method.
Predicates object contains one Predicate element for each
ByteMatchSet, IPSet, or SqlInjectionMatchSet object that you want to include in a
RateBasedRule.public final RateKey rateKey()
The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to
rate monitoring. The only valid value for RateKey is IP. IP indicates that
requests arriving from the same IP address are subject to the RateLimit that is specified in the
RateBasedRule.
If the service returns an enum value that is not available in the current SDK version, rateKey will
return RateKey.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from
rateKeyAsString().
RateKey is IP.
IP indicates that requests arriving from the same IP address are subject to the
RateLimit that is specified in the RateBasedRule.RateKeypublic final String rateKeyAsString()
The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to
rate monitoring. The only valid value for RateKey is IP. IP indicates that
requests arriving from the same IP address are subject to the RateLimit that is specified in the
RateBasedRule.
If the service returns an enum value that is not available in the current SDK version, rateKey will
return RateKey.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from
rateKeyAsString().
RateKey is IP.
IP indicates that requests arriving from the same IP address are subject to the
RateLimit that is specified in the RateBasedRule.RateKeypublic final Long rateLimit()
The maximum number of requests, which have an identical value in the field specified by the RateKey,
allowed in a five-minute period. If the number of requests exceeds the RateLimit and the other
predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.
RateKey, allowed in a five-minute period. If the number of requests exceeds the
RateLimit and the other predicates specified in the rule are also met, AWS WAF triggers the
action that is specified for this rule.public RateBasedRule.Builder toBuilder()
toBuilder in interface ToCopyableBuilder<RateBasedRule.Builder,RateBasedRule>public static RateBasedRule.Builder builder()
public static Class<? extends RateBasedRule.Builder> serializableBuilderClass()
public final boolean equalsBySdkFields(Object obj)
equalsBySdkFields in interface SdkPojopublic final String toString()
Copyright © 2023. All rights reserved.