/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include This is the latest version of AWS WAF, named AWS WAFV2,
* released in November, 2019. For information, including how to migrate your AWS
* WAF resources from the prior release, see the AWS
* WAF Developer Guide. The part of a web request that you want
* AWS 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 a
* web request, create a separate rule statement for each component.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.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
Inspect a single header. Provide the name of the header to inspect, for
* example, User-Agent or Referer. This setting isn't
* case sensitive.
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.
This is used only to indicate * the web request component for AWS WAF to inspect, in the FieldToMatch * specification.
*/ 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.
This is used only to indicate * the web request component for AWS WAF to inspect, in the FieldToMatch * specification.
*/ 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.
This is used only to indicate * the web request component for AWS WAF to inspect, in the FieldToMatch * specification.
*/ 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.
This is used only to indicate * the web request component for AWS WAF to inspect, in the FieldToMatch * specification.
*/ 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.
This is used only to indicate * the web request component for AWS WAF to inspect, in the FieldToMatch * specification.
*/ 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.
This is used only to indicate * the web request component for AWS WAF to inspect, in the FieldToMatch * specification.
*/ 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 a web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of a web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of a web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of a web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of a web request that
* identifies a resource, for example, /images/daily-ad.jpg.
Inspect the request URI path. This is the part of a 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, which 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.
*Note that only the first 8 KB (8192 bytes) of the request body are forwarded * to AWS WAF for inspection by the underlying host service. If you don't need to * inspect more than 8 KB, you can guarantee that you don't allow additional bytes * in by combining a statement that inspects the body of the web request, such as * ByteMatchStatement or RegexPatternSetReferenceStatement, with a * SizeConstraintStatement that enforces an 8 KB size limit on the body of * the request. AWS WAF doesn't support inspecting the entire contents of web * requests whose bodies exceed the 8 KB limit.
*/ inline const Body& GetBody() const{ return m_body; } /** *Inspect the request body, which 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.
*Note that only the first 8 KB (8192 bytes) of the request body are forwarded * to AWS WAF for inspection by the underlying host service. If you don't need to * inspect more than 8 KB, you can guarantee that you don't allow additional bytes * in by combining a statement that inspects the body of the web request, such as * ByteMatchStatement or RegexPatternSetReferenceStatement, with a * SizeConstraintStatement that enforces an 8 KB size limit on the body of * the request. AWS WAF doesn't support inspecting the entire contents of web * requests whose bodies exceed the 8 KB limit.
*/ inline bool BodyHasBeenSet() const { return m_bodyHasBeenSet; } /** *Inspect the request body, which 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.
*Note that only the first 8 KB (8192 bytes) of the request body are forwarded * to AWS WAF for inspection by the underlying host service. If you don't need to * inspect more than 8 KB, you can guarantee that you don't allow additional bytes * in by combining a statement that inspects the body of the web request, such as * ByteMatchStatement or RegexPatternSetReferenceStatement, with a * SizeConstraintStatement that enforces an 8 KB size limit on the body of * the request. AWS WAF doesn't support inspecting the entire contents of web * requests whose bodies exceed the 8 KB limit.
*/ inline void SetBody(const Body& value) { m_bodyHasBeenSet = true; m_body = value; } /** *Inspect the request body, which 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.
*Note that only the first 8 KB (8192 bytes) of the request body are forwarded * to AWS WAF for inspection by the underlying host service. If you don't need to * inspect more than 8 KB, you can guarantee that you don't allow additional bytes * in by combining a statement that inspects the body of the web request, such as * ByteMatchStatement or RegexPatternSetReferenceStatement, with a * SizeConstraintStatement that enforces an 8 KB size limit on the body of * the request. AWS WAF doesn't support inspecting the entire contents of web * requests whose bodies exceed the 8 KB limit.
*/ inline void SetBody(Body&& value) { m_bodyHasBeenSet = true; m_body = std::move(value); } /** *Inspect the request body, which 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.
*Note that only the first 8 KB (8192 bytes) of the request body are forwarded * to AWS WAF for inspection by the underlying host service. If you don't need to * inspect more than 8 KB, you can guarantee that you don't allow additional bytes * in by combining a statement that inspects the body of the web request, such as * ByteMatchStatement or RegexPatternSetReferenceStatement, with a * SizeConstraintStatement that enforces an 8 KB size limit on the body of * the request. AWS WAF doesn't support inspecting the entire contents of web * requests whose bodies exceed the 8 KB limit.
*/ inline FieldToMatch& WithBody(const Body& value) { SetBody(value); return *this;} /** *Inspect the request body, which 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.
*Note that only the first 8 KB (8192 bytes) of the request body are forwarded * to AWS WAF for inspection by the underlying host service. If you don't need to * inspect more than 8 KB, you can guarantee that you don't allow additional bytes * in by combining a statement that inspects the body of the web request, such as * ByteMatchStatement or RegexPatternSetReferenceStatement, with a * SizeConstraintStatement that enforces an 8 KB size limit on the body of * the request. AWS WAF doesn't support inspecting the entire contents of web * requests whose bodies exceed the 8 KB limit.
*/ 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;} private: SingleHeader m_singleHeader; bool m_singleHeaderHasBeenSet; SingleQueryArgument m_singleQueryArgument; bool m_singleQueryArgumentHasBeenSet; AllQueryArguments m_allQueryArguments; bool m_allQueryArgumentsHasBeenSet; UriPath m_uriPath; bool m_uriPathHasBeenSet; QueryString m_queryString; bool m_queryStringHasBeenSet; Body m_body; bool m_bodyHasBeenSet; Method m_method; bool m_methodHasBeenSet; }; } // namespace Model } // namespace WAFV2 } // namespace Aws