# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Union
from .. import _utilities, _tables


class WebAcl(pulumi.CustomResource):
    arn: pulumi.Output[str]
    """
    The Amazon Resource Name (ARN) of the IP Set that this statement references.
    """
    capacity: pulumi.Output[float]
    """
    The web ACL capacity units (WCUs) currently being used by this web ACL.
    """
    default_action: pulumi.Output[dict]
    """
    The action to perform if none of the `rules` contained in the WebACL match. See Default Action below for details.

      * `allow` (`dict`) - Specifies that AWS WAF should allow requests by default.
      * `block` (`dict`) - Specifies that AWS WAF should block requests by default.
    """
    description: pulumi.Output[str]
    """
    A friendly description of the WebACL.
    """
    lock_token: pulumi.Output[str]
    name: pulumi.Output[str]
    """
    A friendly name of the WebACL.
    """
    rules: pulumi.Output[list]
    """
    The rule blocks used to identify the web requests that you want to `allow`, `block`, or `count`. See Rules below for details.

      * `action` (`dict`) - The action that AWS WAF should take on a web request when it matches the rule's statement. This is used only for rules whose **statements do not reference a rule group**. See Action below for details.
        * `allow` (`dict`) - Instructs AWS WAF to allow the web request. Configure as an empty block `{}`.
        * `block` (`dict`) - Instructs AWS WAF to block the web request. Configure as an empty block `{}`.
        * `count` (`dict`) - Instructs AWS WAF to count the web request and allow it. Configure as an empty block `{}`.

      * `name` (`str`) - A friendly name of the rule.
      * `overrideAction` (`dict`) - The override action to apply to the rules in a rule group. Used only for rule **statements that reference a rule group**, like `rule_group_reference_statement` and `managed_rule_group_statement`. See Override Action below for details.
        * `count` (`dict`) - Override the rule action setting to count (i.e. only count matches). Configured as an empty block `{}`.
        * `none` (`dict`) - Don't override the rule action setting. Configured as an empty block `{}`.

      * `priority` (`float`) - If you define more than one Rule in a WebACL, AWS WAF evaluates each request against the `rules` in order based on the value of `priority`. AWS WAF processes rules with lower priority first.
      * `statement` (`dict`) - The AWS WAF processing statement for the rule, for example `byte_match_statement` or `geo_match_statement`. See Statement below for details.
        * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
          * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
            * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
              * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
              * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
              * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

            * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

            * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
              * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
              * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
              * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
          * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
            * `allQueryArguments` (`dict`) - Inspect all query arguments.
            * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
            * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
            * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
            * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

            * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

          * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
          * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
          * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
            * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
            * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
          * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

        * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
          * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

        * `managedRuleGroupStatement` (`dict`) - A rule statement used to run the rules that are defined in a managed rule group.  This statement can not be nested. See Managed Rule Group Statement below for details.
          * `excludedRules` (`list`) - The `rules` whose actions are set to `COUNT` by the web ACL, regardless of the action that is set on the rule. See Excluded Rule below for details.
            * `name` (`str`) - The name of the rule to exclude.

          * `name` (`str`) - The name of the managed rule group.
          * `vendorName` (`str`) - The name of the managed rule group vendor.

        * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
          * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
            * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
              * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
              * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
              * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

            * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

            * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
              * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
              * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
              * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
          * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
            * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
              * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
              * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
              * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

            * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

            * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
              * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
              * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
              * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `rateBasedStatement` (`dict`) - A rate-based rule tracks the rate of requests for each originating `IP address`, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any `5-minute` time span. This statement can not be nested. See Rate Based Statement below for details.
          * `aggregateKeyType` (`str`) - Setting that indicates how to aggregate the request counts. Currently the only supported value is `IP` which is set as the default.
          * `limit` (`float`) - The limit on requests per 5-minute period for a single originating IP address.
          * `scopeDownStatement` (`dict`) - An optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See Statement above for details.
            * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
              * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
              * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
              * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

            * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

            * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
              * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
              * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`dict`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`list`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`dict`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`list`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`dict`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`list`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `byteMatchStatement` (`dict`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `positionalConstraint` (`str`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`str`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`dict`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`list`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`dict`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`dict`) - Inspect all query arguments.
                        * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                      * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`dict`) - Inspect all query arguments.
                    * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

                  * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
              * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
              * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
              * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`dict`) - Inspect all query arguments.
                * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

              * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `regexPatternSetReferenceStatement` (`dict`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
          * `arn` (`str`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
          * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
            * `allQueryArguments` (`dict`) - Inspect all query arguments.
            * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
            * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
            * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
            * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

            * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

          * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
            * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
            * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `ruleGroupReferenceStatement` (`dict`) - A rule statement used to run the rules that are defined in an WAFv2 Rule Group. See Rule Group Reference Statement below for details.
          * `arn` (`str`) - The Amazon Resource Name (ARN) of the `wafv2.RuleGroup` resource.
          * `excludedRules` (`list`) - The `rules` whose actions are set to `COUNT` by the web ACL, regardless of the action that is set on the rule. See Excluded Rule below for details.
            * `name` (`str`) - The name of the rule to exclude.

        * `sizeConstraintStatement` (`dict`) - 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 (<). See Size Constraint Statement below for more details.
          * `comparison_operator` (`str`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
          * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
            * `allQueryArguments` (`dict`) - Inspect all query arguments.
            * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
            * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
            * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
            * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

            * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

          * `size` (`float`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
          * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
            * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
            * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `sqliMatchStatement` (`dict`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
          * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
            * `allQueryArguments` (`dict`) - Inspect all query arguments.
            * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
            * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
            * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
            * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

            * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

          * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
            * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
            * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

        * `xssMatchStatement` (`dict`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
          * `fieldToMatch` (`dict`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
            * `allQueryArguments` (`dict`) - Inspect all query arguments.
            * `body` (`dict`) - Inspect the request body, which immediately follows the request headers.
            * `method` (`dict`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
            * `queryString` (`dict`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
            * `singleHeader` (`dict`) - Inspect a single header. See Single Header below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

            * `singleQueryArgument` (`dict`) - Inspect a single query argument. See Single Query Argument below for details.
              * `name` (`str`) - The name of the query header to inspect. This setting must be provided as lower case characters.

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

          * `textTransformations` (`list`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
            * `priority` (`float`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
            * `type` (`str`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

      * `visibility_config` (`dict`) - Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details.
        * `cloudwatchMetricsEnabled` (`bool`) - A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics).
        * `metric_name` (`str`) - A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`.
        * `sampledRequestsEnabled` (`bool`) - A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.
    """
    scope: pulumi.Output[str]
    """
    Specifies whether this is for an AWS CloudFront distribution or for a regional application. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you must also specify the region `us-east-1` (N. Virginia) on the AWS provider.
    """
    tags: pulumi.Output[dict]
    """
    An array of key:value pairs to associate with the resource.
    """
    visibility_config: pulumi.Output[dict]
    """
    Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details.

      * `cloudwatchMetricsEnabled` (`bool`) - A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics).
      * `metric_name` (`str`) - A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`.
      * `sampledRequestsEnabled` (`bool`) - A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.
    """
    def __init__(__self__, resource_name, opts=None, default_action=None, description=None, name=None, rules=None, scope=None, tags=None, visibility_config=None, __props__=None, __name__=None, __opts__=None):
        """
        Creates a WAFv2 Web ACL resource.

        ## Example Usage

        This resource is based on `wafv2.RuleGroup`, check the documentation of the `wafv2.RuleGroup` resource to see examples of the various available statements.
        ### Managed Rule

        ```python
        import pulumi
        import pulumi_aws as aws

        example = aws.wafv2.WebAcl("example",
            default_action={
                "allow": {},
            },
            description="Example of a managed rule.",
            rules=[{
                "name": "rule-1",
                "overrideAction": {
                    "count": {},
                },
                "priority": 1,
                "statement": {
                    "managedRuleGroupStatement": {
                        "excludedRule": [
                            {
                                "name": "SizeRestrictions_QUERYSTRING",
                            },
                            {
                                "name": "NoUserAgent_HEADER",
                            },
                        ],
                        "name": "AWSManagedRulesCommonRuleSet",
                        "vendorName": "AWS",
                    },
                },
                "visibility_config": {
                    "cloudwatchMetricsEnabled": False,
                    "metric_name": "friendly-rule-metric-name",
                    "sampledRequestsEnabled": False,
                },
            }],
            scope="REGIONAL",
            tags={
                "Tag1": "Value1",
                "Tag2": "Value2",
            },
            visibility_config={
                "cloudwatchMetricsEnabled": False,
                "metric_name": "friendly-metric-name",
                "sampledRequestsEnabled": False,
            })
        ```
        ### Rate Based

        ```python
        import pulumi
        import pulumi_aws as aws

        example = aws.wafv2.WebAcl("example",
            default_action={
                "block": {},
            },
            description="Example of a rate based statement.",
            rules=[{
                "action": {
                    "count": {},
                },
                "name": "rule-1",
                "priority": 1,
                "statement": {
                    "rateBasedStatement": {
                        "aggregateKeyType": "IP",
                        "limit": 10000,
                        "scopeDownStatement": {
                            "geoMatchStatement": {
                                "countryCodes": [
                                    "US",
                                    "NL",
                                ],
                            },
                        },
                    },
                },
                "visibility_config": {
                    "cloudwatchMetricsEnabled": False,
                    "metric_name": "friendly-rule-metric-name",
                    "sampledRequestsEnabled": False,
                },
            }],
            scope="REGIONAL",
            tags={
                "Tag1": "Value1",
                "Tag2": "Value2",
            },
            visibility_config={
                "cloudwatchMetricsEnabled": False,
                "metric_name": "friendly-metric-name",
                "sampledRequestsEnabled": False,
            })
        ```
        ### Rule Group Reference

        ```python
        import pulumi
        import pulumi_aws as aws

        example = aws.wafv2.RuleGroup("example",
            capacity=10,
            scope="REGIONAL",
            rules=[
                {
                    "name": "rule-1",
                    "priority": 1,
                    "action": {
                        "count": {},
                    },
                    "statement": {
                        "geoMatchStatement": {
                            "countryCodes": ["NL"],
                        },
                    },
                    "visibility_config": {
                        "cloudwatchMetricsEnabled": False,
                        "metric_name": "friendly-rule-metric-name",
                        "sampledRequestsEnabled": False,
                    },
                },
                {
                    "name": "rule-to-exclude-a",
                    "priority": 10,
                    "action": {
                        "allow": {},
                    },
                    "statement": {
                        "geoMatchStatement": {
                            "countryCodes": ["US"],
                        },
                    },
                    "visibility_config": {
                        "cloudwatchMetricsEnabled": False,
                        "metric_name": "friendly-rule-metric-name",
                        "sampledRequestsEnabled": False,
                    },
                },
                {
                    "name": "rule-to-exclude-b",
                    "priority": 15,
                    "action": {
                        "allow": {},
                    },
                    "statement": {
                        "geoMatchStatement": {
                            "countryCodes": ["GB"],
                        },
                    },
                    "visibility_config": {
                        "cloudwatchMetricsEnabled": False,
                        "metric_name": "friendly-rule-metric-name",
                        "sampledRequestsEnabled": False,
                    },
                },
            ],
            visibility_config={
                "cloudwatchMetricsEnabled": False,
                "metric_name": "friendly-metric-name",
                "sampledRequestsEnabled": False,
            })
        test = aws.wafv2.WebAcl("test",
            scope="REGIONAL",
            default_action={
                "block": {},
            },
            rules=[{
                "name": "rule-1",
                "priority": 1,
                "overrideAction": {
                    "count": {},
                },
                "statement": {
                    "ruleGroupReferenceStatement": {
                        "arn": example.arn,
                        "excludedRules": [
                            {
                                "name": "rule-to-exclude-b",
                            },
                            {
                                "name": "rule-to-exclude-a",
                            },
                        ],
                    },
                },
                "visibility_config": {
                    "cloudwatchMetricsEnabled": False,
                    "metric_name": "friendly-rule-metric-name",
                    "sampledRequestsEnabled": False,
                },
            }],
            tags={
                "Tag1": "Value1",
                "Tag2": "Value2",
            },
            visibility_config={
                "cloudwatchMetricsEnabled": False,
                "metric_name": "friendly-metric-name",
                "sampledRequestsEnabled": False,
            })
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[dict] default_action: The action to perform if none of the `rules` contained in the WebACL match. See Default Action below for details.
        :param pulumi.Input[str] description: A friendly description of the WebACL.
        :param pulumi.Input[str] name: A friendly name of the WebACL.
        :param pulumi.Input[list] rules: The rule blocks used to identify the web requests that you want to `allow`, `block`, or `count`. See Rules below for details.
        :param pulumi.Input[str] scope: Specifies whether this is for an AWS CloudFront distribution or for a regional application. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you must also specify the region `us-east-1` (N. Virginia) on the AWS provider.
        :param pulumi.Input[dict] tags: An array of key:value pairs to associate with the resource.
        :param pulumi.Input[dict] visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details.

        The **default_action** object supports the following:

          * `allow` (`pulumi.Input[dict]`) - Specifies that AWS WAF should allow requests by default.
          * `block` (`pulumi.Input[dict]`) - Specifies that AWS WAF should block requests by default.

        The **rules** object supports the following:

          * `action` (`pulumi.Input[dict]`) - The action that AWS WAF should take on a web request when it matches the rule's statement. This is used only for rules whose **statements do not reference a rule group**. See Action below for details.
            * `allow` (`pulumi.Input[dict]`) - Instructs AWS WAF to allow the web request. Configure as an empty block `{}`.
            * `block` (`pulumi.Input[dict]`) - Instructs AWS WAF to block the web request. Configure as an empty block `{}`.
            * `count` (`pulumi.Input[dict]`) - Instructs AWS WAF to count the web request and allow it. Configure as an empty block `{}`.

          * `name` (`pulumi.Input[str]`) - A friendly name of the rule.
          * `overrideAction` (`pulumi.Input[dict]`) - The override action to apply to the rules in a rule group. Used only for rule **statements that reference a rule group**, like `rule_group_reference_statement` and `managed_rule_group_statement`. See Override Action below for details.
            * `count` (`pulumi.Input[dict]`) - Override the rule action setting to count (i.e. only count matches). Configured as an empty block `{}`.
            * `none` (`pulumi.Input[dict]`) - Don't override the rule action setting. Configured as an empty block `{}`.

          * `priority` (`pulumi.Input[float]`) - If you define more than one Rule in a WebACL, AWS WAF evaluates each request against the `rules` in order based on the value of `priority`. AWS WAF processes rules with lower priority first.
          * `statement` (`pulumi.Input[dict]`) - The AWS WAF processing statement for the rule, for example `byte_match_statement` or `geo_match_statement`. See Statement below for details.
            * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
              * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
              * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
              * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

            * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
              * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

            * `managedRuleGroupStatement` (`pulumi.Input[dict]`) - A rule statement used to run the rules that are defined in a managed rule group.  This statement can not be nested. See Managed Rule Group Statement below for details.
              * `excludedRules` (`pulumi.Input[list]`) - The `rules` whose actions are set to `COUNT` by the web ACL, regardless of the action that is set on the rule. See Excluded Rule below for details.
                * `name` (`pulumi.Input[str]`) - The name of the rule to exclude.

              * `name` (`pulumi.Input[str]`) - The name of the managed rule group.
              * `vendorName` (`pulumi.Input[str]`) - The name of the managed rule group vendor.

            * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
              * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
              * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `rateBasedStatement` (`pulumi.Input[dict]`) - A rate-based rule tracks the rate of requests for each originating `IP address`, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any `5-minute` time span. This statement can not be nested. See Rate Based Statement below for details.
              * `aggregateKeyType` (`pulumi.Input[str]`) - Setting that indicates how to aggregate the request counts. Currently the only supported value is `IP` which is set as the default.
              * `limit` (`pulumi.Input[float]`) - The limit on requests per 5-minute period for a single originating IP address.
              * `scopeDownStatement` (`pulumi.Input[dict]`) - An optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
              * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `ruleGroupReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to run the rules that are defined in an WAFv2 Rule Group. See Rule Group Reference Statement below for details.
              * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the `wafv2.RuleGroup` resource.
              * `excludedRules` (`pulumi.Input[list]`) - The `rules` whose actions are set to `COUNT` by the web ACL, regardless of the action that is set on the rule. See Excluded Rule below for details.
                * `name` (`pulumi.Input[str]`) - The name of the rule to exclude.

            * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
              * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

          * `visibility_config` (`pulumi.Input[dict]`) - Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details.
            * `cloudwatchMetricsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics).
            * `metric_name` (`pulumi.Input[str]`) - A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`.
            * `sampledRequestsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.

        The **visibility_config** object supports the following:

          * `cloudwatchMetricsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics).
          * `metric_name` (`pulumi.Input[str]`) - A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`.
          * `sampledRequestsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.
        """
        if __name__ is not None:
            warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning)
            resource_name = __name__
        if __opts__ is not None:
            warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning)
            opts = __opts__
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = _utilities.get_version()
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = dict()

            if default_action is None:
                raise TypeError("Missing required property 'default_action'")
            __props__['default_action'] = default_action
            __props__['description'] = description
            __props__['name'] = name
            __props__['rules'] = rules
            if scope is None:
                raise TypeError("Missing required property 'scope'")
            __props__['scope'] = scope
            __props__['tags'] = tags
            if visibility_config is None:
                raise TypeError("Missing required property 'visibility_config'")
            __props__['visibility_config'] = visibility_config
            __props__['arn'] = None
            __props__['capacity'] = None
            __props__['lock_token'] = None
        super(WebAcl, __self__).__init__(
            'aws:wafv2/webAcl:WebAcl',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name, id, opts=None, arn=None, capacity=None, default_action=None, description=None, lock_token=None, name=None, rules=None, scope=None, tags=None, visibility_config=None):
        """
        Get an existing WebAcl resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param str id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the IP Set that this statement references.
        :param pulumi.Input[float] capacity: The web ACL capacity units (WCUs) currently being used by this web ACL.
        :param pulumi.Input[dict] default_action: The action to perform if none of the `rules` contained in the WebACL match. See Default Action below for details.
        :param pulumi.Input[str] description: A friendly description of the WebACL.
        :param pulumi.Input[str] name: A friendly name of the WebACL.
        :param pulumi.Input[list] rules: The rule blocks used to identify the web requests that you want to `allow`, `block`, or `count`. See Rules below for details.
        :param pulumi.Input[str] scope: Specifies whether this is for an AWS CloudFront distribution or for a regional application. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you must also specify the region `us-east-1` (N. Virginia) on the AWS provider.
        :param pulumi.Input[dict] tags: An array of key:value pairs to associate with the resource.
        :param pulumi.Input[dict] visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details.

        The **default_action** object supports the following:

          * `allow` (`pulumi.Input[dict]`) - Specifies that AWS WAF should allow requests by default.
          * `block` (`pulumi.Input[dict]`) - Specifies that AWS WAF should block requests by default.

        The **rules** object supports the following:

          * `action` (`pulumi.Input[dict]`) - The action that AWS WAF should take on a web request when it matches the rule's statement. This is used only for rules whose **statements do not reference a rule group**. See Action below for details.
            * `allow` (`pulumi.Input[dict]`) - Instructs AWS WAF to allow the web request. Configure as an empty block `{}`.
            * `block` (`pulumi.Input[dict]`) - Instructs AWS WAF to block the web request. Configure as an empty block `{}`.
            * `count` (`pulumi.Input[dict]`) - Instructs AWS WAF to count the web request and allow it. Configure as an empty block `{}`.

          * `name` (`pulumi.Input[str]`) - A friendly name of the rule.
          * `overrideAction` (`pulumi.Input[dict]`) - The override action to apply to the rules in a rule group. Used only for rule **statements that reference a rule group**, like `rule_group_reference_statement` and `managed_rule_group_statement`. See Override Action below for details.
            * `count` (`pulumi.Input[dict]`) - Override the rule action setting to count (i.e. only count matches). Configured as an empty block `{}`.
            * `none` (`pulumi.Input[dict]`) - Don't override the rule action setting. Configured as an empty block `{}`.

          * `priority` (`pulumi.Input[float]`) - If you define more than one Rule in a WebACL, AWS WAF evaluates each request against the `rules` in order based on the value of `priority`. AWS WAF processes rules with lower priority first.
          * `statement` (`pulumi.Input[dict]`) - The AWS WAF processing statement for the rule, for example `byte_match_statement` or `geo_match_statement`. See Statement below for details.
            * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
              * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
              * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
              * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

            * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
              * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

            * `managedRuleGroupStatement` (`pulumi.Input[dict]`) - A rule statement used to run the rules that are defined in a managed rule group.  This statement can not be nested. See Managed Rule Group Statement below for details.
              * `excludedRules` (`pulumi.Input[list]`) - The `rules` whose actions are set to `COUNT` by the web ACL, regardless of the action that is set on the rule. See Excluded Rule below for details.
                * `name` (`pulumi.Input[str]`) - The name of the rule to exclude.

              * `name` (`pulumi.Input[str]`) - The name of the managed rule group.
              * `vendorName` (`pulumi.Input[str]`) - The name of the managed rule group vendor.

            * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
              * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
              * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `rateBasedStatement` (`pulumi.Input[dict]`) - A rate-based rule tracks the rate of requests for each originating `IP address`, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any `5-minute` time span. This statement can not be nested. See Rate Based Statement below for details.
              * `aggregateKeyType` (`pulumi.Input[str]`) - Setting that indicates how to aggregate the request counts. Currently the only supported value is `IP` which is set as the default.
              * `limit` (`pulumi.Input[float]`) - The limit on requests per 5-minute period for a single originating IP address.
              * `scopeDownStatement` (`pulumi.Input[dict]`) - An optional nested statement that narrows the scope of the rate-based statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See Statement above for details.
                * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                  * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                  * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                  * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                    * `andStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with AND logic. See AND Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `AND` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                      * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                      * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                    * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                    * `notStatement` (`pulumi.Input[dict]`) - A logical rule statement used to negate the results of another rule statement. See NOT Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statement to negate. You can use any statement that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `orStatement` (`pulumi.Input[dict]`) - A logical rule statement used to combine other rule statements with OR logic. See OR Statement below for details.
                      * `statements` (`pulumi.Input[list]`) - The statements to combine with `OR` logic. You can use any statements that can be nested. See Statement above for details.
                        * `byteMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a string match search for AWS WAF to apply to web requests. See Byte Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `positionalConstraint` (`pulumi.Input[str]`) - The area within the portion of a web request that you want AWS WAF to search for `search_string`. Valid values include the following: `EXACTLY`, `STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `CONTAINS_WORD`. See the AWS [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html) for more information.
                          * `search_string` (`pulumi.Input[str]`) - A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in `field_to_match`. The maximum length of the value is 50 bytes.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `geoMatchStatement` (`pulumi.Input[dict]`) - A rule statement used to identify web requests based on country of origin. See GEO Match Statement below for details.
                          * `countryCodes` (`pulumi.Input[list]`) - An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.

                        * `ipSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to detect web requests coming from particular IP addresses or address ranges. See IP Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the IP Set that this statement references.

                        * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                          * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                          * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                        * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                          * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                            * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                            * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                            * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                            * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                            * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                              * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                            * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                          * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                            * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                            * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                      * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                      * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                    * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                      * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                        * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                        * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                        * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                        * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                        * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                          * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                        * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                      * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                        * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                        * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
                  * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
                  * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

                * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
                  * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                    * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                    * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                    * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                    * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                    * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                      * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                    * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

                  * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                    * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                    * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `regexPatternSetReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to search web request components for matches with regular expressions. See Regex Pattern Set Reference Statement below for details.
              * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the Regex Pattern Set that this statement references.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `ruleGroupReferenceStatement` (`pulumi.Input[dict]`) - A rule statement used to run the rules that are defined in an WAFv2 Rule Group. See Rule Group Reference Statement below for details.
              * `arn` (`pulumi.Input[str]`) - The Amazon Resource Name (ARN) of the `wafv2.RuleGroup` resource.
              * `excludedRules` (`pulumi.Input[list]`) - The `rules` whose actions are set to `COUNT` by the web ACL, regardless of the action that is set on the rule. See Excluded Rule below for details.
                * `name` (`pulumi.Input[str]`) - The name of the rule to exclude.

            * `sizeConstraintStatement` (`pulumi.Input[dict]`) - 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 (<). See Size Constraint Statement below for more details.
              * `comparison_operator` (`pulumi.Input[str]`) - The operator to use to compare the request part to the size setting. Valid values include: `EQ`, `NE`, `LE`, `LT`, `GE`, or `GT`.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `size` (`pulumi.Input[float]`) - The size, in bytes, to compare to the request part, after any transformations. Valid values are integers between 0 and 21474836480, inclusive.
              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `sqliMatchStatement` (`pulumi.Input[dict]`) - An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect. See SQL Injection Match Statement below for details.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

            * `xssMatchStatement` (`pulumi.Input[dict]`) - A rule statement that defines a cross-site scripting (XSS) match search for AWS WAF to apply to web requests. See XSS Match Statement below for details.
              * `fieldToMatch` (`pulumi.Input[dict]`) - The part of a web request that you want AWS WAF to inspect. See Field to Match below for details.
                * `allQueryArguments` (`pulumi.Input[dict]`) - Inspect all query arguments.
                * `body` (`pulumi.Input[dict]`) - Inspect the request body, which immediately follows the request headers.
                * `method` (`pulumi.Input[dict]`) - Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
                * `queryString` (`pulumi.Input[dict]`) - Inspect the query string. This is the part of a URL that appears after a `?` character, if any.
                * `singleHeader` (`pulumi.Input[dict]`) - Inspect a single header. See Single Header below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `singleQueryArgument` (`pulumi.Input[dict]`) - Inspect a single query argument. See Single Query Argument below for details.
                  * `name` (`pulumi.Input[str]`) - The name of the query header to inspect. This setting must be provided as lower case characters.

                * `uriPath` (`pulumi.Input[dict]`) - Inspect the request URI path. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`.

              * `textTransformations` (`pulumi.Input[list]`) - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. See Text Transformation below for details.
                * `priority` (`pulumi.Input[float]`) - The relative processing order for multiple transformations that are defined for a rule statement. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content.
                * `type` (`pulumi.Input[str]`) - The transformation to apply, you can specify the following types: `NONE`, `COMPRESS_WHITE_SPACE`, `HTML_ENTITY_DECODE`, `LOWERCASE`, `CMD_LINE`, `URL_DECODE`. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_TextTransformation.html) for more details.

          * `visibility_config` (`pulumi.Input[dict]`) - Defines and enables Amazon CloudWatch metrics and web request sample collection. See Visibility Configuration below for details.
            * `cloudwatchMetricsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics).
            * `metric_name` (`pulumi.Input[str]`) - A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`.
            * `sampledRequestsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.

        The **visibility_config** object supports the following:

          * `cloudwatchMetricsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether the associated resource sends metrics to CloudWatch. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics).
          * `metric_name` (`pulumi.Input[str]`) - A friendly name of the CloudWatch metric. The name can contain only alphanumeric characters (A-Z, a-z, 0-9) hyphen(-) and underscore (\_), with length from one to 128 characters. It can't contain whitespace or metric names reserved for AWS WAF, for example `All` and `Default_Action`.
          * `sampledRequestsEnabled` (`pulumi.Input[bool]`) - A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = dict()

        __props__["arn"] = arn
        __props__["capacity"] = capacity
        __props__["default_action"] = default_action
        __props__["description"] = description
        __props__["lock_token"] = lock_token
        __props__["name"] = name
        __props__["rules"] = rules
        __props__["scope"] = scope
        __props__["tags"] = tags
        __props__["visibility_config"] = visibility_config
        return WebAcl(resource_name, opts=opts, __props__=__props__)

    def translate_output_property(self, prop):
        return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop

    def translate_input_property(self, prop):
        return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop
