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

This is AWS WAF Classic documentation. For more information, * see AWS * WAF Classic in the developer guide.

For the latest version of AWS * WAF, use the AWS WAFV2 API and see the AWS * WAF Developer Guide. With the latest version, AWS WAF has a single set of * endpoints for regional and global use.

Specifies where in a web * request to look for TargetString.

See Also:

AWS * API Reference

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

The part of the web request that you want AWS WAF to search for a specified * string. Parts of a request that you can search include the following:

    *
  • HEADER: A specified request header, for example, the value * of the User-Agent or Referer header. If you choose * HEADER for the type, specify the name of the header in * Data.

  • METHOD: The HTTP method, * which indicated the type of operation that the request is asking the origin to * perform. Amazon CloudFront supports the following methods: DELETE, * GET, HEAD, OPTIONS, PATCH, * POST, and PUT.

  • * QUERY_STRING: A query string, which is the part of a URL that * appears after a ? character, if any.

  • * URI: The part of a web request that identifies a resource, for * example, /images/daily-ad.jpg.

  • * BODY: 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. The request body immediately follows the request headers. Note that only * the first 8192 bytes of the request body are forwarded to AWS WAF * for inspection. To allow or block requests based on the length of the body, you * can create a size constraint set. For more information, see * CreateSizeConstraintSet.

  • * SINGLE_QUERY_ARG: The parameter in the query string that you will * inspect, such as UserName or SalesRegion. The maximum length for * SINGLE_QUERY_ARG is 30 characters.

  • * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but * rather than inspecting a single parameter, AWS WAF will inspect all parameters * within the query for the value or regex pattern that you specify in * TargetString.

*/ inline const MatchFieldType& GetType() const{ return m_type; } /** *

The part of the web request that you want AWS WAF to search for a specified * string. Parts of a request that you can search include the following:

    *
  • HEADER: A specified request header, for example, the value * of the User-Agent or Referer header. If you choose * HEADER for the type, specify the name of the header in * Data.

  • METHOD: The HTTP method, * which indicated the type of operation that the request is asking the origin to * perform. Amazon CloudFront supports the following methods: DELETE, * GET, HEAD, OPTIONS, PATCH, * POST, and PUT.

  • * QUERY_STRING: A query string, which is the part of a URL that * appears after a ? character, if any.

  • * URI: The part of a web request that identifies a resource, for * example, /images/daily-ad.jpg.

  • * BODY: 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. The request body immediately follows the request headers. Note that only * the first 8192 bytes of the request body are forwarded to AWS WAF * for inspection. To allow or block requests based on the length of the body, you * can create a size constraint set. For more information, see * CreateSizeConstraintSet.

  • * SINGLE_QUERY_ARG: The parameter in the query string that you will * inspect, such as UserName or SalesRegion. The maximum length for * SINGLE_QUERY_ARG is 30 characters.

  • * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but * rather than inspecting a single parameter, AWS WAF will inspect all parameters * within the query for the value or regex pattern that you specify in * TargetString.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The part of the web request that you want AWS WAF to search for a specified * string. Parts of a request that you can search include the following:

    *
  • HEADER: A specified request header, for example, the value * of the User-Agent or Referer header. If you choose * HEADER for the type, specify the name of the header in * Data.

  • METHOD: The HTTP method, * which indicated the type of operation that the request is asking the origin to * perform. Amazon CloudFront supports the following methods: DELETE, * GET, HEAD, OPTIONS, PATCH, * POST, and PUT.

  • * QUERY_STRING: A query string, which is the part of a URL that * appears after a ? character, if any.

  • * URI: The part of a web request that identifies a resource, for * example, /images/daily-ad.jpg.

  • * BODY: 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. The request body immediately follows the request headers. Note that only * the first 8192 bytes of the request body are forwarded to AWS WAF * for inspection. To allow or block requests based on the length of the body, you * can create a size constraint set. For more information, see * CreateSizeConstraintSet.

  • * SINGLE_QUERY_ARG: The parameter in the query string that you will * inspect, such as UserName or SalesRegion. The maximum length for * SINGLE_QUERY_ARG is 30 characters.

  • * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but * rather than inspecting a single parameter, AWS WAF will inspect all parameters * within the query for the value or regex pattern that you specify in * TargetString.

*/ inline void SetType(const MatchFieldType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The part of the web request that you want AWS WAF to search for a specified * string. Parts of a request that you can search include the following:

    *
  • HEADER: A specified request header, for example, the value * of the User-Agent or Referer header. If you choose * HEADER for the type, specify the name of the header in * Data.

  • METHOD: The HTTP method, * which indicated the type of operation that the request is asking the origin to * perform. Amazon CloudFront supports the following methods: DELETE, * GET, HEAD, OPTIONS, PATCH, * POST, and PUT.

  • * QUERY_STRING: A query string, which is the part of a URL that * appears after a ? character, if any.

  • * URI: The part of a web request that identifies a resource, for * example, /images/daily-ad.jpg.

  • * BODY: 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. The request body immediately follows the request headers. Note that only * the first 8192 bytes of the request body are forwarded to AWS WAF * for inspection. To allow or block requests based on the length of the body, you * can create a size constraint set. For more information, see * CreateSizeConstraintSet.

  • * SINGLE_QUERY_ARG: The parameter in the query string that you will * inspect, such as UserName or SalesRegion. The maximum length for * SINGLE_QUERY_ARG is 30 characters.

  • * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but * rather than inspecting a single parameter, AWS WAF will inspect all parameters * within the query for the value or regex pattern that you specify in * TargetString.

*/ inline void SetType(MatchFieldType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The part of the web request that you want AWS WAF to search for a specified * string. Parts of a request that you can search include the following:

    *
  • HEADER: A specified request header, for example, the value * of the User-Agent or Referer header. If you choose * HEADER for the type, specify the name of the header in * Data.

  • METHOD: The HTTP method, * which indicated the type of operation that the request is asking the origin to * perform. Amazon CloudFront supports the following methods: DELETE, * GET, HEAD, OPTIONS, PATCH, * POST, and PUT.

  • * QUERY_STRING: A query string, which is the part of a URL that * appears after a ? character, if any.

  • * URI: The part of a web request that identifies a resource, for * example, /images/daily-ad.jpg.

  • * BODY: 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. The request body immediately follows the request headers. Note that only * the first 8192 bytes of the request body are forwarded to AWS WAF * for inspection. To allow or block requests based on the length of the body, you * can create a size constraint set. For more information, see * CreateSizeConstraintSet.

  • * SINGLE_QUERY_ARG: The parameter in the query string that you will * inspect, such as UserName or SalesRegion. The maximum length for * SINGLE_QUERY_ARG is 30 characters.

  • * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but * rather than inspecting a single parameter, AWS WAF will inspect all parameters * within the query for the value or regex pattern that you specify in * TargetString.

*/ inline FieldToMatch& WithType(const MatchFieldType& value) { SetType(value); return *this;} /** *

The part of the web request that you want AWS WAF to search for a specified * string. Parts of a request that you can search include the following:

    *
  • HEADER: A specified request header, for example, the value * of the User-Agent or Referer header. If you choose * HEADER for the type, specify the name of the header in * Data.

  • METHOD: The HTTP method, * which indicated the type of operation that the request is asking the origin to * perform. Amazon CloudFront supports the following methods: DELETE, * GET, HEAD, OPTIONS, PATCH, * POST, and PUT.

  • * QUERY_STRING: A query string, which is the part of a URL that * appears after a ? character, if any.

  • * URI: The part of a web request that identifies a resource, for * example, /images/daily-ad.jpg.

  • * BODY: 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. The request body immediately follows the request headers. Note that only * the first 8192 bytes of the request body are forwarded to AWS WAF * for inspection. To allow or block requests based on the length of the body, you * can create a size constraint set. For more information, see * CreateSizeConstraintSet.

  • * SINGLE_QUERY_ARG: The parameter in the query string that you will * inspect, such as UserName or SalesRegion. The maximum length for * SINGLE_QUERY_ARG is 30 characters.

  • * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but * rather than inspecting a single parameter, AWS WAF will inspect all parameters * within the query for the value or regex pattern that you specify in * TargetString.

*/ inline FieldToMatch& WithType(MatchFieldType&& value) { SetType(std::move(value)); return *this;} /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline const Aws::String& GetData() const{ return m_data; } /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline bool DataHasBeenSet() const { return m_dataHasBeenSet; } /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline void SetData(const Aws::String& value) { m_dataHasBeenSet = true; m_data = value; } /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline void SetData(Aws::String&& value) { m_dataHasBeenSet = true; m_data = std::move(value); } /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline void SetData(const char* value) { m_dataHasBeenSet = true; m_data.assign(value); } /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline FieldToMatch& WithData(const Aws::String& value) { SetData(value); return *this;} /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline FieldToMatch& WithData(Aws::String&& value) { SetData(std::move(value)); return *this;} /** *

When the value of Type is HEADER, enter the name of * the header that you want AWS WAF to search, for example, User-Agent * or Referer. The name of the header is not case sensitive.

*

When the value of Type is SINGLE_QUERY_ARG, enter * the name of the parameter that you want AWS WAF to search, for example, * UserName or SalesRegion. The parameter name is not * case sensitive.

If the value of Type is any other value, * omit Data.

*/ inline FieldToMatch& WithData(const char* value) { SetData(value); return *this;} private: MatchFieldType m_type; bool m_typeHasBeenSet = false; Aws::String m_data; bool m_dataHasBeenSet = false; }; } // namespace Model } // namespace WAF } // namespace Aws