@Generated(value="com.amazonaws:aws-java-sdk-code-generator") public class RateBasedStatementCustomKey extends Object implements Serializable, Cloneable, StructuredPojo
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.
Constructor and Description |
---|
RateBasedStatementCustomKey() |
Modifier and Type | Method and Description |
---|---|
RateBasedStatementCustomKey |
clone() |
boolean |
equals(Object obj) |
RateLimitCookie |
getCookie()
Use the value of a cookie in the request as an aggregate key.
|
RateLimitForwardedIP |
getForwardedIP()
Use the first IP address in an HTTP header as an aggregate key.
|
RateLimitHeader |
getHeader()
Use the value of a header in the request as an aggregate key.
|
RateLimitHTTPMethod |
getHTTPMethod()
Use the request's HTTP method as an aggregate key.
|
RateLimitIP |
getIP()
Use the request's originating IP address as an aggregate key.
|
RateLimitLabelNamespace |
getLabelNamespace()
Use the specified label namespace as an aggregate key.
|
RateLimitQueryArgument |
getQueryArgument()
Use the specified query argument as an aggregate key.
|
RateLimitQueryString |
getQueryString()
Use the request's query string as an aggregate key.
|
RateLimitUriPath |
getUriPath()
Use the request's URI path as an aggregate key.
|
int |
hashCode() |
void |
marshall(ProtocolMarshaller protocolMarshaller)
Marshalls this structured data using the given
ProtocolMarshaller . |
void |
setCookie(RateLimitCookie cookie)
Use the value of a cookie in the request as an aggregate key.
|
void |
setForwardedIP(RateLimitForwardedIP forwardedIP)
Use the first IP address in an HTTP header as an aggregate key.
|
void |
setHeader(RateLimitHeader header)
Use the value of a header in the request as an aggregate key.
|
void |
setHTTPMethod(RateLimitHTTPMethod hTTPMethod)
Use the request's HTTP method as an aggregate key.
|
void |
setIP(RateLimitIP iP)
Use the request's originating IP address as an aggregate key.
|
void |
setLabelNamespace(RateLimitLabelNamespace labelNamespace)
Use the specified label namespace as an aggregate key.
|
void |
setQueryArgument(RateLimitQueryArgument queryArgument)
Use the specified query argument as an aggregate key.
|
void |
setQueryString(RateLimitQueryString queryString)
Use the request's query string as an aggregate key.
|
void |
setUriPath(RateLimitUriPath uriPath)
Use the request's URI path as an aggregate key.
|
String |
toString()
Returns a string representation of this object.
|
RateBasedStatementCustomKey |
withCookie(RateLimitCookie cookie)
Use the value of a cookie in the request as an aggregate key.
|
RateBasedStatementCustomKey |
withForwardedIP(RateLimitForwardedIP forwardedIP)
Use the first IP address in an HTTP header as an aggregate key.
|
RateBasedStatementCustomKey |
withHeader(RateLimitHeader header)
Use the value of a header in the request as an aggregate key.
|
RateBasedStatementCustomKey |
withHTTPMethod(RateLimitHTTPMethod hTTPMethod)
Use the request's HTTP method as an aggregate key.
|
RateBasedStatementCustomKey |
withIP(RateLimitIP iP)
Use the request's originating IP address as an aggregate key.
|
RateBasedStatementCustomKey |
withLabelNamespace(RateLimitLabelNamespace labelNamespace)
Use the specified label namespace as an aggregate key.
|
RateBasedStatementCustomKey |
withQueryArgument(RateLimitQueryArgument queryArgument)
Use the specified query argument as an aggregate key.
|
RateBasedStatementCustomKey |
withQueryString(RateLimitQueryString queryString)
Use the request's query string as an aggregate key.
|
RateBasedStatementCustomKey |
withUriPath(RateLimitUriPath uriPath)
Use the request's URI path as an aggregate key.
|
public void setHeader(RateLimitHeader header)
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.
header
- 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.public RateLimitHeader getHeader()
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.
public RateBasedStatementCustomKey withHeader(RateLimitHeader header)
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.
header
- 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.public void setCookie(RateLimitCookie cookie)
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.
cookie
- 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.public RateLimitCookie getCookie()
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.
public RateBasedStatementCustomKey withCookie(RateLimitCookie cookie)
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.
cookie
- 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.public void setQueryArgument(RateLimitQueryArgument queryArgument)
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.
queryArgument
- 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.public RateLimitQueryArgument getQueryArgument()
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.
public RateBasedStatementCustomKey withQueryArgument(RateLimitQueryArgument queryArgument)
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.
queryArgument
- 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.public void setQueryString(RateLimitQueryString queryString)
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.
queryString
- 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.public RateLimitQueryString getQueryString()
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.
public RateBasedStatementCustomKey withQueryString(RateLimitQueryString queryString)
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.
queryString
- 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.public void setHTTPMethod(RateLimitHTTPMethod hTTPMethod)
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.
hTTPMethod
- 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.public RateLimitHTTPMethod getHTTPMethod()
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.
public RateBasedStatementCustomKey withHTTPMethod(RateLimitHTTPMethod hTTPMethod)
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.
hTTPMethod
- 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.public void setForwardedIP(RateLimitForwardedIP forwardedIP)
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.
forwardedIP
- 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.
public RateLimitForwardedIP getForwardedIP()
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.
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.
public RateBasedStatementCustomKey withForwardedIP(RateLimitForwardedIP forwardedIP)
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.
forwardedIP
- 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.
public void setIP(RateLimitIP iP)
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
.
iP
- 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
.
public RateLimitIP getIP()
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
.
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
.
public RateBasedStatementCustomKey withIP(RateLimitIP iP)
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
.
iP
- 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
.
public void setLabelNamespace(RateLimitLabelNamespace labelNamespace)
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.
labelNamespace
- 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.
public RateLimitLabelNamespace getLabelNamespace()
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.
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.
public RateBasedStatementCustomKey withLabelNamespace(RateLimitLabelNamespace labelNamespace)
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.
labelNamespace
- 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.
public void setUriPath(RateLimitUriPath uriPath)
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.
uriPath
- 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.public RateLimitUriPath getUriPath()
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.
public RateBasedStatementCustomKey withUriPath(RateLimitUriPath uriPath)
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.
uriPath
- 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.public String toString()
toString
in class Object
Object.toString()
public RateBasedStatementCustomKey clone()
public void marshall(ProtocolMarshaller protocolMarshaller)
StructuredPojo
ProtocolMarshaller
.marshall
in interface StructuredPojo
protocolMarshaller
- Implementation of ProtocolMarshaller
used to marshall this object's data.