/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The processing guidance for a Rule, used by WAF to determine whether a
* web request matches the rule. For example specifications, see the
* examples section of CreateWebACL.See Also:
AWS API
* Reference
A rule statement that defines a string match search for WAF to apply to web * requests. The byte match statement provides the bytes to search for, the * location in requests that you want WAF to search, and other settings. The bytes * to search for are typically a string that corresponds with ASCII characters. In * the WAF console and the developer guide, this is called a string match * statement.
*/ inline const ByteMatchStatement& GetByteMatchStatement() const{ return m_byteMatchStatement; } /** *A rule statement that defines a string match search for WAF to apply to web * requests. The byte match statement provides the bytes to search for, the * location in requests that you want WAF to search, and other settings. The bytes * to search for are typically a string that corresponds with ASCII characters. In * the WAF console and the developer guide, this is called a string match * statement.
*/ inline bool ByteMatchStatementHasBeenSet() const { return m_byteMatchStatementHasBeenSet; } /** *A rule statement that defines a string match search for WAF to apply to web * requests. The byte match statement provides the bytes to search for, the * location in requests that you want WAF to search, and other settings. The bytes * to search for are typically a string that corresponds with ASCII characters. In * the WAF console and the developer guide, this is called a string match * statement.
*/ inline void SetByteMatchStatement(const ByteMatchStatement& value) { m_byteMatchStatementHasBeenSet = true; m_byteMatchStatement = value; } /** *A rule statement that defines a string match search for WAF to apply to web * requests. The byte match statement provides the bytes to search for, the * location in requests that you want WAF to search, and other settings. The bytes * to search for are typically a string that corresponds with ASCII characters. In * the WAF console and the developer guide, this is called a string match * statement.
*/ inline void SetByteMatchStatement(ByteMatchStatement&& value) { m_byteMatchStatementHasBeenSet = true; m_byteMatchStatement = std::move(value); } /** *A rule statement that defines a string match search for WAF to apply to web * requests. The byte match statement provides the bytes to search for, the * location in requests that you want WAF to search, and other settings. The bytes * to search for are typically a string that corresponds with ASCII characters. In * the WAF console and the developer guide, this is called a string match * statement.
*/ inline Statement& WithByteMatchStatement(const ByteMatchStatement& value) { SetByteMatchStatement(value); return *this;} /** *A rule statement that defines a string match search for WAF to apply to web * requests. The byte match statement provides the bytes to search for, the * location in requests that you want WAF to search, and other settings. The bytes * to search for are typically a string that corresponds with ASCII characters. In * the WAF console and the developer guide, this is called a string match * statement.
*/ inline Statement& WithByteMatchStatement(ByteMatchStatement&& value) { SetByteMatchStatement(std::move(value)); return *this;} /** *A rule statement that inspects for malicious SQL code. Attackers insert * malicious SQL code into web requests to do things like modify your database or * extract data from it.
*/ inline const SqliMatchStatement& GetSqliMatchStatement() const{ return m_sqliMatchStatement; } /** *A rule statement that inspects for malicious SQL code. Attackers insert * malicious SQL code into web requests to do things like modify your database or * extract data from it.
*/ inline bool SqliMatchStatementHasBeenSet() const { return m_sqliMatchStatementHasBeenSet; } /** *A rule statement that inspects for malicious SQL code. Attackers insert * malicious SQL code into web requests to do things like modify your database or * extract data from it.
*/ inline void SetSqliMatchStatement(const SqliMatchStatement& value) { m_sqliMatchStatementHasBeenSet = true; m_sqliMatchStatement = value; } /** *A rule statement that inspects for malicious SQL code. Attackers insert * malicious SQL code into web requests to do things like modify your database or * extract data from it.
*/ inline void SetSqliMatchStatement(SqliMatchStatement&& value) { m_sqliMatchStatementHasBeenSet = true; m_sqliMatchStatement = std::move(value); } /** *A rule statement that inspects for malicious SQL code. Attackers insert * malicious SQL code into web requests to do things like modify your database or * extract data from it.
*/ inline Statement& WithSqliMatchStatement(const SqliMatchStatement& value) { SetSqliMatchStatement(value); return *this;} /** *A rule statement that inspects for malicious SQL code. Attackers insert * malicious SQL code into web requests to do things like modify your database or * extract data from it.
*/ inline Statement& WithSqliMatchStatement(SqliMatchStatement&& value) { SetSqliMatchStatement(std::move(value)); return *this;} /** *A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS * attacks, the attacker uses vulnerabilities in a benign website as a vehicle to * inject malicious client-site scripts into other legitimate web browsers.
*/ inline const XssMatchStatement& GetXssMatchStatement() const{ return m_xssMatchStatement; } /** *A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS * attacks, the attacker uses vulnerabilities in a benign website as a vehicle to * inject malicious client-site scripts into other legitimate web browsers.
*/ inline bool XssMatchStatementHasBeenSet() const { return m_xssMatchStatementHasBeenSet; } /** *A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS * attacks, the attacker uses vulnerabilities in a benign website as a vehicle to * inject malicious client-site scripts into other legitimate web browsers.
*/ inline void SetXssMatchStatement(const XssMatchStatement& value) { m_xssMatchStatementHasBeenSet = true; m_xssMatchStatement = value; } /** *A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS * attacks, the attacker uses vulnerabilities in a benign website as a vehicle to * inject malicious client-site scripts into other legitimate web browsers.
*/ inline void SetXssMatchStatement(XssMatchStatement&& value) { m_xssMatchStatementHasBeenSet = true; m_xssMatchStatement = std::move(value); } /** *A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS * attacks, the attacker uses vulnerabilities in a benign website as a vehicle to * inject malicious client-site scripts into other legitimate web browsers.
*/ inline Statement& WithXssMatchStatement(const XssMatchStatement& value) { SetXssMatchStatement(value); return *this;} /** *A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS * attacks, the attacker uses vulnerabilities in a benign website as a vehicle to * inject malicious client-site scripts into other legitimate web browsers.
*/ inline Statement& WithXssMatchStatement(XssMatchStatement&& value) { SetXssMatchStatement(std::move(value)); return *this;} /** *A rule statement that compares a number of bytes against the size of a * request component, using a comparison operator, such as greater than (>) or * less than (<). For example, you can use a size constraint statement to look * for query strings that are longer than 100 bytes.
If you configure WAF
* to inspect the request body, WAF inspects only the number of bytes of the body
* up to the limit for the web ACL. By default, for regional web ACLs, this limit
* is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB
* (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the
* web ACL AssociationConfig
, for additional fees. If you know that
* the request body for your web requests should never exceed the inspection limit,
* you could use a size constraint statement to block requests that have a larger
* request body size.
If you choose URI for the value of Part of the request
* to filter on, the slash (/) in the URI counts as one character. For example, the
* URI /logo.jpg
is nine characters long.
A rule statement that compares a number of bytes against the size of a * request component, using a comparison operator, such as greater than (>) or * less than (<). For example, you can use a size constraint statement to look * for query strings that are longer than 100 bytes.
If you configure WAF
* to inspect the request body, WAF inspects only the number of bytes of the body
* up to the limit for the web ACL. By default, for regional web ACLs, this limit
* is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB
* (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the
* web ACL AssociationConfig
, for additional fees. If you know that
* the request body for your web requests should never exceed the inspection limit,
* you could use a size constraint statement to block requests that have a larger
* request body size.
If you choose URI for the value of Part of the request
* to filter on, the slash (/) in the URI counts as one character. For example, the
* URI /logo.jpg
is nine characters long.
A rule statement that compares a number of bytes against the size of a * request component, using a comparison operator, such as greater than (>) or * less than (<). For example, you can use a size constraint statement to look * for query strings that are longer than 100 bytes.
If you configure WAF
* to inspect the request body, WAF inspects only the number of bytes of the body
* up to the limit for the web ACL. By default, for regional web ACLs, this limit
* is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB
* (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the
* web ACL AssociationConfig
, for additional fees. If you know that
* the request body for your web requests should never exceed the inspection limit,
* you could use a size constraint statement to block requests that have a larger
* request body size.
If you choose URI for the value of Part of the request
* to filter on, the slash (/) in the URI counts as one character. For example, the
* URI /logo.jpg
is nine characters long.
A rule statement that compares a number of bytes against the size of a * request component, using a comparison operator, such as greater than (>) or * less than (<). For example, you can use a size constraint statement to look * for query strings that are longer than 100 bytes.
If you configure WAF
* to inspect the request body, WAF inspects only the number of bytes of the body
* up to the limit for the web ACL. By default, for regional web ACLs, this limit
* is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB
* (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the
* web ACL AssociationConfig
, for additional fees. If you know that
* the request body for your web requests should never exceed the inspection limit,
* you could use a size constraint statement to block requests that have a larger
* request body size.
If you choose URI for the value of Part of the request
* to filter on, the slash (/) in the URI counts as one character. For example, the
* URI /logo.jpg
is nine characters long.
A rule statement that compares a number of bytes against the size of a * request component, using a comparison operator, such as greater than (>) or * less than (<). For example, you can use a size constraint statement to look * for query strings that are longer than 100 bytes.
If you configure WAF
* to inspect the request body, WAF inspects only the number of bytes of the body
* up to the limit for the web ACL. By default, for regional web ACLs, this limit
* is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB
* (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the
* web ACL AssociationConfig
, for additional fees. If you know that
* the request body for your web requests should never exceed the inspection limit,
* you could use a size constraint statement to block requests that have a larger
* request body size.
If you choose URI for the value of Part of the request
* to filter on, the slash (/) in the URI counts as one character. For example, the
* URI /logo.jpg
is nine characters long.
A rule statement that compares a number of bytes against the size of a * request component, using a comparison operator, such as greater than (>) or * less than (<). For example, you can use a size constraint statement to look * for query strings that are longer than 100 bytes.
If you configure WAF
* to inspect the request body, WAF inspects only the number of bytes of the body
* up to the limit for the web ACL. By default, for regional web ACLs, this limit
* is 8 KB (8,192 kilobytes) and for CloudFront web ACLs, this limit is 16 KB
* (16,384 kilobytes). For CloudFront web ACLs, you can increase the limit in the
* web ACL AssociationConfig
, for additional fees. If you know that
* the request body for your web requests should never exceed the inspection limit,
* you could use a size constraint statement to block requests that have a larger
* request body size.
If you choose URI for the value of Part of the request
* to filter on, the slash (/) in the URI counts as one character. For example, the
* URI /logo.jpg
is nine characters long.
A rule statement that labels web requests by country and region and that * matches against web requests based on country code. A geo match rule labels * every request that it inspects regardless of whether it finds a match.
To manage requests only by country, you can use this statement by itself
* and specify the countries that you want to match against in the
* CountryCodes
array.
Otherwise, configure your * geo match rule with Count action so that it only labels requests. Then, add one * or more label match rules to run after the geo match rule and configure them to * match against the geographic labels and handle the requests as needed.
*WAF labels requests using the alpha-2 country and region codes
* from the International Organization for Standardization (ISO) 3166 standard. WAF
* determines the codes using either the IP address in the web request origin or,
* if you specify it, the address in the geo match ForwardedIPConfig
.
*
If you use the web request origin, the label formats are
* awswaf:clientip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:clientip:geo:country:<ISO country
* code>
.
If you use a forwarded IP address, the label formats are
* awswaf:forwardedip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:forwardedip:geo:country:<ISO country
* code>
.
For additional details, see Geographic * match rule statement in the WAF * Developer Guide.
*/ inline const GeoMatchStatement& GetGeoMatchStatement() const{ return m_geoMatchStatement; } /** *A rule statement that labels web requests by country and region and that * matches against web requests based on country code. A geo match rule labels * every request that it inspects regardless of whether it finds a match.
To manage requests only by country, you can use this statement by itself
* and specify the countries that you want to match against in the
* CountryCodes
array.
Otherwise, configure your * geo match rule with Count action so that it only labels requests. Then, add one * or more label match rules to run after the geo match rule and configure them to * match against the geographic labels and handle the requests as needed.
*WAF labels requests using the alpha-2 country and region codes
* from the International Organization for Standardization (ISO) 3166 standard. WAF
* determines the codes using either the IP address in the web request origin or,
* if you specify it, the address in the geo match ForwardedIPConfig
.
*
If you use the web request origin, the label formats are
* awswaf:clientip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:clientip:geo:country:<ISO country
* code>
.
If you use a forwarded IP address, the label formats are
* awswaf:forwardedip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:forwardedip:geo:country:<ISO country
* code>
.
For additional details, see Geographic * match rule statement in the WAF * Developer Guide.
*/ inline bool GeoMatchStatementHasBeenSet() const { return m_geoMatchStatementHasBeenSet; } /** *A rule statement that labels web requests by country and region and that * matches against web requests based on country code. A geo match rule labels * every request that it inspects regardless of whether it finds a match.
To manage requests only by country, you can use this statement by itself
* and specify the countries that you want to match against in the
* CountryCodes
array.
Otherwise, configure your * geo match rule with Count action so that it only labels requests. Then, add one * or more label match rules to run after the geo match rule and configure them to * match against the geographic labels and handle the requests as needed.
*WAF labels requests using the alpha-2 country and region codes
* from the International Organization for Standardization (ISO) 3166 standard. WAF
* determines the codes using either the IP address in the web request origin or,
* if you specify it, the address in the geo match ForwardedIPConfig
.
*
If you use the web request origin, the label formats are
* awswaf:clientip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:clientip:geo:country:<ISO country
* code>
.
If you use a forwarded IP address, the label formats are
* awswaf:forwardedip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:forwardedip:geo:country:<ISO country
* code>
.
For additional details, see Geographic * match rule statement in the WAF * Developer Guide.
*/ inline void SetGeoMatchStatement(const GeoMatchStatement& value) { m_geoMatchStatementHasBeenSet = true; m_geoMatchStatement = value; } /** *A rule statement that labels web requests by country and region and that * matches against web requests based on country code. A geo match rule labels * every request that it inspects regardless of whether it finds a match.
To manage requests only by country, you can use this statement by itself
* and specify the countries that you want to match against in the
* CountryCodes
array.
Otherwise, configure your * geo match rule with Count action so that it only labels requests. Then, add one * or more label match rules to run after the geo match rule and configure them to * match against the geographic labels and handle the requests as needed.
*WAF labels requests using the alpha-2 country and region codes
* from the International Organization for Standardization (ISO) 3166 standard. WAF
* determines the codes using either the IP address in the web request origin or,
* if you specify it, the address in the geo match ForwardedIPConfig
.
*
If you use the web request origin, the label formats are
* awswaf:clientip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:clientip:geo:country:<ISO country
* code>
.
If you use a forwarded IP address, the label formats are
* awswaf:forwardedip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:forwardedip:geo:country:<ISO country
* code>
.
For additional details, see Geographic * match rule statement in the WAF * Developer Guide.
*/ inline void SetGeoMatchStatement(GeoMatchStatement&& value) { m_geoMatchStatementHasBeenSet = true; m_geoMatchStatement = std::move(value); } /** *A rule statement that labels web requests by country and region and that * matches against web requests based on country code. A geo match rule labels * every request that it inspects regardless of whether it finds a match.
To manage requests only by country, you can use this statement by itself
* and specify the countries that you want to match against in the
* CountryCodes
array.
Otherwise, configure your * geo match rule with Count action so that it only labels requests. Then, add one * or more label match rules to run after the geo match rule and configure them to * match against the geographic labels and handle the requests as needed.
*WAF labels requests using the alpha-2 country and region codes
* from the International Organization for Standardization (ISO) 3166 standard. WAF
* determines the codes using either the IP address in the web request origin or,
* if you specify it, the address in the geo match ForwardedIPConfig
.
*
If you use the web request origin, the label formats are
* awswaf:clientip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:clientip:geo:country:<ISO country
* code>
.
If you use a forwarded IP address, the label formats are
* awswaf:forwardedip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:forwardedip:geo:country:<ISO country
* code>
.
For additional details, see Geographic * match rule statement in the WAF * Developer Guide.
*/ inline Statement& WithGeoMatchStatement(const GeoMatchStatement& value) { SetGeoMatchStatement(value); return *this;} /** *A rule statement that labels web requests by country and region and that * matches against web requests based on country code. A geo match rule labels * every request that it inspects regardless of whether it finds a match.
To manage requests only by country, you can use this statement by itself
* and specify the countries that you want to match against in the
* CountryCodes
array.
Otherwise, configure your * geo match rule with Count action so that it only labels requests. Then, add one * or more label match rules to run after the geo match rule and configure them to * match against the geographic labels and handle the requests as needed.
*WAF labels requests using the alpha-2 country and region codes
* from the International Organization for Standardization (ISO) 3166 standard. WAF
* determines the codes using either the IP address in the web request origin or,
* if you specify it, the address in the geo match ForwardedIPConfig
.
*
If you use the web request origin, the label formats are
* awswaf:clientip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:clientip:geo:country:<ISO country
* code>
.
If you use a forwarded IP address, the label formats are
* awswaf:forwardedip:geo:region:<ISO country code>-<ISO region
* code>
and awswaf:forwardedip:geo:country:<ISO country
* code>
.
For additional details, see Geographic * match rule statement in the WAF * Developer Guide.
*/ inline Statement& WithGeoMatchStatement(GeoMatchStatement&& value) { SetGeoMatchStatement(std::move(value)); return *this;} /** *A rule statement used to run the rules that are defined in a * RuleGroup. To use this, create a rule group with your rules, then provide * the ARN of the rule group in this statement.
You cannot nest a
* RuleGroupReferenceStatement
, for example for use inside a
* NotStatement
or OrStatement
. You can only use a rule
* group reference statement at the top level inside a web ACL.
A rule statement used to run the rules that are defined in a * RuleGroup. To use this, create a rule group with your rules, then provide * the ARN of the rule group in this statement.
You cannot nest a
* RuleGroupReferenceStatement
, for example for use inside a
* NotStatement
or OrStatement
. You can only use a rule
* group reference statement at the top level inside a web ACL.
A rule statement used to run the rules that are defined in a * RuleGroup. To use this, create a rule group with your rules, then provide * the ARN of the rule group in this statement.
You cannot nest a
* RuleGroupReferenceStatement
, for example for use inside a
* NotStatement
or OrStatement
. You can only use a rule
* group reference statement at the top level inside a web ACL.
A rule statement used to run the rules that are defined in a * RuleGroup. To use this, create a rule group with your rules, then provide * the ARN of the rule group in this statement.
You cannot nest a
* RuleGroupReferenceStatement
, for example for use inside a
* NotStatement
or OrStatement
. You can only use a rule
* group reference statement at the top level inside a web ACL.
A rule statement used to run the rules that are defined in a * RuleGroup. To use this, create a rule group with your rules, then provide * the ARN of the rule group in this statement.
You cannot nest a
* RuleGroupReferenceStatement
, for example for use inside a
* NotStatement
or OrStatement
. You can only use a rule
* group reference statement at the top level inside a web ACL.
A rule statement used to run the rules that are defined in a * RuleGroup. To use this, create a rule group with your rules, then provide * the ARN of the rule group in this statement.
You cannot nest a
* RuleGroupReferenceStatement
, for example for use inside a
* NotStatement
or OrStatement
. You can only use a rule
* group reference statement at the top level inside a web ACL.
A rule statement used to detect web requests coming from particular IP * addresses or address ranges. To use this, create an IPSet that specifies * the addresses you want to detect, then use the ARN of that set in this * statement. To create an IP set, see CreateIPSet.
Each IP set rule * statement references an IP set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline const IPSetReferenceStatement& GetIPSetReferenceStatement() const{ return m_iPSetReferenceStatement; } /** *A rule statement used to detect web requests coming from particular IP * addresses or address ranges. To use this, create an IPSet that specifies * the addresses you want to detect, then use the ARN of that set in this * statement. To create an IP set, see CreateIPSet.
Each IP set rule * statement references an IP set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline bool IPSetReferenceStatementHasBeenSet() const { return m_iPSetReferenceStatementHasBeenSet; } /** *A rule statement used to detect web requests coming from particular IP * addresses or address ranges. To use this, create an IPSet that specifies * the addresses you want to detect, then use the ARN of that set in this * statement. To create an IP set, see CreateIPSet.
Each IP set rule * statement references an IP set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline void SetIPSetReferenceStatement(const IPSetReferenceStatement& value) { m_iPSetReferenceStatementHasBeenSet = true; m_iPSetReferenceStatement = value; } /** *A rule statement used to detect web requests coming from particular IP * addresses or address ranges. To use this, create an IPSet that specifies * the addresses you want to detect, then use the ARN of that set in this * statement. To create an IP set, see CreateIPSet.
Each IP set rule * statement references an IP set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline void SetIPSetReferenceStatement(IPSetReferenceStatement&& value) { m_iPSetReferenceStatementHasBeenSet = true; m_iPSetReferenceStatement = std::move(value); } /** *A rule statement used to detect web requests coming from particular IP * addresses or address ranges. To use this, create an IPSet that specifies * the addresses you want to detect, then use the ARN of that set in this * statement. To create an IP set, see CreateIPSet.
Each IP set rule * statement references an IP set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline Statement& WithIPSetReferenceStatement(const IPSetReferenceStatement& value) { SetIPSetReferenceStatement(value); return *this;} /** *A rule statement used to detect web requests coming from particular IP * addresses or address ranges. To use this, create an IPSet that specifies * the addresses you want to detect, then use the ARN of that set in this * statement. To create an IP set, see CreateIPSet.
Each IP set rule * statement references an IP set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline Statement& WithIPSetReferenceStatement(IPSetReferenceStatement&& value) { SetIPSetReferenceStatement(std::move(value)); return *this;} /** *A rule statement used to search web request components for matches with * regular expressions. To use this, create a RegexPatternSet that specifies * the expressions that you want to detect, then use the ARN of that set in this * statement. A web request matches the pattern set rule statement if the request * component matches any of the patterns in the set. To create a regex pattern set, * see CreateRegexPatternSet.
Each regex pattern set rule statement * references a regex pattern set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline const RegexPatternSetReferenceStatement& GetRegexPatternSetReferenceStatement() const{ return m_regexPatternSetReferenceStatement; } /** *A rule statement used to search web request components for matches with * regular expressions. To use this, create a RegexPatternSet that specifies * the expressions that you want to detect, then use the ARN of that set in this * statement. A web request matches the pattern set rule statement if the request * component matches any of the patterns in the set. To create a regex pattern set, * see CreateRegexPatternSet.
Each regex pattern set rule statement * references a regex pattern set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline bool RegexPatternSetReferenceStatementHasBeenSet() const { return m_regexPatternSetReferenceStatementHasBeenSet; } /** *A rule statement used to search web request components for matches with * regular expressions. To use this, create a RegexPatternSet that specifies * the expressions that you want to detect, then use the ARN of that set in this * statement. A web request matches the pattern set rule statement if the request * component matches any of the patterns in the set. To create a regex pattern set, * see CreateRegexPatternSet.
Each regex pattern set rule statement * references a regex pattern set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline void SetRegexPatternSetReferenceStatement(const RegexPatternSetReferenceStatement& value) { m_regexPatternSetReferenceStatementHasBeenSet = true; m_regexPatternSetReferenceStatement = value; } /** *A rule statement used to search web request components for matches with * regular expressions. To use this, create a RegexPatternSet that specifies * the expressions that you want to detect, then use the ARN of that set in this * statement. A web request matches the pattern set rule statement if the request * component matches any of the patterns in the set. To create a regex pattern set, * see CreateRegexPatternSet.
Each regex pattern set rule statement * references a regex pattern set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline void SetRegexPatternSetReferenceStatement(RegexPatternSetReferenceStatement&& value) { m_regexPatternSetReferenceStatementHasBeenSet = true; m_regexPatternSetReferenceStatement = std::move(value); } /** *A rule statement used to search web request components for matches with * regular expressions. To use this, create a RegexPatternSet that specifies * the expressions that you want to detect, then use the ARN of that set in this * statement. A web request matches the pattern set rule statement if the request * component matches any of the patterns in the set. To create a regex pattern set, * see CreateRegexPatternSet.
Each regex pattern set rule statement * references a regex pattern set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline Statement& WithRegexPatternSetReferenceStatement(const RegexPatternSetReferenceStatement& value) { SetRegexPatternSetReferenceStatement(value); return *this;} /** *A rule statement used to search web request components for matches with * regular expressions. To use this, create a RegexPatternSet that specifies * the expressions that you want to detect, then use the ARN of that set in this * statement. A web request matches the pattern set rule statement if the request * component matches any of the patterns in the set. To create a regex pattern set, * see CreateRegexPatternSet.
Each regex pattern set rule statement * references a regex pattern set. You create and maintain the set independent of * your rules. This allows you to use the single set in multiple rules. When you * update the referenced set, WAF automatically updates all rules that reference * it.
*/ inline Statement& WithRegexPatternSetReferenceStatement(RegexPatternSetReferenceStatement&& value) { SetRegexPatternSetReferenceStatement(std::move(value)); return *this;} /** *A rate-based rule counts incoming requests and rate limits requests when they * are coming at too fast a rate. The rule categorizes requests according to your * aggregation criteria, collects them into aggregation instances, and counts and * rate limits the requests for each instance.
You can specify individual * aggregation keys, like IP address or HTTP method. You can also specify * aggregation key combinations, like IP address and HTTP method, or HTTP method, * query argument, and cookie.
Each unique set of values for the * aggregation keys that you specify is a separate aggregation instance, with the * value from each key contributing to the aggregation instance definition.
*For example, assume the rule evaluates web requests with the following IP * address and HTTP method values:
IP address 10.1.1.1, HTTP * method POST
IP address 10.1.1.1, HTTP method GET
IP address 127.0.0.0, HTTP method POST
IP address * 10.1.1.1, HTTP method GET
The rule would create different * aggregation instances according to your aggregation criteria, for example:
*If the aggregation criteria is just the IP address, then each * individual address is an aggregation instance, and WAF counts requests * separately for each. The aggregation instances and request counts for our * example would be the following:
IP address 10.1.1.1: count * 3
IP address 127.0.0.0: count 1
If the aggregation criteria is HTTP method, then each individual HTTP method * is an aggregation instance. The aggregation instances and request counts for our * example would be the following:
HTTP method POST: count 2
*HTTP method GET: count 2
If the * aggregation criteria is IP address and HTTP method, then each IP address and * each HTTP method would contribute to the combined aggregation instance. The * aggregation instances and request counts for our example would be the following: *
IP address 10.1.1.1, HTTP method POST: count 1
IP address 10.1.1.1, HTTP method GET: count 2
IP address * 127.0.0.0, HTTP method POST: count 1
For any * n-tuple of aggregation keys, each unique combination of values for the keys * defines a separate aggregation instance, which WAF counts and rate-limits * individually.
You can optionally nest another statement inside the * rate-based statement, to narrow the scope of the rule so that it only counts and * rate limits requests that match the nested statement. You can use this nested * scope-down statement in conjunction with your aggregation key specifications or * you can just count and rate limit all requests that match the scope-down * statement, without additional aggregation. When you choose to just manage all * requests that match a scope-down statement, the aggregation instance is singular * for the rule.
You cannot nest a RateBasedStatement
inside
* another statement, for example inside a NotStatement
or
* OrStatement
. You can define a RateBasedStatement
* inside a web ACL and inside a rule group.
For additional information * about the options, see Rate * limiting web requests using rate-based rules in the WAF Developer * Guide.
If you only aggregate on the individual IP address or
* forwarded IP address, you can retrieve the list of IP addresses that WAF is
* currently rate limiting for a rule through the API call
* GetRateBasedStatementManagedKeys
. This option is not available for
* other aggregation configurations.
WAF tracks and manages web requests * separately for each instance of a rate-based rule that you use. For example, if * you provide the same rate-based rule settings in two web ACLs, each of the two * rule statements represents a separate instance of the rate-based rule and gets * its own tracking and management by WAF. If you define a rate-based rule inside a * rule group, and then use that rule group in multiple places, each use creates a * separate instance of the rate-based rule that gets its own tracking and * management by WAF.
*/ AWS_WAFV2_API const RateBasedStatement& GetRateBasedStatement() const; /** *A rate-based rule counts incoming requests and rate limits requests when they * are coming at too fast a rate. The rule categorizes requests according to your * aggregation criteria, collects them into aggregation instances, and counts and * rate limits the requests for each instance.
You can specify individual * aggregation keys, like IP address or HTTP method. You can also specify * aggregation key combinations, like IP address and HTTP method, or HTTP method, * query argument, and cookie.
Each unique set of values for the * aggregation keys that you specify is a separate aggregation instance, with the * value from each key contributing to the aggregation instance definition.
*For example, assume the rule evaluates web requests with the following IP * address and HTTP method values:
IP address 10.1.1.1, HTTP * method POST
IP address 10.1.1.1, HTTP method GET
IP address 127.0.0.0, HTTP method POST
IP address * 10.1.1.1, HTTP method GET
The rule would create different * aggregation instances according to your aggregation criteria, for example:
*If the aggregation criteria is just the IP address, then each * individual address is an aggregation instance, and WAF counts requests * separately for each. The aggregation instances and request counts for our * example would be the following:
IP address 10.1.1.1: count * 3
IP address 127.0.0.0: count 1
If the aggregation criteria is HTTP method, then each individual HTTP method * is an aggregation instance. The aggregation instances and request counts for our * example would be the following:
HTTP method POST: count 2
*HTTP method GET: count 2
If the * aggregation criteria is IP address and HTTP method, then each IP address and * each HTTP method would contribute to the combined aggregation instance. The * aggregation instances and request counts for our example would be the following: *
IP address 10.1.1.1, HTTP method POST: count 1
IP address 10.1.1.1, HTTP method GET: count 2
IP address * 127.0.0.0, HTTP method POST: count 1
For any * n-tuple of aggregation keys, each unique combination of values for the keys * defines a separate aggregation instance, which WAF counts and rate-limits * individually.
You can optionally nest another statement inside the * rate-based statement, to narrow the scope of the rule so that it only counts and * rate limits requests that match the nested statement. You can use this nested * scope-down statement in conjunction with your aggregation key specifications or * you can just count and rate limit all requests that match the scope-down * statement, without additional aggregation. When you choose to just manage all * requests that match a scope-down statement, the aggregation instance is singular * for the rule.
You cannot nest a RateBasedStatement
inside
* another statement, for example inside a NotStatement
or
* OrStatement
. You can define a RateBasedStatement
* inside a web ACL and inside a rule group.
For additional information * about the options, see Rate * limiting web requests using rate-based rules in the WAF Developer * Guide.
If you only aggregate on the individual IP address or
* forwarded IP address, you can retrieve the list of IP addresses that WAF is
* currently rate limiting for a rule through the API call
* GetRateBasedStatementManagedKeys
. This option is not available for
* other aggregation configurations.
WAF tracks and manages web requests * separately for each instance of a rate-based rule that you use. For example, if * you provide the same rate-based rule settings in two web ACLs, each of the two * rule statements represents a separate instance of the rate-based rule and gets * its own tracking and management by WAF. If you define a rate-based rule inside a * rule group, and then use that rule group in multiple places, each use creates a * separate instance of the rate-based rule that gets its own tracking and * management by WAF.
*/ AWS_WAFV2_API bool RateBasedStatementHasBeenSet() const; /** *A rate-based rule counts incoming requests and rate limits requests when they * are coming at too fast a rate. The rule categorizes requests according to your * aggregation criteria, collects them into aggregation instances, and counts and * rate limits the requests for each instance.
You can specify individual * aggregation keys, like IP address or HTTP method. You can also specify * aggregation key combinations, like IP address and HTTP method, or HTTP method, * query argument, and cookie.
Each unique set of values for the * aggregation keys that you specify is a separate aggregation instance, with the * value from each key contributing to the aggregation instance definition.
*For example, assume the rule evaluates web requests with the following IP * address and HTTP method values:
IP address 10.1.1.1, HTTP * method POST
IP address 10.1.1.1, HTTP method GET
IP address 127.0.0.0, HTTP method POST
IP address * 10.1.1.1, HTTP method GET
The rule would create different * aggregation instances according to your aggregation criteria, for example:
*If the aggregation criteria is just the IP address, then each * individual address is an aggregation instance, and WAF counts requests * separately for each. The aggregation instances and request counts for our * example would be the following:
IP address 10.1.1.1: count * 3
IP address 127.0.0.0: count 1
If the aggregation criteria is HTTP method, then each individual HTTP method * is an aggregation instance. The aggregation instances and request counts for our * example would be the following:
HTTP method POST: count 2
*HTTP method GET: count 2
If the * aggregation criteria is IP address and HTTP method, then each IP address and * each HTTP method would contribute to the combined aggregation instance. The * aggregation instances and request counts for our example would be the following: *
IP address 10.1.1.1, HTTP method POST: count 1
IP address 10.1.1.1, HTTP method GET: count 2
IP address * 127.0.0.0, HTTP method POST: count 1
For any * n-tuple of aggregation keys, each unique combination of values for the keys * defines a separate aggregation instance, which WAF counts and rate-limits * individually.
You can optionally nest another statement inside the * rate-based statement, to narrow the scope of the rule so that it only counts and * rate limits requests that match the nested statement. You can use this nested * scope-down statement in conjunction with your aggregation key specifications or * you can just count and rate limit all requests that match the scope-down * statement, without additional aggregation. When you choose to just manage all * requests that match a scope-down statement, the aggregation instance is singular * for the rule.
You cannot nest a RateBasedStatement
inside
* another statement, for example inside a NotStatement
or
* OrStatement
. You can define a RateBasedStatement
* inside a web ACL and inside a rule group.
For additional information * about the options, see Rate * limiting web requests using rate-based rules in the WAF Developer * Guide.
If you only aggregate on the individual IP address or
* forwarded IP address, you can retrieve the list of IP addresses that WAF is
* currently rate limiting for a rule through the API call
* GetRateBasedStatementManagedKeys
. This option is not available for
* other aggregation configurations.
WAF tracks and manages web requests * separately for each instance of a rate-based rule that you use. For example, if * you provide the same rate-based rule settings in two web ACLs, each of the two * rule statements represents a separate instance of the rate-based rule and gets * its own tracking and management by WAF. If you define a rate-based rule inside a * rule group, and then use that rule group in multiple places, each use creates a * separate instance of the rate-based rule that gets its own tracking and * management by WAF.
*/ AWS_WAFV2_API void SetRateBasedStatement(const RateBasedStatement& value); /** *A rate-based rule counts incoming requests and rate limits requests when they * are coming at too fast a rate. The rule categorizes requests according to your * aggregation criteria, collects them into aggregation instances, and counts and * rate limits the requests for each instance.
You can specify individual * aggregation keys, like IP address or HTTP method. You can also specify * aggregation key combinations, like IP address and HTTP method, or HTTP method, * query argument, and cookie.
Each unique set of values for the * aggregation keys that you specify is a separate aggregation instance, with the * value from each key contributing to the aggregation instance definition.
*For example, assume the rule evaluates web requests with the following IP * address and HTTP method values:
IP address 10.1.1.1, HTTP * method POST
IP address 10.1.1.1, HTTP method GET
IP address 127.0.0.0, HTTP method POST
IP address * 10.1.1.1, HTTP method GET
The rule would create different * aggregation instances according to your aggregation criteria, for example:
*If the aggregation criteria is just the IP address, then each * individual address is an aggregation instance, and WAF counts requests * separately for each. The aggregation instances and request counts for our * example would be the following:
IP address 10.1.1.1: count * 3
IP address 127.0.0.0: count 1
If the aggregation criteria is HTTP method, then each individual HTTP method * is an aggregation instance. The aggregation instances and request counts for our * example would be the following:
HTTP method POST: count 2
*HTTP method GET: count 2
If the * aggregation criteria is IP address and HTTP method, then each IP address and * each HTTP method would contribute to the combined aggregation instance. The * aggregation instances and request counts for our example would be the following: *
IP address 10.1.1.1, HTTP method POST: count 1
IP address 10.1.1.1, HTTP method GET: count 2
IP address * 127.0.0.0, HTTP method POST: count 1
For any * n-tuple of aggregation keys, each unique combination of values for the keys * defines a separate aggregation instance, which WAF counts and rate-limits * individually.
You can optionally nest another statement inside the * rate-based statement, to narrow the scope of the rule so that it only counts and * rate limits requests that match the nested statement. You can use this nested * scope-down statement in conjunction with your aggregation key specifications or * you can just count and rate limit all requests that match the scope-down * statement, without additional aggregation. When you choose to just manage all * requests that match a scope-down statement, the aggregation instance is singular * for the rule.
You cannot nest a RateBasedStatement
inside
* another statement, for example inside a NotStatement
or
* OrStatement
. You can define a RateBasedStatement
* inside a web ACL and inside a rule group.
For additional information * about the options, see Rate * limiting web requests using rate-based rules in the WAF Developer * Guide.
If you only aggregate on the individual IP address or
* forwarded IP address, you can retrieve the list of IP addresses that WAF is
* currently rate limiting for a rule through the API call
* GetRateBasedStatementManagedKeys
. This option is not available for
* other aggregation configurations.
WAF tracks and manages web requests * separately for each instance of a rate-based rule that you use. For example, if * you provide the same rate-based rule settings in two web ACLs, each of the two * rule statements represents a separate instance of the rate-based rule and gets * its own tracking and management by WAF. If you define a rate-based rule inside a * rule group, and then use that rule group in multiple places, each use creates a * separate instance of the rate-based rule that gets its own tracking and * management by WAF.
*/ AWS_WAFV2_API void SetRateBasedStatement(RateBasedStatement&& value); /** *A rate-based rule counts incoming requests and rate limits requests when they * are coming at too fast a rate. The rule categorizes requests according to your * aggregation criteria, collects them into aggregation instances, and counts and * rate limits the requests for each instance.
You can specify individual * aggregation keys, like IP address or HTTP method. You can also specify * aggregation key combinations, like IP address and HTTP method, or HTTP method, * query argument, and cookie.
Each unique set of values for the * aggregation keys that you specify is a separate aggregation instance, with the * value from each key contributing to the aggregation instance definition.
*For example, assume the rule evaluates web requests with the following IP * address and HTTP method values:
IP address 10.1.1.1, HTTP * method POST
IP address 10.1.1.1, HTTP method GET
IP address 127.0.0.0, HTTP method POST
IP address * 10.1.1.1, HTTP method GET
The rule would create different * aggregation instances according to your aggregation criteria, for example:
*If the aggregation criteria is just the IP address, then each * individual address is an aggregation instance, and WAF counts requests * separately for each. The aggregation instances and request counts for our * example would be the following:
IP address 10.1.1.1: count * 3
IP address 127.0.0.0: count 1
If the aggregation criteria is HTTP method, then each individual HTTP method * is an aggregation instance. The aggregation instances and request counts for our * example would be the following:
HTTP method POST: count 2
*HTTP method GET: count 2
If the * aggregation criteria is IP address and HTTP method, then each IP address and * each HTTP method would contribute to the combined aggregation instance. The * aggregation instances and request counts for our example would be the following: *
IP address 10.1.1.1, HTTP method POST: count 1
IP address 10.1.1.1, HTTP method GET: count 2
IP address * 127.0.0.0, HTTP method POST: count 1
For any * n-tuple of aggregation keys, each unique combination of values for the keys * defines a separate aggregation instance, which WAF counts and rate-limits * individually.
You can optionally nest another statement inside the * rate-based statement, to narrow the scope of the rule so that it only counts and * rate limits requests that match the nested statement. You can use this nested * scope-down statement in conjunction with your aggregation key specifications or * you can just count and rate limit all requests that match the scope-down * statement, without additional aggregation. When you choose to just manage all * requests that match a scope-down statement, the aggregation instance is singular * for the rule.
You cannot nest a RateBasedStatement
inside
* another statement, for example inside a NotStatement
or
* OrStatement
. You can define a RateBasedStatement
* inside a web ACL and inside a rule group.
For additional information * about the options, see Rate * limiting web requests using rate-based rules in the WAF Developer * Guide.
If you only aggregate on the individual IP address or
* forwarded IP address, you can retrieve the list of IP addresses that WAF is
* currently rate limiting for a rule through the API call
* GetRateBasedStatementManagedKeys
. This option is not available for
* other aggregation configurations.
WAF tracks and manages web requests * separately for each instance of a rate-based rule that you use. For example, if * you provide the same rate-based rule settings in two web ACLs, each of the two * rule statements represents a separate instance of the rate-based rule and gets * its own tracking and management by WAF. If you define a rate-based rule inside a * rule group, and then use that rule group in multiple places, each use creates a * separate instance of the rate-based rule that gets its own tracking and * management by WAF.
*/ AWS_WAFV2_API Statement& WithRateBasedStatement(const RateBasedStatement& value); /** *A rate-based rule counts incoming requests and rate limits requests when they * are coming at too fast a rate. The rule categorizes requests according to your * aggregation criteria, collects them into aggregation instances, and counts and * rate limits the requests for each instance.
You can specify individual * aggregation keys, like IP address or HTTP method. You can also specify * aggregation key combinations, like IP address and HTTP method, or HTTP method, * query argument, and cookie.
Each unique set of values for the * aggregation keys that you specify is a separate aggregation instance, with the * value from each key contributing to the aggregation instance definition.
*For example, assume the rule evaluates web requests with the following IP * address and HTTP method values:
IP address 10.1.1.1, HTTP * method POST
IP address 10.1.1.1, HTTP method GET
IP address 127.0.0.0, HTTP method POST
IP address * 10.1.1.1, HTTP method GET
The rule would create different * aggregation instances according to your aggregation criteria, for example:
*If the aggregation criteria is just the IP address, then each * individual address is an aggregation instance, and WAF counts requests * separately for each. The aggregation instances and request counts for our * example would be the following:
IP address 10.1.1.1: count * 3
IP address 127.0.0.0: count 1
If the aggregation criteria is HTTP method, then each individual HTTP method * is an aggregation instance. The aggregation instances and request counts for our * example would be the following:
HTTP method POST: count 2
*HTTP method GET: count 2
If the * aggregation criteria is IP address and HTTP method, then each IP address and * each HTTP method would contribute to the combined aggregation instance. The * aggregation instances and request counts for our example would be the following: *
IP address 10.1.1.1, HTTP method POST: count 1
IP address 10.1.1.1, HTTP method GET: count 2
IP address * 127.0.0.0, HTTP method POST: count 1
For any * n-tuple of aggregation keys, each unique combination of values for the keys * defines a separate aggregation instance, which WAF counts and rate-limits * individually.
You can optionally nest another statement inside the * rate-based statement, to narrow the scope of the rule so that it only counts and * rate limits requests that match the nested statement. You can use this nested * scope-down statement in conjunction with your aggregation key specifications or * you can just count and rate limit all requests that match the scope-down * statement, without additional aggregation. When you choose to just manage all * requests that match a scope-down statement, the aggregation instance is singular * for the rule.
You cannot nest a RateBasedStatement
inside
* another statement, for example inside a NotStatement
or
* OrStatement
. You can define a RateBasedStatement
* inside a web ACL and inside a rule group.
For additional information * about the options, see Rate * limiting web requests using rate-based rules in the WAF Developer * Guide.
If you only aggregate on the individual IP address or
* forwarded IP address, you can retrieve the list of IP addresses that WAF is
* currently rate limiting for a rule through the API call
* GetRateBasedStatementManagedKeys
. This option is not available for
* other aggregation configurations.
WAF tracks and manages web requests * separately for each instance of a rate-based rule that you use. For example, if * you provide the same rate-based rule settings in two web ACLs, each of the two * rule statements represents a separate instance of the rate-based rule and gets * its own tracking and management by WAF. If you define a rate-based rule inside a * rule group, and then use that rule group in multiple places, each use creates a * separate instance of the rate-based rule that gets its own tracking and * management by WAF.
*/ AWS_WAFV2_API Statement& WithRateBasedStatement(RateBasedStatement&& value); /** *A logical rule statement used to combine other rule statements with AND
* logic. You provide more than one Statement within the
* AndStatement
.
A logical rule statement used to combine other rule statements with AND
* logic. You provide more than one Statement within the
* AndStatement
.
A logical rule statement used to combine other rule statements with AND
* logic. You provide more than one Statement within the
* AndStatement
.
A logical rule statement used to combine other rule statements with AND
* logic. You provide more than one Statement within the
* AndStatement
.
A logical rule statement used to combine other rule statements with AND
* logic. You provide more than one Statement within the
* AndStatement
.
A logical rule statement used to combine other rule statements with AND
* logic. You provide more than one Statement within the
* AndStatement
.
A logical rule statement used to combine other rule statements with OR logic.
* You provide more than one Statement within the OrStatement
.
*
A logical rule statement used to combine other rule statements with OR logic.
* You provide more than one Statement within the OrStatement
.
*
A logical rule statement used to combine other rule statements with OR logic.
* You provide more than one Statement within the OrStatement
.
*
A logical rule statement used to combine other rule statements with OR logic.
* You provide more than one Statement within the OrStatement
.
*
A logical rule statement used to combine other rule statements with OR logic.
* You provide more than one Statement within the OrStatement
.
*
A logical rule statement used to combine other rule statements with OR logic.
* You provide more than one Statement within the OrStatement
.
*
A logical rule statement used to negate the results of another rule
* statement. You provide one Statement within the
* NotStatement
.
A logical rule statement used to negate the results of another rule
* statement. You provide one Statement within the
* NotStatement
.
A logical rule statement used to negate the results of another rule
* statement. You provide one Statement within the
* NotStatement
.
A logical rule statement used to negate the results of another rule
* statement. You provide one Statement within the
* NotStatement
.
A logical rule statement used to negate the results of another rule
* statement. You provide one Statement within the
* NotStatement
.
A logical rule statement used to negate the results of another rule
* statement. You provide one Statement within the
* NotStatement
.
A rule statement used to run the rules that are defined in a managed rule * group. To use this, provide the vendor name and the name of the rule group in * this statement. You can retrieve the required names by calling * ListAvailableManagedRuleGroups.
You cannot nest a
* ManagedRuleGroupStatement
, for example for use inside a
* NotStatement
or OrStatement
. It can only be referenced
* as a top-level statement within a rule.
You are charged additional
* fees when you use the WAF Bot Control managed rule group
* AWSManagedRulesBotControlRuleSet
, the WAF Fraud Control account
* takeover prevention (ATP) managed rule group
* AWSManagedRulesATPRuleSet
, or the WAF Fraud Control account
* creation fraud prevention (ACFP) managed rule group
* AWSManagedRulesACFPRuleSet
. For more information, see WAF Pricing.
A rule statement used to run the rules that are defined in a managed rule * group. To use this, provide the vendor name and the name of the rule group in * this statement. You can retrieve the required names by calling * ListAvailableManagedRuleGroups.
You cannot nest a
* ManagedRuleGroupStatement
, for example for use inside a
* NotStatement
or OrStatement
. It can only be referenced
* as a top-level statement within a rule.
You are charged additional
* fees when you use the WAF Bot Control managed rule group
* AWSManagedRulesBotControlRuleSet
, the WAF Fraud Control account
* takeover prevention (ATP) managed rule group
* AWSManagedRulesATPRuleSet
, or the WAF Fraud Control account
* creation fraud prevention (ACFP) managed rule group
* AWSManagedRulesACFPRuleSet
. For more information, see WAF Pricing.
A rule statement used to run the rules that are defined in a managed rule * group. To use this, provide the vendor name and the name of the rule group in * this statement. You can retrieve the required names by calling * ListAvailableManagedRuleGroups.
You cannot nest a
* ManagedRuleGroupStatement
, for example for use inside a
* NotStatement
or OrStatement
. It can only be referenced
* as a top-level statement within a rule.
You are charged additional
* fees when you use the WAF Bot Control managed rule group
* AWSManagedRulesBotControlRuleSet
, the WAF Fraud Control account
* takeover prevention (ATP) managed rule group
* AWSManagedRulesATPRuleSet
, or the WAF Fraud Control account
* creation fraud prevention (ACFP) managed rule group
* AWSManagedRulesACFPRuleSet
. For more information, see WAF Pricing.
A rule statement used to run the rules that are defined in a managed rule * group. To use this, provide the vendor name and the name of the rule group in * this statement. You can retrieve the required names by calling * ListAvailableManagedRuleGroups.
You cannot nest a
* ManagedRuleGroupStatement
, for example for use inside a
* NotStatement
or OrStatement
. It can only be referenced
* as a top-level statement within a rule.
You are charged additional
* fees when you use the WAF Bot Control managed rule group
* AWSManagedRulesBotControlRuleSet
, the WAF Fraud Control account
* takeover prevention (ATP) managed rule group
* AWSManagedRulesATPRuleSet
, or the WAF Fraud Control account
* creation fraud prevention (ACFP) managed rule group
* AWSManagedRulesACFPRuleSet
. For more information, see WAF Pricing.
A rule statement used to run the rules that are defined in a managed rule * group. To use this, provide the vendor name and the name of the rule group in * this statement. You can retrieve the required names by calling * ListAvailableManagedRuleGroups.
You cannot nest a
* ManagedRuleGroupStatement
, for example for use inside a
* NotStatement
or OrStatement
. It can only be referenced
* as a top-level statement within a rule.
You are charged additional
* fees when you use the WAF Bot Control managed rule group
* AWSManagedRulesBotControlRuleSet
, the WAF Fraud Control account
* takeover prevention (ATP) managed rule group
* AWSManagedRulesATPRuleSet
, or the WAF Fraud Control account
* creation fraud prevention (ACFP) managed rule group
* AWSManagedRulesACFPRuleSet
. For more information, see WAF Pricing.
A rule statement used to run the rules that are defined in a managed rule * group. To use this, provide the vendor name and the name of the rule group in * this statement. You can retrieve the required names by calling * ListAvailableManagedRuleGroups.
You cannot nest a
* ManagedRuleGroupStatement
, for example for use inside a
* NotStatement
or OrStatement
. It can only be referenced
* as a top-level statement within a rule.
You are charged additional
* fees when you use the WAF Bot Control managed rule group
* AWSManagedRulesBotControlRuleSet
, the WAF Fraud Control account
* takeover prevention (ATP) managed rule group
* AWSManagedRulesATPRuleSet
, or the WAF Fraud Control account
* creation fraud prevention (ACFP) managed rule group
* AWSManagedRulesACFPRuleSet
. For more information, see WAF Pricing.
A rule statement to match against labels that have been added to the web * request by rules that have already run in the web ACL.
The label match * statement provides the label or namespace string to search for. The label string * can represent a part or all of the fully qualified label name that had been * added to the web request. Fully qualified labels have a prefix, optional * namespaces, and label name. The prefix identifies the rule group or web ACL * context of the rule that added the label. If you do not provide the fully * qualified name in your label match string, WAF performs the search for labels * that were added in the same context as the label match statement.
*/ inline const LabelMatchStatement& GetLabelMatchStatement() const{ return m_labelMatchStatement; } /** *A rule statement to match against labels that have been added to the web * request by rules that have already run in the web ACL.
The label match * statement provides the label or namespace string to search for. The label string * can represent a part or all of the fully qualified label name that had been * added to the web request. Fully qualified labels have a prefix, optional * namespaces, and label name. The prefix identifies the rule group or web ACL * context of the rule that added the label. If you do not provide the fully * qualified name in your label match string, WAF performs the search for labels * that were added in the same context as the label match statement.
*/ inline bool LabelMatchStatementHasBeenSet() const { return m_labelMatchStatementHasBeenSet; } /** *A rule statement to match against labels that have been added to the web * request by rules that have already run in the web ACL.
The label match * statement provides the label or namespace string to search for. The label string * can represent a part or all of the fully qualified label name that had been * added to the web request. Fully qualified labels have a prefix, optional * namespaces, and label name. The prefix identifies the rule group or web ACL * context of the rule that added the label. If you do not provide the fully * qualified name in your label match string, WAF performs the search for labels * that were added in the same context as the label match statement.
*/ inline void SetLabelMatchStatement(const LabelMatchStatement& value) { m_labelMatchStatementHasBeenSet = true; m_labelMatchStatement = value; } /** *A rule statement to match against labels that have been added to the web * request by rules that have already run in the web ACL.
The label match * statement provides the label or namespace string to search for. The label string * can represent a part or all of the fully qualified label name that had been * added to the web request. Fully qualified labels have a prefix, optional * namespaces, and label name. The prefix identifies the rule group or web ACL * context of the rule that added the label. If you do not provide the fully * qualified name in your label match string, WAF performs the search for labels * that were added in the same context as the label match statement.
*/ inline void SetLabelMatchStatement(LabelMatchStatement&& value) { m_labelMatchStatementHasBeenSet = true; m_labelMatchStatement = std::move(value); } /** *A rule statement to match against labels that have been added to the web * request by rules that have already run in the web ACL.
The label match * statement provides the label or namespace string to search for. The label string * can represent a part or all of the fully qualified label name that had been * added to the web request. Fully qualified labels have a prefix, optional * namespaces, and label name. The prefix identifies the rule group or web ACL * context of the rule that added the label. If you do not provide the fully * qualified name in your label match string, WAF performs the search for labels * that were added in the same context as the label match statement.
*/ inline Statement& WithLabelMatchStatement(const LabelMatchStatement& value) { SetLabelMatchStatement(value); return *this;} /** *A rule statement to match against labels that have been added to the web * request by rules that have already run in the web ACL.
The label match * statement provides the label or namespace string to search for. The label string * can represent a part or all of the fully qualified label name that had been * added to the web request. Fully qualified labels have a prefix, optional * namespaces, and label name. The prefix identifies the rule group or web ACL * context of the rule that added the label. If you do not provide the fully * qualified name in your label match string, WAF performs the search for labels * that were added in the same context as the label match statement.
*/ inline Statement& WithLabelMatchStatement(LabelMatchStatement&& value) { SetLabelMatchStatement(std::move(value)); return *this;} /** *A rule statement used to search web request components for a match against a * single regular expression.
*/ inline const RegexMatchStatement& GetRegexMatchStatement() const{ return m_regexMatchStatement; } /** *A rule statement used to search web request components for a match against a * single regular expression.
*/ inline bool RegexMatchStatementHasBeenSet() const { return m_regexMatchStatementHasBeenSet; } /** *A rule statement used to search web request components for a match against a * single regular expression.
*/ inline void SetRegexMatchStatement(const RegexMatchStatement& value) { m_regexMatchStatementHasBeenSet = true; m_regexMatchStatement = value; } /** *A rule statement used to search web request components for a match against a * single regular expression.
*/ inline void SetRegexMatchStatement(RegexMatchStatement&& value) { m_regexMatchStatementHasBeenSet = true; m_regexMatchStatement = std::move(value); } /** *A rule statement used to search web request components for a match against a * single regular expression.
*/ inline Statement& WithRegexMatchStatement(const RegexMatchStatement& value) { SetRegexMatchStatement(value); return *this;} /** *A rule statement used to search web request components for a match against a * single regular expression.
*/ inline Statement& WithRegexMatchStatement(RegexMatchStatement&& value) { SetRegexMatchStatement(std::move(value)); return *this;} private: ByteMatchStatement m_byteMatchStatement; bool m_byteMatchStatementHasBeenSet = false; SqliMatchStatement m_sqliMatchStatement; bool m_sqliMatchStatementHasBeenSet = false; XssMatchStatement m_xssMatchStatement; bool m_xssMatchStatementHasBeenSet = false; SizeConstraintStatement m_sizeConstraintStatement; bool m_sizeConstraintStatementHasBeenSet = false; GeoMatchStatement m_geoMatchStatement; bool m_geoMatchStatementHasBeenSet = false; RuleGroupReferenceStatement m_ruleGroupReferenceStatement; bool m_ruleGroupReferenceStatementHasBeenSet = false; IPSetReferenceStatement m_iPSetReferenceStatement; bool m_iPSetReferenceStatementHasBeenSet = false; RegexPatternSetReferenceStatement m_regexPatternSetReferenceStatement; bool m_regexPatternSetReferenceStatementHasBeenSet = false; std::shared_ptr