/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The part of the web request that you want WAF to inspect. Include the single
* Example JSON for a Example JSON for a FieldToMatch type that you want to inspect, with additional
* specifications as needed, according to the type. You specify a single request
* component in FieldToMatch for each rule statement that requires it.
* To inspect more than one component of the web request, create a separate rule
* statement for each component.QueryString
* field to match: "FieldToMatch": { "QueryString": {} }
* Method field to match specification: "FieldToMatch": { "Method": { "Name": "DELETE" } }
* See Also:
AWS
* API Reference
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack"
* }
Alternately, you can filter and inspect all headers with the
* Headers FieldToMatch setting.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack"
* }
Alternately, you can filter and inspect all headers with the
* Headers FieldToMatch setting.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack"
* }
Alternately, you can filter and inspect all headers with the
* Headers FieldToMatch setting.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack"
* }
Alternately, you can filter and inspect all headers with the
* Headers FieldToMatch setting.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack"
* }
Alternately, you can filter and inspect all headers with the
* Headers FieldToMatch setting.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack"
* }
Alternately, you can filter and inspect all headers with the
* Headers FieldToMatch setting.
Inspect a single query argument. Provide the name of the query argument to * inspect, such as UserName or SalesRegion. The name can be up to 30 * characters long and isn't case sensitive.
Example JSON:
* "SingleQueryArgument": { "Name": "myArgument" }
Inspect a single query argument. Provide the name of the query argument to * inspect, such as UserName or SalesRegion. The name can be up to 30 * characters long and isn't case sensitive.
Example JSON:
* "SingleQueryArgument": { "Name": "myArgument" }
Inspect a single query argument. Provide the name of the query argument to * inspect, such as UserName or SalesRegion. The name can be up to 30 * characters long and isn't case sensitive.
Example JSON:
* "SingleQueryArgument": { "Name": "myArgument" }
Inspect a single query argument. Provide the name of the query argument to * inspect, such as UserName or SalesRegion. The name can be up to 30 * characters long and isn't case sensitive.
Example JSON:
* "SingleQueryArgument": { "Name": "myArgument" }
Inspect a single query argument. Provide the name of the query argument to * inspect, such as UserName or SalesRegion. The name can be up to 30 * characters long and isn't case sensitive.
Example JSON:
* "SingleQueryArgument": { "Name": "myArgument" }
Inspect a single query argument. Provide the name of the query argument to * inspect, such as UserName or SalesRegion. The name can be up to 30 * characters long and isn't case sensitive.
Example JSON:
* "SingleQueryArgument": { "Name": "myArgument" }
Inspect all query arguments.
*/ inline const AllQueryArguments& GetAllQueryArguments() const{ return m_allQueryArguments; } /** *Inspect all query arguments.
*/ inline bool AllQueryArgumentsHasBeenSet() const { return m_allQueryArgumentsHasBeenSet; } /** *Inspect all query arguments.
*/ inline void SetAllQueryArguments(const AllQueryArguments& value) { m_allQueryArgumentsHasBeenSet = true; m_allQueryArguments = value; } /** *Inspect all query arguments.
*/ inline void SetAllQueryArguments(AllQueryArguments&& value) { m_allQueryArgumentsHasBeenSet = true; m_allQueryArguments = std::move(value); } /** *Inspect all query arguments.
*/ inline FieldToMatch& WithAllQueryArguments(const AllQueryArguments& value) { SetAllQueryArguments(value); return *this;} /** *Inspect all query arguments.
*/ inline FieldToMatch& WithAllQueryArguments(AllQueryArguments&& value) { SetAllQueryArguments(std::move(value)); return *this;} /** *Inspect the request URI path. This is the part of the web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of the web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of the web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of the web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of the web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of the web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the query string. This is the part of a URL that appears after a
* ? character, if any.
Inspect the query string. This is the part of a URL that appears after a
* ? character, if any.
Inspect the query string. This is the part of a URL that appears after a
* ? character, if any.
Inspect the query string. This is the part of a URL that appears after a
* ? character, if any.
Inspect the query string. This is the part of a URL that appears after a
* ? character, if any.
Inspect the query string. This is the part of a URL that appears after a
* ? character, if any.
Inspect the request body as plain text. The request body immediately follows * the request headers. This is the part of a request that contains any additional * data that you want to send to your web server as the HTTP request body, such as * data from a form.
A limited amount of the request body is forwarded to
* WAF for inspection by the underlying host service. For regional resources, the
* limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is
* 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the
* limit in the web ACL's AssociationConfig, for additional processing
* fees.
For information about how to handle oversized request bodies, see
* the Body object configuration.
Inspect the request body as plain text. The request body immediately follows * the request headers. This is the part of a request that contains any additional * data that you want to send to your web server as the HTTP request body, such as * data from a form.
A limited amount of the request body is forwarded to
* WAF for inspection by the underlying host service. For regional resources, the
* limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is
* 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the
* limit in the web ACL's AssociationConfig, for additional processing
* fees.
For information about how to handle oversized request bodies, see
* the Body object configuration.
Inspect the request body as plain text. The request body immediately follows * the request headers. This is the part of a request that contains any additional * data that you want to send to your web server as the HTTP request body, such as * data from a form.
A limited amount of the request body is forwarded to
* WAF for inspection by the underlying host service. For regional resources, the
* limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is
* 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the
* limit in the web ACL's AssociationConfig, for additional processing
* fees.
For information about how to handle oversized request bodies, see
* the Body object configuration.
Inspect the request body as plain text. The request body immediately follows * the request headers. This is the part of a request that contains any additional * data that you want to send to your web server as the HTTP request body, such as * data from a form.
A limited amount of the request body is forwarded to
* WAF for inspection by the underlying host service. For regional resources, the
* limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is
* 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the
* limit in the web ACL's AssociationConfig, for additional processing
* fees.
For information about how to handle oversized request bodies, see
* the Body object configuration.
Inspect the request body as plain text. The request body immediately follows * the request headers. This is the part of a request that contains any additional * data that you want to send to your web server as the HTTP request body, such as * data from a form.
A limited amount of the request body is forwarded to
* WAF for inspection by the underlying host service. For regional resources, the
* limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is
* 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the
* limit in the web ACL's AssociationConfig, for additional processing
* fees.
For information about how to handle oversized request bodies, see
* the Body object configuration.
Inspect the request body as plain text. The request body immediately follows * the request headers. This is the part of a request that contains any additional * data that you want to send to your web server as the HTTP request body, such as * data from a form.
A limited amount of the request body is forwarded to
* WAF for inspection by the underlying host service. For regional resources, the
* limit is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is
* 16 KB (16,384 kilobytes). For CloudFront distributions, you can increase the
* limit in the web ACL's AssociationConfig, for additional processing
* fees.
For information about how to handle oversized request bodies, see
* the Body object configuration.
Inspect the HTTP method. The method indicates the type of operation that the * request is asking the origin to perform.
*/ inline const Method& GetMethod() const{ return m_method; } /** *Inspect the HTTP method. The method indicates the type of operation that the * request is asking the origin to perform.
*/ inline bool MethodHasBeenSet() const { return m_methodHasBeenSet; } /** *Inspect the HTTP method. The method indicates the type of operation that the * request is asking the origin to perform.
*/ inline void SetMethod(const Method& value) { m_methodHasBeenSet = true; m_method = value; } /** *Inspect the HTTP method. The method indicates the type of operation that the * request is asking the origin to perform.
*/ inline void SetMethod(Method&& value) { m_methodHasBeenSet = true; m_method = std::move(value); } /** *Inspect the HTTP method. The method indicates the type of operation that the * request is asking the origin to perform.
*/ inline FieldToMatch& WithMethod(const Method& value) { SetMethod(value); return *this;} /** *Inspect the HTTP method. The method indicates the type of operation that the * request is asking the origin to perform.
*/ inline FieldToMatch& WithMethod(Method&& value) { SetMethod(std::move(value)); return *this;} /** *Inspect the request body as JSON. The request body immediately follows the * request headers. This is the part of a request that contains any additional data * that you want to send to your web server as the HTTP request body, such as data * from a form.
A limited amount of the request body is forwarded to WAF
* for inspection by the underlying host service. For regional resources, the limit
* is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB
* (16,384 kilobytes). For CloudFront distributions, you can increase the limit in
* the web ACL's AssociationConfig, for additional processing fees.
*
For information about how to handle oversized request bodies, see the
* JsonBody object configuration.
Inspect the request body as JSON. The request body immediately follows the * request headers. This is the part of a request that contains any additional data * that you want to send to your web server as the HTTP request body, such as data * from a form.
A limited amount of the request body is forwarded to WAF
* for inspection by the underlying host service. For regional resources, the limit
* is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB
* (16,384 kilobytes). For CloudFront distributions, you can increase the limit in
* the web ACL's AssociationConfig, for additional processing fees.
*
For information about how to handle oversized request bodies, see the
* JsonBody object configuration.
Inspect the request body as JSON. The request body immediately follows the * request headers. This is the part of a request that contains any additional data * that you want to send to your web server as the HTTP request body, such as data * from a form.
A limited amount of the request body is forwarded to WAF
* for inspection by the underlying host service. For regional resources, the limit
* is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB
* (16,384 kilobytes). For CloudFront distributions, you can increase the limit in
* the web ACL's AssociationConfig, for additional processing fees.
*
For information about how to handle oversized request bodies, see the
* JsonBody object configuration.
Inspect the request body as JSON. The request body immediately follows the * request headers. This is the part of a request that contains any additional data * that you want to send to your web server as the HTTP request body, such as data * from a form.
A limited amount of the request body is forwarded to WAF
* for inspection by the underlying host service. For regional resources, the limit
* is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB
* (16,384 kilobytes). For CloudFront distributions, you can increase the limit in
* the web ACL's AssociationConfig, for additional processing fees.
*
For information about how to handle oversized request bodies, see the
* JsonBody object configuration.
Inspect the request body as JSON. The request body immediately follows the * request headers. This is the part of a request that contains any additional data * that you want to send to your web server as the HTTP request body, such as data * from a form.
A limited amount of the request body is forwarded to WAF
* for inspection by the underlying host service. For regional resources, the limit
* is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB
* (16,384 kilobytes). For CloudFront distributions, you can increase the limit in
* the web ACL's AssociationConfig, for additional processing fees.
*
For information about how to handle oversized request bodies, see the
* JsonBody object configuration.
Inspect the request body as JSON. The request body immediately follows the * request headers. This is the part of a request that contains any additional data * that you want to send to your web server as the HTTP request body, such as data * from a form.
A limited amount of the request body is forwarded to WAF
* for inspection by the underlying host service. For regional resources, the limit
* is 8 KB (8,192 kilobytes) and for CloudFront distributions, the limit is 16 KB
* (16,384 kilobytes). For CloudFront distributions, you can increase the limit in
* the web ACL's AssociationConfig, for additional processing fees.
*
For information about how to handle oversized request bodies, see the
* JsonBody object configuration.
Inspect the request headers. You must configure scope and pattern matching
* filters in the Headers object, to define the set of headers to and
* the parts of the headers that WAF inspects.
Only the first 8 KB (8192
* bytes) of a request's headers and only the first 200 headers are forwarded to
* WAF for inspection by the underlying host service. You must configure how to
* handle any oversize header content in the Headers object. WAF
* applies the pattern matching filters to the headers that it receives from the
* underlying host service.
Inspect the request headers. You must configure scope and pattern matching
* filters in the Headers object, to define the set of headers to and
* the parts of the headers that WAF inspects.
Only the first 8 KB (8192
* bytes) of a request's headers and only the first 200 headers are forwarded to
* WAF for inspection by the underlying host service. You must configure how to
* handle any oversize header content in the Headers object. WAF
* applies the pattern matching filters to the headers that it receives from the
* underlying host service.
Inspect the request headers. You must configure scope and pattern matching
* filters in the Headers object, to define the set of headers to and
* the parts of the headers that WAF inspects.
Only the first 8 KB (8192
* bytes) of a request's headers and only the first 200 headers are forwarded to
* WAF for inspection by the underlying host service. You must configure how to
* handle any oversize header content in the Headers object. WAF
* applies the pattern matching filters to the headers that it receives from the
* underlying host service.
Inspect the request headers. You must configure scope and pattern matching
* filters in the Headers object, to define the set of headers to and
* the parts of the headers that WAF inspects.
Only the first 8 KB (8192
* bytes) of a request's headers and only the first 200 headers are forwarded to
* WAF for inspection by the underlying host service. You must configure how to
* handle any oversize header content in the Headers object. WAF
* applies the pattern matching filters to the headers that it receives from the
* underlying host service.
Inspect the request headers. You must configure scope and pattern matching
* filters in the Headers object, to define the set of headers to and
* the parts of the headers that WAF inspects.
Only the first 8 KB (8192
* bytes) of a request's headers and only the first 200 headers are forwarded to
* WAF for inspection by the underlying host service. You must configure how to
* handle any oversize header content in the Headers object. WAF
* applies the pattern matching filters to the headers that it receives from the
* underlying host service.
Inspect the request headers. You must configure scope and pattern matching
* filters in the Headers object, to define the set of headers to and
* the parts of the headers that WAF inspects.
Only the first 8 KB (8192
* bytes) of a request's headers and only the first 200 headers are forwarded to
* WAF for inspection by the underlying host service. You must configure how to
* handle any oversize header content in the Headers object. WAF
* applies the pattern matching filters to the headers that it receives from the
* underlying host service.
Inspect the request cookies. You must configure scope and pattern matching
* filters in the Cookies object, to define the set of cookies and the
* parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes)
* of a request's cookies and only the first 200 cookies are forwarded to WAF for
* inspection by the underlying host service. You must configure how to handle any
* oversize cookie content in the Cookies object. WAF applies the
* pattern matching filters to the cookies that it receives from the underlying
* host service.
Inspect the request cookies. You must configure scope and pattern matching
* filters in the Cookies object, to define the set of cookies and the
* parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes)
* of a request's cookies and only the first 200 cookies are forwarded to WAF for
* inspection by the underlying host service. You must configure how to handle any
* oversize cookie content in the Cookies object. WAF applies the
* pattern matching filters to the cookies that it receives from the underlying
* host service.
Inspect the request cookies. You must configure scope and pattern matching
* filters in the Cookies object, to define the set of cookies and the
* parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes)
* of a request's cookies and only the first 200 cookies are forwarded to WAF for
* inspection by the underlying host service. You must configure how to handle any
* oversize cookie content in the Cookies object. WAF applies the
* pattern matching filters to the cookies that it receives from the underlying
* host service.
Inspect the request cookies. You must configure scope and pattern matching
* filters in the Cookies object, to define the set of cookies and the
* parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes)
* of a request's cookies and only the first 200 cookies are forwarded to WAF for
* inspection by the underlying host service. You must configure how to handle any
* oversize cookie content in the Cookies object. WAF applies the
* pattern matching filters to the cookies that it receives from the underlying
* host service.
Inspect the request cookies. You must configure scope and pattern matching
* filters in the Cookies object, to define the set of cookies and the
* parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes)
* of a request's cookies and only the first 200 cookies are forwarded to WAF for
* inspection by the underlying host service. You must configure how to handle any
* oversize cookie content in the Cookies object. WAF applies the
* pattern matching filters to the cookies that it receives from the underlying
* host service.
Inspect the request cookies. You must configure scope and pattern matching
* filters in the Cookies object, to define the set of cookies and the
* parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes)
* of a request's cookies and only the first 200 cookies are forwarded to WAF for
* inspection by the underlying host service. You must configure how to handle any
* oversize cookie content in the Cookies object. WAF applies the
* pattern matching filters to the cookies that it receives from the underlying
* host service.
Inspect a string containing the list of the request's header names, ordered
* as they appear in the web request that WAF receives for inspection. WAF
* generates the string and then uses that as the field to match component in its
* inspection. WAF separates the header names in the string using colons and no
* added spaces, for example
* host:user-agent:accept:authorization:referer.
Inspect a string containing the list of the request's header names, ordered
* as they appear in the web request that WAF receives for inspection. WAF
* generates the string and then uses that as the field to match component in its
* inspection. WAF separates the header names in the string using colons and no
* added spaces, for example
* host:user-agent:accept:authorization:referer.
Inspect a string containing the list of the request's header names, ordered
* as they appear in the web request that WAF receives for inspection. WAF
* generates the string and then uses that as the field to match component in its
* inspection. WAF separates the header names in the string using colons and no
* added spaces, for example
* host:user-agent:accept:authorization:referer.
Inspect a string containing the list of the request's header names, ordered
* as they appear in the web request that WAF receives for inspection. WAF
* generates the string and then uses that as the field to match component in its
* inspection. WAF separates the header names in the string using colons and no
* added spaces, for example
* host:user-agent:accept:authorization:referer.
Inspect a string containing the list of the request's header names, ordered
* as they appear in the web request that WAF receives for inspection. WAF
* generates the string and then uses that as the field to match component in its
* inspection. WAF separates the header names in the string using colons and no
* added spaces, for example
* host:user-agent:accept:authorization:referer.
Inspect a string containing the list of the request's header names, ordered
* as they appear in the web request that WAF receives for inspection. WAF
* generates the string and then uses that as the field to match component in its
* inspection. WAF separates the header names in the string using colons and no
* added spaces, for example
* host:user-agent:accept:authorization:referer.