Struct aws_sdk_waf::types::RateBasedRule
source · #[non_exhaustive]pub struct RateBasedRule {
pub rule_id: String,
pub name: Option<String>,
pub metric_name: Option<String>,
pub match_predicates: Vec<Predicate>,
pub rate_key: RateKey,
pub rate_limit: i64,
}
Expand description
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 theUser-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.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.rule_id: String
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
).
name: Option<String>
A friendly name or description for a RateBasedRule
. You can't change the name of a RateBasedRule
after you create it.
metric_name: Option<String>
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
.
match_predicates: Vec<Predicate>
The Predicates
object contains one Predicate
element for each ByteMatchSet
, IPSet
, or SqlInjectionMatchSet
object that you want to include in a RateBasedRule
.
rate_key: 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
.
rate_limit: i64
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.
Implementations§
source§impl RateBasedRule
impl RateBasedRule
sourcepub fn rule_id(&self) -> &str
pub fn rule_id(&self) -> &str
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
).
sourcepub fn name(&self) -> Option<&str>
pub fn name(&self) -> Option<&str>
A friendly name or description for a RateBasedRule
. You can't change the name of a RateBasedRule
after you create it.
sourcepub fn metric_name(&self) -> Option<&str>
pub fn metric_name(&self) -> Option<&str>
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
.
sourcepub fn match_predicates(&self) -> &[Predicate]
pub fn match_predicates(&self) -> &[Predicate]
The Predicates
object contains one Predicate
element for each ByteMatchSet
, IPSet
, or SqlInjectionMatchSet
object that you want to include in a RateBasedRule
.
sourcepub fn rate_key(&self) -> &RateKey
pub fn rate_key(&self) -> &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
.
sourcepub fn rate_limit(&self) -> i64
pub fn rate_limit(&self) -> i64
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.
source§impl RateBasedRule
impl RateBasedRule
sourcepub fn builder() -> RateBasedRuleBuilder
pub fn builder() -> RateBasedRuleBuilder
Creates a new builder-style object to manufacture RateBasedRule
.
Trait Implementations§
source§impl Clone for RateBasedRule
impl Clone for RateBasedRule
source§fn clone(&self) -> RateBasedRule
fn clone(&self) -> RateBasedRule
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RateBasedRule
impl Debug for RateBasedRule
source§impl PartialEq for RateBasedRule
impl PartialEq for RateBasedRule
source§fn eq(&self, other: &RateBasedRule) -> bool
fn eq(&self, other: &RateBasedRule) -> bool
self
and other
values to be equal, and is used
by ==
.impl StructuralPartialEq for RateBasedRule
Auto Trait Implementations§
impl Freeze for RateBasedRule
impl RefUnwindSafe for RateBasedRule
impl Send for RateBasedRule
impl Sync for RateBasedRule
impl Unpin for RateBasedRule
impl UnwindSafe for RateBasedRule
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more