Struct aws_sdk_wafv2::types::RateBasedStatementCustomKey
source · #[non_exhaustive]pub struct RateBasedStatementCustomKey {
pub header: Option<RateLimitHeader>,
pub cookie: Option<RateLimitCookie>,
pub query_argument: Option<RateLimitQueryArgument>,
pub query_string: Option<RateLimitQueryString>,
pub http_method: Option<RateLimitHttpMethod>,
pub forwarded_ip: Option<RateLimitForwardedIp>,
pub ip: Option<RateLimitIp>,
pub label_namespace: Option<RateLimitLabelNamespace>,
pub uri_path: Option<RateLimitUriPath>,
}
Expand description
Specifies a single custom aggregate key for a rate-base rule.
Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.
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.header: Option<RateLimitHeader>
Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
query_argument: Option<RateLimitQueryArgument>
Use the specified query argument as an aggregate key. Each distinct value for the named query argument contributes to the aggregation instance. If you use a single query argument as your custom key, then each value fully defines an aggregation instance.
query_string: Option<RateLimitQueryString>
Use the request's query string as an aggregate key. Each distinct string contributes to the aggregation instance. If you use just the query string as your custom key, then each string fully defines an aggregation instance.
http_method: Option<RateLimitHttpMethod>
Use the request's HTTP method as an aggregate key. Each distinct HTTP method contributes to the aggregation instance. If you use just the HTTP method as your custom key, then each method fully defines an aggregation instance.
forwarded_ip: Option<RateLimitForwardedIp>
Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance.
When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying FORWARDED_IP
in your rate-based statement's AggregateKeyType
.
With this option, you must specify the header to use in the rate-based rule's ForwardedIPConfig
property.
ip: Option<RateLimitIp>
Use the request's originating IP address as an aggregate key. Each distinct IP address contributes to the aggregation instance.
When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the IP address by specifying IP
in your rate-based statement's AggregateKeyType
.
label_namespace: Option<RateLimitLabelNamespace>
Use the specified label namespace as an aggregate key. Each distinct fully qualified label name that has the specified label namespace contributes to the aggregation instance. If you use just one label namespace as your custom key, then each label name fully defines an aggregation instance.
This uses only labels that have been added to the request by rules that are evaluated before this rate-based rule in the web ACL.
For information about label namespaces and names, see Label syntax and naming requirements in the WAF Developer Guide.
uri_path: Option<RateLimitUriPath>
Use the request's URI path as an aggregate key. Each distinct URI path contributes to the aggregation instance. If you use just the URI path as your custom key, then each URI path fully defines an aggregation instance.
Implementations§
source§impl RateBasedStatementCustomKey
impl RateBasedStatementCustomKey
sourcepub fn header(&self) -> Option<&RateLimitHeader>
pub fn header(&self) -> Option<&RateLimitHeader>
Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
sourcepub fn query_argument(&self) -> Option<&RateLimitQueryArgument>
pub fn query_argument(&self) -> Option<&RateLimitQueryArgument>
Use the specified query argument as an aggregate key. Each distinct value for the named query argument contributes to the aggregation instance. If you use a single query argument as your custom key, then each value fully defines an aggregation instance.
sourcepub fn query_string(&self) -> Option<&RateLimitQueryString>
pub fn query_string(&self) -> Option<&RateLimitQueryString>
Use the request's query string as an aggregate key. Each distinct string contributes to the aggregation instance. If you use just the query string as your custom key, then each string fully defines an aggregation instance.
sourcepub fn http_method(&self) -> Option<&RateLimitHttpMethod>
pub fn http_method(&self) -> Option<&RateLimitHttpMethod>
Use the request's HTTP method as an aggregate key. Each distinct HTTP method contributes to the aggregation instance. If you use just the HTTP method as your custom key, then each method fully defines an aggregation instance.
sourcepub fn forwarded_ip(&self) -> Option<&RateLimitForwardedIp>
pub fn forwarded_ip(&self) -> Option<&RateLimitForwardedIp>
Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance.
When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying FORWARDED_IP
in your rate-based statement's AggregateKeyType
.
With this option, you must specify the header to use in the rate-based rule's ForwardedIPConfig
property.
sourcepub fn ip(&self) -> Option<&RateLimitIp>
pub fn ip(&self) -> Option<&RateLimitIp>
Use the request's originating IP address as an aggregate key. Each distinct IP address contributes to the aggregation instance.
When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the IP address by specifying IP
in your rate-based statement's AggregateKeyType
.
sourcepub fn label_namespace(&self) -> Option<&RateLimitLabelNamespace>
pub fn label_namespace(&self) -> Option<&RateLimitLabelNamespace>
Use the specified label namespace as an aggregate key. Each distinct fully qualified label name that has the specified label namespace contributes to the aggregation instance. If you use just one label namespace as your custom key, then each label name fully defines an aggregation instance.
This uses only labels that have been added to the request by rules that are evaluated before this rate-based rule in the web ACL.
For information about label namespaces and names, see Label syntax and naming requirements in the WAF Developer Guide.
sourcepub fn uri_path(&self) -> Option<&RateLimitUriPath>
pub fn uri_path(&self) -> Option<&RateLimitUriPath>
Use the request's URI path as an aggregate key. Each distinct URI path contributes to the aggregation instance. If you use just the URI path as your custom key, then each URI path fully defines an aggregation instance.
source§impl RateBasedStatementCustomKey
impl RateBasedStatementCustomKey
sourcepub fn builder() -> RateBasedStatementCustomKeyBuilder
pub fn builder() -> RateBasedStatementCustomKeyBuilder
Creates a new builder-style object to manufacture RateBasedStatementCustomKey
.
Trait Implementations§
source§impl Clone for RateBasedStatementCustomKey
impl Clone for RateBasedStatementCustomKey
source§fn clone(&self) -> RateBasedStatementCustomKey
fn clone(&self) -> RateBasedStatementCustomKey
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RateBasedStatementCustomKey
impl Debug for RateBasedStatementCustomKey
source§impl PartialEq for RateBasedStatementCustomKey
impl PartialEq for RateBasedStatementCustomKey
source§fn eq(&self, other: &RateBasedStatementCustomKey) -> bool
fn eq(&self, other: &RateBasedStatementCustomKey) -> bool
self
and other
values to be equal, and is used
by ==
.