/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace WAFV2 { namespace Model { /** *

The part of the web request that you want WAF to inspect. Include the single * 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.

Example JSON for a QueryString * field to match:

"FieldToMatch": { "QueryString": {} } *

Example JSON for a Method field to match specification:

*

"FieldToMatch": { "Method": { "Name": "DELETE" } } *

See Also:

AWS * API Reference

*/ class FieldToMatch { public: AWS_WAFV2_API FieldToMatch(); AWS_WAFV2_API FieldToMatch(Aws::Utils::Json::JsonView jsonValue); AWS_WAFV2_API FieldToMatch& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_WAFV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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.

*/ inline const SingleHeader& GetSingleHeader() const{ return m_singleHeader; } /** *

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.

*/ inline bool SingleHeaderHasBeenSet() const { return m_singleHeaderHasBeenSet; } /** *

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.

*/ inline void SetSingleHeader(const SingleHeader& value) { m_singleHeaderHasBeenSet = true; m_singleHeader = value; } /** *

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.

*/ inline void SetSingleHeader(SingleHeader&& value) { m_singleHeaderHasBeenSet = true; m_singleHeader = std::move(value); } /** *

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.

*/ inline FieldToMatch& WithSingleHeader(const SingleHeader& value) { SetSingleHeader(value); return *this;} /** *

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.

*/ inline FieldToMatch& WithSingleHeader(SingleHeader&& value) { SetSingleHeader(std::move(value)); return *this;} /** *

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" }

*/ inline const SingleQueryArgument& GetSingleQueryArgument() const{ return m_singleQueryArgument; } /** *

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" }

*/ inline bool SingleQueryArgumentHasBeenSet() const { return m_singleQueryArgumentHasBeenSet; } /** *

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" }

*/ inline void SetSingleQueryArgument(const SingleQueryArgument& value) { m_singleQueryArgumentHasBeenSet = true; m_singleQueryArgument = value; } /** *

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" }

*/ inline void SetSingleQueryArgument(SingleQueryArgument&& value) { m_singleQueryArgumentHasBeenSet = true; m_singleQueryArgument = std::move(value); } /** *

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" }

*/ inline FieldToMatch& WithSingleQueryArgument(const SingleQueryArgument& value) { SetSingleQueryArgument(value); return *this;} /** *

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" }

*/ inline FieldToMatch& WithSingleQueryArgument(SingleQueryArgument&& value) { SetSingleQueryArgument(std::move(value)); return *this;} /** *

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.

*/ inline const UriPath& GetUriPath() const{ return m_uriPath; } /** *

Inspect the request URI path. This is the part of the web request that * identifies a resource, for example, /images/daily-ad.jpg.

*/ inline bool UriPathHasBeenSet() const { return m_uriPathHasBeenSet; } /** *

Inspect the request URI path. This is the part of the web request that * identifies a resource, for example, /images/daily-ad.jpg.

*/ inline void SetUriPath(const UriPath& value) { m_uriPathHasBeenSet = true; m_uriPath = value; } /** *

Inspect the request URI path. This is the part of the web request that * identifies a resource, for example, /images/daily-ad.jpg.

*/ inline void SetUriPath(UriPath&& value) { m_uriPathHasBeenSet = true; m_uriPath = std::move(value); } /** *

Inspect the request URI path. This is the part of the web request that * identifies a resource, for example, /images/daily-ad.jpg.

*/ inline FieldToMatch& WithUriPath(const UriPath& value) { SetUriPath(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.

*/ inline FieldToMatch& WithUriPath(UriPath&& value) { SetUriPath(std::move(value)); return *this;} /** *

Inspect the query string. This is the part of a URL that appears after a * ? character, if any.

*/ inline const QueryString& GetQueryString() const{ return m_queryString; } /** *

Inspect the query string. This is the part of a URL that appears after a * ? character, if any.

*/ inline bool QueryStringHasBeenSet() const { return m_queryStringHasBeenSet; } /** *

Inspect the query string. This is the part of a URL that appears after a * ? character, if any.

*/ inline void SetQueryString(const QueryString& value) { m_queryStringHasBeenSet = true; m_queryString = value; } /** *

Inspect the query string. This is the part of a URL that appears after a * ? character, if any.

*/ inline void SetQueryString(QueryString&& value) { m_queryStringHasBeenSet = true; m_queryString = std::move(value); } /** *

Inspect the query string. This is the part of a URL that appears after a * ? character, if any.

*/ inline FieldToMatch& WithQueryString(const QueryString& value) { SetQueryString(value); return *this;} /** *

Inspect the query string. This is the part of a URL that appears after a * ? character, if any.

*/ inline FieldToMatch& WithQueryString(QueryString&& value) { SetQueryString(std::move(value)); return *this;} /** *

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.

*/ inline const Body& GetBody() const{ return m_body; } /** *

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.

*/ inline bool BodyHasBeenSet() const { return m_bodyHasBeenSet; } /** *

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.

*/ inline void SetBody(const Body& value) { m_bodyHasBeenSet = true; m_body = value; } /** *

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.

*/ inline void SetBody(Body&& value) { m_bodyHasBeenSet = true; m_body = std::move(value); } /** *

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.

*/ inline FieldToMatch& WithBody(const Body& value) { SetBody(value); return *this;} /** *

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.

*/ inline FieldToMatch& WithBody(Body&& value) { SetBody(std::move(value)); return *this;} /** *

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.

*/ inline const JsonBody& GetJsonBody() const{ return m_jsonBody; } /** *

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.

*/ inline bool JsonBodyHasBeenSet() const { return m_jsonBodyHasBeenSet; } /** *

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.

*/ inline void SetJsonBody(const JsonBody& value) { m_jsonBodyHasBeenSet = true; m_jsonBody = value; } /** *

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.

*/ inline void SetJsonBody(JsonBody&& value) { m_jsonBodyHasBeenSet = true; m_jsonBody = std::move(value); } /** *

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.

*/ inline FieldToMatch& WithJsonBody(const JsonBody& value) { SetJsonBody(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.

*/ inline FieldToMatch& WithJsonBody(JsonBody&& value) { SetJsonBody(std::move(value)); return *this;} /** *

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.

*/ inline const Headers& GetHeaders() const{ return m_headers; } /** *

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.

*/ inline bool HeadersHasBeenSet() const { return m_headersHasBeenSet; } /** *

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.

*/ inline void SetHeaders(const Headers& value) { m_headersHasBeenSet = true; m_headers = value; } /** *

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.

*/ inline void SetHeaders(Headers&& value) { m_headersHasBeenSet = true; m_headers = std::move(value); } /** *

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.

*/ inline FieldToMatch& WithHeaders(const Headers& value) { SetHeaders(value); return *this;} /** *

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.

*/ inline FieldToMatch& WithHeaders(Headers&& value) { SetHeaders(std::move(value)); return *this;} /** *

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.

*/ inline const Cookies& GetCookies() const{ return m_cookies; } /** *

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.

*/ inline bool CookiesHasBeenSet() const { return m_cookiesHasBeenSet; } /** *

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.

*/ inline void SetCookies(const Cookies& value) { m_cookiesHasBeenSet = true; m_cookies = value; } /** *

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.

*/ inline void SetCookies(Cookies&& value) { m_cookiesHasBeenSet = true; m_cookies = std::move(value); } /** *

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.

*/ inline FieldToMatch& WithCookies(const Cookies& value) { SetCookies(value); return *this;} /** *

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.

*/ inline FieldToMatch& WithCookies(Cookies&& value) { SetCookies(std::move(value)); return *this;} /** *

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.

*/ inline const HeaderOrder& GetHeaderOrder() const{ return m_headerOrder; } /** *

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.

*/ inline bool HeaderOrderHasBeenSet() const { return m_headerOrderHasBeenSet; } /** *

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.

*/ inline void SetHeaderOrder(const HeaderOrder& value) { m_headerOrderHasBeenSet = true; m_headerOrder = value; } /** *

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.

*/ inline void SetHeaderOrder(HeaderOrder&& value) { m_headerOrderHasBeenSet = true; m_headerOrder = std::move(value); } /** *

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.

*/ inline FieldToMatch& WithHeaderOrder(const HeaderOrder& value) { SetHeaderOrder(value); return *this;} /** *

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.

*/ inline FieldToMatch& WithHeaderOrder(HeaderOrder&& value) { SetHeaderOrder(std::move(value)); return *this;} private: SingleHeader m_singleHeader; bool m_singleHeaderHasBeenSet = false; SingleQueryArgument m_singleQueryArgument; bool m_singleQueryArgumentHasBeenSet = false; AllQueryArguments m_allQueryArguments; bool m_allQueryArgumentsHasBeenSet = false; UriPath m_uriPath; bool m_uriPathHasBeenSet = false; QueryString m_queryString; bool m_queryStringHasBeenSet = false; Body m_body; bool m_bodyHasBeenSet = false; Method m_method; bool m_methodHasBeenSet = false; JsonBody m_jsonBody; bool m_jsonBodyHasBeenSet = false; Headers m_headers; bool m_headersHasBeenSet = false; Cookies m_cookies; bool m_cookiesHasBeenSet = false; HeaderOrder m_headerOrder; bool m_headerOrderHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws