1. Packages
  2. AWS
  3. API Docs
  4. wafv2
  5. WebAclRule
Viewing docs for AWS v7.25.0
published on Saturday, Apr 11, 2026 by Pulumi
aws logo
Viewing docs for AWS v7.25.0
published on Saturday, Apr 11, 2026 by Pulumi

    Manages an individual rule within a WAFv2 Web ACL. This resource creates proper Terraform dependencies for safe deletion of referenced resources like IP sets, solving the WAFAssociatedItemException error that occurs when deleting IP sets that are still referenced by Web ACL rules.

    NOTE: When using this resource, you must add lifecycle { ignoreChanges = [rule] } to your aws.wafv2.WebAcl resource to prevent conflicts. See the aws.wafv2.WebAcl documentation for a full description of the limitations of inline rules that this resource addresses.

    Example Usage

    Migrating from Inline Rules

    This resource supports a “create-or-adopt” pattern that allows seamless migration from inline Web ACL rules to separate aws.wafv2.WebAclRule resources without infrastructure changes.

    When you create an aws.wafv2.WebAclRule resource with the same name as an existing inline rule in the Web ACL, the resource will automatically adopt the existing rule instead of creating a duplicate. This enables zero-downtime migration from inline rules to separate resources.

    Starting with inline rules, update your configuration to use separate rule resources and apply:

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.wafv2.WebAcl("example", {
        name: "example",
        scope: "REGIONAL",
        defaultAction: {
            allow: {},
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: false,
            metricName: "example",
            sampledRequestsEnabled: false,
        },
    });
    // Separate rule resource with identical configuration
    const blockCountries = new aws.wafv2.WebAclRule("block_countries", {
        name: "block-countries",
        priority: 1,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            geoMatchStatement: {
                countryCodes: [
                    "CN",
                    "RU",
                ],
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: false,
            metricName: "block-countries",
            sampledRequestsEnabled: false,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.wafv2.WebAcl("example",
        name="example",
        scope="REGIONAL",
        default_action={
            "allow": {},
        },
        visibility_config={
            "cloudwatch_metrics_enabled": False,
            "metric_name": "example",
            "sampled_requests_enabled": False,
        })
    # Separate rule resource with identical configuration
    block_countries = aws.wafv2.WebAclRule("block_countries",
        name="block-countries",
        priority=1,
        web_acl_arn=example.arn,
        action={
            "block": {},
        },
        statement={
            "geo_match_statement": {
                "country_codes": [
                    "CN",
                    "RU",
                ],
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": False,
            "metric_name": "block-countries",
            "sampled_requests_enabled": False,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := wafv2.NewWebAcl(ctx, "example", &wafv2.WebAclArgs{
    			Name:  pulumi.String("example"),
    			Scope: pulumi.String("REGIONAL"),
    			DefaultAction: &wafv2.WebAclDefaultActionArgs{
    				Allow: &wafv2.WebAclDefaultActionAllowArgs{},
    			},
    			VisibilityConfig: &wafv2.WebAclVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(false),
    				MetricName:               pulumi.String("example"),
    				SampledRequestsEnabled:   pulumi.Bool(false),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Separate rule resource with identical configuration
    		_, err = wafv2.NewWebAclRule(ctx, "block_countries", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("block-countries"),
    			Priority:  pulumi.Int(1),
    			WebAclArn: example.Arn,
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    					CountryCodes: pulumi.StringArray{
    						pulumi.String("CN"),
    						pulumi.String("RU"),
    					},
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(false),
    				MetricName:               pulumi.String("block-countries"),
    				SampledRequestsEnabled:   pulumi.Bool(false),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.WafV2.WebAcl("example", new()
        {
            Name = "example",
            Scope = "REGIONAL",
            DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs
            {
                Allow = null,
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = false,
                MetricName = "example",
                SampledRequestsEnabled = false,
            },
        });
    
        // Separate rule resource with identical configuration
        var blockCountries = new Aws.WafV2.WebAclRule("block_countries", new()
        {
            Name = "block-countries",
            Priority = 1,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
                {
                    CountryCodes = new[]
                    {
                        "CN",
                        "RU",
                    },
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = false,
                MetricName = "block-countries",
                SampledRequestsEnabled = false,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAcl;
    import com.pulumi.aws.wafv2.WebAclArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementGeoMatchStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new WebAcl("example", WebAclArgs.builder()
                .name("example")
                .scope("REGIONAL")
                .defaultAction(WebAclDefaultActionArgs.builder()
                    .allow(WebAclDefaultActionAllowArgs.builder()
                        .build())
                    .build())
                .visibilityConfig(WebAclVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(false)
                    .metricName("example")
                    .sampledRequestsEnabled(false)
                    .build())
                .build());
    
            // Separate rule resource with identical configuration
            var blockCountries = new WebAclRule("blockCountries", WebAclRuleArgs.builder()
                .name("block-countries")
                .priority(1)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                        .countryCodes(                    
                            "CN",
                            "RU")
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(false)
                    .metricName("block-countries")
                    .sampledRequestsEnabled(false)
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:wafv2:WebAcl
        properties:
          name: example
          scope: REGIONAL
          defaultAction:
            allow: {}
          visibilityConfig:
            cloudwatchMetricsEnabled: false
            metricName: example
            sampledRequestsEnabled: false
      # Separate rule resource with identical configuration
      blockCountries:
        type: aws:wafv2:WebAclRule
        name: block_countries
        properties:
          name: block-countries
          priority: 1
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            geoMatchStatement:
              countryCodes:
                - CN
                - RU
          visibilityConfig:
            cloudwatchMetricsEnabled: false
            metricName: block-countries
            sampledRequestsEnabled: false
    

    Apply the configuration:

    pulumi up
    

    The aws.wafv2.WebAclRule resource will adopt the existing inline rule without making any changes to the actual Web ACL infrastructure. The rule continues to function identically, but is now managed as a separate Terraform resource.

    • The rule name in the aws.wafv2.WebAclRule resource must exactly match the existing inline rule name
    • Add lifecycle { ignoreChanges = [rule] } to your Web ACL resource to prevent conflicts
    • The create-or-adopt behavior only applies when a rule with the same name already exists in the Web ACL

    Basic Geo Match Rule

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.wafv2.WebAcl("example", {
        name: "example",
        scope: "REGIONAL",
        defaultAction: {
            allow: {},
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: false,
            metricName: "example",
            sampledRequestsEnabled: false,
        },
    });
    const blockCountries = new aws.wafv2.WebAclRule("block_countries", {
        name: "block-countries",
        priority: 1,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            geoMatchStatement: {
                countryCodes: [
                    "CN",
                    "RU",
                ],
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: false,
            metricName: "block-countries",
            sampledRequestsEnabled: false,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.wafv2.WebAcl("example",
        name="example",
        scope="REGIONAL",
        default_action={
            "allow": {},
        },
        visibility_config={
            "cloudwatch_metrics_enabled": False,
            "metric_name": "example",
            "sampled_requests_enabled": False,
        })
    block_countries = aws.wafv2.WebAclRule("block_countries",
        name="block-countries",
        priority=1,
        web_acl_arn=example.arn,
        action={
            "block": {},
        },
        statement={
            "geo_match_statement": {
                "country_codes": [
                    "CN",
                    "RU",
                ],
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": False,
            "metric_name": "block-countries",
            "sampled_requests_enabled": False,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := wafv2.NewWebAcl(ctx, "example", &wafv2.WebAclArgs{
    			Name:  pulumi.String("example"),
    			Scope: pulumi.String("REGIONAL"),
    			DefaultAction: &wafv2.WebAclDefaultActionArgs{
    				Allow: &wafv2.WebAclDefaultActionAllowArgs{},
    			},
    			VisibilityConfig: &wafv2.WebAclVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(false),
    				MetricName:               pulumi.String("example"),
    				SampledRequestsEnabled:   pulumi.Bool(false),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = wafv2.NewWebAclRule(ctx, "block_countries", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("block-countries"),
    			Priority:  pulumi.Int(1),
    			WebAclArn: example.Arn,
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    					CountryCodes: pulumi.StringArray{
    						pulumi.String("CN"),
    						pulumi.String("RU"),
    					},
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(false),
    				MetricName:               pulumi.String("block-countries"),
    				SampledRequestsEnabled:   pulumi.Bool(false),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.WafV2.WebAcl("example", new()
        {
            Name = "example",
            Scope = "REGIONAL",
            DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs
            {
                Allow = null,
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = false,
                MetricName = "example",
                SampledRequestsEnabled = false,
            },
        });
    
        var blockCountries = new Aws.WafV2.WebAclRule("block_countries", new()
        {
            Name = "block-countries",
            Priority = 1,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
                {
                    CountryCodes = new[]
                    {
                        "CN",
                        "RU",
                    },
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = false,
                MetricName = "block-countries",
                SampledRequestsEnabled = false,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAcl;
    import com.pulumi.aws.wafv2.WebAclArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementGeoMatchStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new WebAcl("example", WebAclArgs.builder()
                .name("example")
                .scope("REGIONAL")
                .defaultAction(WebAclDefaultActionArgs.builder()
                    .allow(WebAclDefaultActionAllowArgs.builder()
                        .build())
                    .build())
                .visibilityConfig(WebAclVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(false)
                    .metricName("example")
                    .sampledRequestsEnabled(false)
                    .build())
                .build());
    
            var blockCountries = new WebAclRule("blockCountries", WebAclRuleArgs.builder()
                .name("block-countries")
                .priority(1)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                        .countryCodes(                    
                            "CN",
                            "RU")
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(false)
                    .metricName("block-countries")
                    .sampledRequestsEnabled(false)
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:wafv2:WebAcl
        properties:
          name: example
          scope: REGIONAL
          defaultAction:
            allow: {}
          visibilityConfig:
            cloudwatchMetricsEnabled: false
            metricName: example
            sampledRequestsEnabled: false
      blockCountries:
        type: aws:wafv2:WebAclRule
        name: block_countries
        properties:
          name: block-countries
          priority: 1
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            geoMatchStatement:
              countryCodes:
                - CN
                - RU
          visibilityConfig:
            cloudwatchMetricsEnabled: false
            metricName: block-countries
            sampledRequestsEnabled: false
    

    IP Set Reference (Solves Deletion Ordering)

    This example demonstrates the primary use case: referencing an IP set in a way that allows safe deletion.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const blockedIps = new aws.wafv2.IpSet("blocked_ips", {
        name: "blocked-ips",
        scope: "REGIONAL",
        ipAddressVersion: "IPV4",
        addresses: [
            "1.2.3.4/32",
            "5.6.7.8/32",
        ],
    });
    const example = new aws.wafv2.WebAcl("example", {
        name: "example",
        scope: "REGIONAL",
        defaultAction: {
            allow: {},
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "example",
            sampledRequestsEnabled: true,
        },
    });
    const blockIps = new aws.wafv2.WebAclRule("block_ips", {
        name: "block-bad-ips",
        priority: 1,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            ipSetReferenceStatement: {
                arn: blockedIps.arn,
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "block-bad-ips",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    blocked_ips = aws.wafv2.IpSet("blocked_ips",
        name="blocked-ips",
        scope="REGIONAL",
        ip_address_version="IPV4",
        addresses=[
            "1.2.3.4/32",
            "5.6.7.8/32",
        ])
    example = aws.wafv2.WebAcl("example",
        name="example",
        scope="REGIONAL",
        default_action={
            "allow": {},
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "example",
            "sampled_requests_enabled": True,
        })
    block_ips = aws.wafv2.WebAclRule("block_ips",
        name="block-bad-ips",
        priority=1,
        web_acl_arn=example.arn,
        action={
            "block": {},
        },
        statement={
            "ip_set_reference_statement": {
                "arn": blocked_ips.arn,
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "block-bad-ips",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		blockedIps, err := wafv2.NewIpSet(ctx, "blocked_ips", &wafv2.IpSetArgs{
    			Name:             pulumi.String("blocked-ips"),
    			Scope:            pulumi.String("REGIONAL"),
    			IpAddressVersion: pulumi.String("IPV4"),
    			Addresses: pulumi.StringArray{
    				pulumi.String("1.2.3.4/32"),
    				pulumi.String("5.6.7.8/32"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		example, err := wafv2.NewWebAcl(ctx, "example", &wafv2.WebAclArgs{
    			Name:  pulumi.String("example"),
    			Scope: pulumi.String("REGIONAL"),
    			DefaultAction: &wafv2.WebAclDefaultActionArgs{
    				Allow: &wafv2.WebAclDefaultActionAllowArgs{},
    			},
    			VisibilityConfig: &wafv2.WebAclVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("example"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = wafv2.NewWebAclRule(ctx, "block_ips", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("block-bad-ips"),
    			Priority:  pulumi.Int(1),
    			WebAclArn: example.Arn,
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				IpSetReferenceStatement: &wafv2.WebAclRuleStatementIpSetReferenceStatementArgs{
    					Arn: blockedIps.Arn,
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("block-bad-ips"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var blockedIps = new Aws.WafV2.IpSet("blocked_ips", new()
        {
            Name = "blocked-ips",
            Scope = "REGIONAL",
            IpAddressVersion = "IPV4",
            Addresses = new[]
            {
                "1.2.3.4/32",
                "5.6.7.8/32",
            },
        });
    
        var example = new Aws.WafV2.WebAcl("example", new()
        {
            Name = "example",
            Scope = "REGIONAL",
            DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs
            {
                Allow = null,
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "example",
                SampledRequestsEnabled = true,
            },
        });
    
        var blockIps = new Aws.WafV2.WebAclRule("block_ips", new()
        {
            Name = "block-bad-ips",
            Priority = 1,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementIpSetReferenceStatementArgs
                {
                    Arn = blockedIps.Arn,
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "block-bad-ips",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.IpSet;
    import com.pulumi.aws.wafv2.IpSetArgs;
    import com.pulumi.aws.wafv2.WebAcl;
    import com.pulumi.aws.wafv2.WebAclArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementIpSetReferenceStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var blockedIps = new IpSet("blockedIps", IpSetArgs.builder()
                .name("blocked-ips")
                .scope("REGIONAL")
                .ipAddressVersion("IPV4")
                .addresses(            
                    "1.2.3.4/32",
                    "5.6.7.8/32")
                .build());
    
            var example = new WebAcl("example", WebAclArgs.builder()
                .name("example")
                .scope("REGIONAL")
                .defaultAction(WebAclDefaultActionArgs.builder()
                    .allow(WebAclDefaultActionAllowArgs.builder()
                        .build())
                    .build())
                .visibilityConfig(WebAclVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("example")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
            var blockIps = new WebAclRule("blockIps", WebAclRuleArgs.builder()
                .name("block-bad-ips")
                .priority(1)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .ipSetReferenceStatement(WebAclRuleStatementIpSetReferenceStatementArgs.builder()
                        .arn(blockedIps.arn())
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("block-bad-ips")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      blockedIps:
        type: aws:wafv2:IpSet
        name: blocked_ips
        properties:
          name: blocked-ips
          scope: REGIONAL
          ipAddressVersion: IPV4
          addresses:
            - 1.2.3.4/32
            - 5.6.7.8/32
      example:
        type: aws:wafv2:WebAcl
        properties:
          name: example
          scope: REGIONAL
          defaultAction:
            allow: {}
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: example
            sampledRequestsEnabled: true
      blockIps:
        type: aws:wafv2:WebAclRule
        name: block_ips
        properties:
          name: block-bad-ips
          priority: 1
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            ipSetReferenceStatement:
              arn: ${blockedIps.arn}
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: block-bad-ips
            sampledRequestsEnabled: true
    

    Rate-Based Rule

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const rateLimit = new aws.wafv2.WebAclRule("rate_limit", {
        name: "rate-limit",
        priority: 2,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            rateBasedStatement: {
                limit: 2000,
                aggregateKeyType: "IP",
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "rate-limit",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    rate_limit = aws.wafv2.WebAclRule("rate_limit",
        name="rate-limit",
        priority=2,
        web_acl_arn=example["arn"],
        action={
            "block": {},
        },
        statement={
            "rate_based_statement": {
                "limit": 2000,
                "aggregate_key_type": "IP",
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "rate-limit",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "rate_limit", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("rate-limit"),
    			Priority:  pulumi.Int(2),
    			WebAclArn: pulumi.Any(example.Arn),
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				RateBasedStatement: &wafv2.WebAclRuleStatementRateBasedStatementArgs{
    					Limit:            pulumi.Int(2000),
    					AggregateKeyType: pulumi.String("IP"),
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("rate-limit"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var rateLimit = new Aws.WafV2.WebAclRule("rate_limit", new()
        {
            Name = "rate-limit",
            Priority = 2,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementArgs
                {
                    Limit = 2000,
                    AggregateKeyType = "IP",
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "rate-limit",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var rateLimit = new WebAclRule("rateLimit", WebAclRuleArgs.builder()
                .name("rate-limit")
                .priority(2)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .rateBasedStatement(WebAclRuleStatementRateBasedStatementArgs.builder()
                        .limit(2000)
                        .aggregateKeyType("IP")
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("rate-limit")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      rateLimit:
        type: aws:wafv2:WebAclRule
        name: rate_limit
        properties:
          name: rate-limit
          priority: 2
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            rateBasedStatement:
              limit: 2000
              aggregateKeyType: IP
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: rate-limit
            sampledRequestsEnabled: true
    

    Managed Rule Group with Override Action

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const awsManagedRules = new aws.wafv2.WebAclRule("aws_managed_rules", {
        name: "aws-managed-rules",
        priority: 3,
        webAclArn: example.arn,
        overrideAction: {
            none: {},
        },
        statement: {
            managedRuleGroupStatement: {
                name: "AWSManagedRulesCommonRuleSet",
                vendorName: "AWS",
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "aws-managed-rules",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    aws_managed_rules = aws.wafv2.WebAclRule("aws_managed_rules",
        name="aws-managed-rules",
        priority=3,
        web_acl_arn=example["arn"],
        override_action={
            "none": {},
        },
        statement={
            "managed_rule_group_statement": {
                "name": "AWSManagedRulesCommonRuleSet",
                "vendor_name": "AWS",
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "aws-managed-rules",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "aws_managed_rules", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("aws-managed-rules"),
    			Priority:  pulumi.Int(3),
    			WebAclArn: pulumi.Any(example.Arn),
    			OverrideAction: &wafv2.WebAclRuleOverrideActionArgs{
    				None: &wafv2.WebAclRuleOverrideActionNoneArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				ManagedRuleGroupStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementArgs{
    					Name:       pulumi.String("AWSManagedRulesCommonRuleSet"),
    					VendorName: pulumi.String("AWS"),
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("aws-managed-rules"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var awsManagedRules = new Aws.WafV2.WebAclRule("aws_managed_rules", new()
        {
            Name = "aws-managed-rules",
            Priority = 3,
            WebAclArn = example.Arn,
            OverrideAction = new Aws.WafV2.Inputs.WebAclRuleOverrideActionArgs
            {
                None = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                ManagedRuleGroupStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementArgs
                {
                    Name = "AWSManagedRulesCommonRuleSet",
                    VendorName = "AWS",
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "aws-managed-rules",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionNoneArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var awsManagedRules = new WebAclRule("awsManagedRules", WebAclRuleArgs.builder()
                .name("aws-managed-rules")
                .priority(3)
                .webAclArn(example.arn())
                .overrideAction(WebAclRuleOverrideActionArgs.builder()
                    .none(WebAclRuleOverrideActionNoneArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .managedRuleGroupStatement(WebAclRuleStatementManagedRuleGroupStatementArgs.builder()
                        .name("AWSManagedRulesCommonRuleSet")
                        .vendorName("AWS")
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("aws-managed-rules")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      awsManagedRules:
        type: aws:wafv2:WebAclRule
        name: aws_managed_rules
        properties:
          name: aws-managed-rules
          priority: 3
          webAclArn: ${example.arn}
          overrideAction:
            none: {}
          statement:
            managedRuleGroupStatement:
              name: AWSManagedRulesCommonRuleSet
              vendorName: AWS
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: aws-managed-rules
            sampledRequestsEnabled: true
    

    Custom Request Handling

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const captchaWithHeaders = new aws.wafv2.WebAclRule("captcha_with_headers", {
        name: "captcha-with-headers",
        priority: 4,
        webAclArn: example.arn,
        action: {
            captcha: {
                customRequestHandling: {
                    insertHeaders: [{
                        name: "x-captcha-rule",
                        value: "triggered",
                    }],
                },
            },
        },
        statement: {
            geoMatchStatement: {
                countryCodes: ["US"],
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "captcha-with-headers",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    captcha_with_headers = aws.wafv2.WebAclRule("captcha_with_headers",
        name="captcha-with-headers",
        priority=4,
        web_acl_arn=example["arn"],
        action={
            "captcha": {
                "custom_request_handling": {
                    "insert_headers": [{
                        "name": "x-captcha-rule",
                        "value": "triggered",
                    }],
                },
            },
        },
        statement={
            "geo_match_statement": {
                "country_codes": ["US"],
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "captcha-with-headers",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "captcha_with_headers", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("captcha-with-headers"),
    			Priority:  pulumi.Int(4),
    			WebAclArn: pulumi.Any(example.Arn),
    			Action: &wafv2.WebAclRuleActionArgs{
    				Captcha: &wafv2.WebAclRuleActionCaptchaArgs{
    					CustomRequestHandling: &wafv2.WebAclRuleActionCaptchaCustomRequestHandlingArgs{
    						InsertHeaders: wafv2.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArray{
    							&wafv2.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs{
    								Name:  pulumi.String("x-captcha-rule"),
    								Value: pulumi.String("triggered"),
    							},
    						},
    					},
    				},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    					CountryCodes: pulumi.StringArray{
    						pulumi.String("US"),
    					},
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("captcha-with-headers"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var captchaWithHeaders = new Aws.WafV2.WebAclRule("captcha_with_headers", new()
        {
            Name = "captcha-with-headers",
            Priority = 4,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Captcha = new Aws.WafV2.Inputs.WebAclRuleActionCaptchaArgs
                {
                    CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleActionCaptchaCustomRequestHandlingArgs
                    {
                        InsertHeaders = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs
                            {
                                Name = "x-captcha-rule",
                                Value = "triggered",
                            },
                        },
                    },
                },
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
                {
                    CountryCodes = new[]
                    {
                        "US",
                    },
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "captcha-with-headers",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionCaptchaArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionCaptchaCustomRequestHandlingArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementGeoMatchStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var captchaWithHeaders = new WebAclRule("captchaWithHeaders", WebAclRuleArgs.builder()
                .name("captcha-with-headers")
                .priority(4)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .captcha(WebAclRuleActionCaptchaArgs.builder()
                        .customRequestHandling(WebAclRuleActionCaptchaCustomRequestHandlingArgs.builder()
                            .insertHeaders(WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs.builder()
                                .name("x-captcha-rule")
                                .value("triggered")
                                .build())
                            .build())
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                        .countryCodes("US")
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("captcha-with-headers")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      captchaWithHeaders:
        type: aws:wafv2:WebAclRule
        name: captcha_with_headers
        properties:
          name: captcha-with-headers
          priority: 4
          webAclArn: ${example.arn}
          action:
            captcha:
              customRequestHandling:
                insertHeaders:
                  - name: x-captcha-rule
                    value: triggered
          statement:
            geoMatchStatement:
              countryCodes:
                - US
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: captcha-with-headers
            sampledRequestsEnabled: true
    

    IP Set Reference

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const blockedIps = new aws.wafv2.WebAclRule("blocked_ips", {
        name: "blocked-ips",
        priority: 1,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            ipSetReferenceStatement: {
                arn: blockedIpsAwsWafv2IpSet.arn,
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "block-bad-ips",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    blocked_ips = aws.wafv2.WebAclRule("blocked_ips",
        name="blocked-ips",
        priority=1,
        web_acl_arn=example["arn"],
        action={
            "block": {},
        },
        statement={
            "ip_set_reference_statement": {
                "arn": blocked_ips_aws_wafv2_ip_set["arn"],
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "block-bad-ips",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "blocked_ips", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("blocked-ips"),
    			Priority:  pulumi.Int(1),
    			WebAclArn: pulumi.Any(example.Arn),
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				IpSetReferenceStatement: &wafv2.WebAclRuleStatementIpSetReferenceStatementArgs{
    					Arn: pulumi.Any(blockedIpsAwsWafv2IpSet.Arn),
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("block-bad-ips"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var blockedIps = new Aws.WafV2.WebAclRule("blocked_ips", new()
        {
            Name = "blocked-ips",
            Priority = 1,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementIpSetReferenceStatementArgs
                {
                    Arn = blockedIpsAwsWafv2IpSet.Arn,
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "block-bad-ips",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementIpSetReferenceStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var blockedIps = new WebAclRule("blockedIps", WebAclRuleArgs.builder()
                .name("blocked-ips")
                .priority(1)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .ipSetReferenceStatement(WebAclRuleStatementIpSetReferenceStatementArgs.builder()
                        .arn(blockedIpsAwsWafv2IpSet.arn())
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("block-bad-ips")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      blockedIps:
        type: aws:wafv2:WebAclRule
        name: blocked_ips
        properties:
          name: blocked-ips
          priority: 1
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            ipSetReferenceStatement:
              arn: ${blockedIpsAwsWafv2IpSet.arn}
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: block-bad-ips
            sampledRequestsEnabled: true
    

    With this configuration, when you remove both the aws.wafv2.WebAclRule and aws.wafv2.IpSet resources, Terraform will:

    1. Delete the rule first (removing the reference from the Web ACL)
    2. Delete the IP set second (now safe because it’s no longer referenced)

    This prevents the WAFAssociatedItemException error.

    Logical AND Statement

    Block requests that match multiple conditions (e.g., from a specific country AND containing a specific string):

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const blockSuspicious = new aws.wafv2.WebAclRule("block_suspicious", {
        name: "block-suspicious",
        priority: 1,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            andStatement: {
                statements: [
                    {
                        geoMatchStatement: {
                            countryCodes: ["CN"],
                        },
                    },
                    {
                        byteMatchStatement: {
                            searchString: "admin",
                            positionalConstraint: "CONTAINS",
                            fieldToMatch: {
                                uriPath: {},
                            },
                            textTransformations: [{
                                priority: 0,
                                type: "LOWERCASE",
                            }],
                        },
                    },
                ],
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "block-suspicious",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    block_suspicious = aws.wafv2.WebAclRule("block_suspicious",
        name="block-suspicious",
        priority=1,
        web_acl_arn=example["arn"],
        action={
            "block": {},
        },
        statement={
            "and_statement": {
                "statements": [
                    {
                        "geo_match_statement": {
                            "country_codes": ["CN"],
                        },
                    },
                    {
                        "byte_match_statement": {
                            "search_string": "admin",
                            "positional_constraint": "CONTAINS",
                            "field_to_match": {
                                "uri_path": {},
                            },
                            "text_transformations": [{
                                "priority": 0,
                                "type": "LOWERCASE",
                            }],
                        },
                    },
                ],
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "block-suspicious",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "block_suspicious", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("block-suspicious"),
    			Priority:  pulumi.Int(1),
    			WebAclArn: pulumi.Any(example.Arn),
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				AndStatement: &wafv2.WebAclRuleStatementAndStatementArgs{
    					Statements: wafv2.WebAclRuleStatementArray{
    						&wafv2.WebAclRuleStatementArgs{
    							GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    								CountryCodes: pulumi.StringArray{
    									pulumi.String("CN"),
    								},
    							},
    						},
    						&wafv2.WebAclRuleStatementArgs{
    							ByteMatchStatement: &wafv2.WebAclRuleStatementByteMatchStatementArgs{
    								SearchString:         pulumi.String("admin"),
    								PositionalConstraint: pulumi.String("CONTAINS"),
    								FieldToMatch: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchArgs{
    									UriPath: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs{},
    								},
    								TextTransformations: wafv2.WebAclRuleStatementByteMatchStatementTextTransformationArray{
    									&wafv2.WebAclRuleStatementByteMatchStatementTextTransformationArgs{
    										Priority: pulumi.Int(0),
    										Type:     pulumi.String("LOWERCASE"),
    									},
    								},
    							},
    						},
    					},
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("block-suspicious"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var blockSuspicious = new Aws.WafV2.WebAclRule("block_suspicious", new()
        {
            Name = "block-suspicious",
            Priority = 1,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                AndStatement = new Aws.WafV2.Inputs.WebAclRuleStatementAndStatementArgs
                {
                    Statements = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementArgs
                        {
                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
                            {
                                CountryCodes = new[]
                                {
                                    "CN",
                                },
                            },
                        },
                        new Aws.WafV2.Inputs.WebAclRuleStatementArgs
                        {
                            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementArgs
                            {
                                SearchString = "admin",
                                PositionalConstraint = "CONTAINS",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchArgs
                                {
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "LOWERCASE",
                                    },
                                },
                            },
                        },
                    },
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "block-suspicious",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementAndStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var blockSuspicious = new WebAclRule("blockSuspicious", WebAclRuleArgs.builder()
                .name("block-suspicious")
                .priority(1)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .andStatement(Map.of("statements",                 
                        WebAclRuleStatementArgs.builder()
                            .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                                .countryCodes("CN")
                                .build())
                            .build(),
                        WebAclRuleStatementArgs.builder()
                            .byteMatchStatement(WebAclRuleStatementByteMatchStatementArgs.builder()
                                .searchString("admin")
                                .positionalConstraint("CONTAINS")
                                .fieldToMatch(WebAclRuleStatementByteMatchStatementFieldToMatchArgs.builder()
                                    .uriPath(WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                        .build())
                                    .build())
                                .textTransformations(WebAclRuleStatementByteMatchStatementTextTransformationArgs.builder()
                                    .priority(0)
                                    .type("LOWERCASE")
                                    .build())
                                .build())
                            .build()))
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("block-suspicious")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      blockSuspicious:
        type: aws:wafv2:WebAclRule
        name: block_suspicious
        properties:
          name: block-suspicious
          priority: 1
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            andStatement:
              statements:
                - geoMatchStatement:
                    countryCodes:
                      - CN
                - byteMatchStatement:
                    searchString: admin
                    positionalConstraint: CONTAINS
                    fieldToMatch:
                      uriPath: {}
                    textTransformations:
                      - priority: 0
                        type: LOWERCASE
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: block-suspicious
            sampledRequestsEnabled: true
    

    Logical OR Statement

    Block requests that match any of multiple conditions:

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const blockCountries = new aws.wafv2.WebAclRule("block_countries", {
        name: "block-countries",
        priority: 2,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            orStatement: {
                statements: [
                    {
                        geoMatchStatement: {
                            countryCodes: ["CN"],
                        },
                    },
                    {
                        geoMatchStatement: {
                            countryCodes: ["RU"],
                        },
                    },
                ],
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "block-countries",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    block_countries = aws.wafv2.WebAclRule("block_countries",
        name="block-countries",
        priority=2,
        web_acl_arn=example["arn"],
        action={
            "block": {},
        },
        statement={
            "or_statement": {
                "statements": [
                    {
                        "geo_match_statement": {
                            "country_codes": ["CN"],
                        },
                    },
                    {
                        "geo_match_statement": {
                            "country_codes": ["RU"],
                        },
                    },
                ],
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "block-countries",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "block_countries", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("block-countries"),
    			Priority:  pulumi.Int(2),
    			WebAclArn: pulumi.Any(example.Arn),
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				OrStatement: &wafv2.WebAclRuleStatementOrStatementArgs{
    					Statements: wafv2.WebAclRuleStatementArray{
    						&wafv2.WebAclRuleStatementArgs{
    							GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    								CountryCodes: pulumi.StringArray{
    									pulumi.String("CN"),
    								},
    							},
    						},
    						&wafv2.WebAclRuleStatementArgs{
    							GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    								CountryCodes: pulumi.StringArray{
    									pulumi.String("RU"),
    								},
    							},
    						},
    					},
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("block-countries"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var blockCountries = new Aws.WafV2.WebAclRule("block_countries", new()
        {
            Name = "block-countries",
            Priority = 2,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                OrStatement = new Aws.WafV2.Inputs.WebAclRuleStatementOrStatementArgs
                {
                    Statements = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementArgs
                        {
                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
                            {
                                CountryCodes = new[]
                                {
                                    "CN",
                                },
                            },
                        },
                        new Aws.WafV2.Inputs.WebAclRuleStatementArgs
                        {
                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
                            {
                                CountryCodes = new[]
                                {
                                    "RU",
                                },
                            },
                        },
                    },
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "block-countries",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementOrStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var blockCountries = new WebAclRule("blockCountries", WebAclRuleArgs.builder()
                .name("block-countries")
                .priority(2)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .orStatement(WebAclRuleStatementOrStatementArgs.builder()
                        .statements(                    
                            WebAclRuleStatementArgs.builder()
                                .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                                    .countryCodes("CN")
                                    .build())
                                .build(),
                            WebAclRuleStatementArgs.builder()
                                .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                                    .countryCodes("RU")
                                    .build())
                                .build())
                        .build())
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("block-countries")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      blockCountries:
        type: aws:wafv2:WebAclRule
        name: block_countries
        properties:
          name: block-countries
          priority: 2
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            orStatement:
              statements:
                - geoMatchStatement:
                    countryCodes:
                      - CN
                - geoMatchStatement:
                    countryCodes:
                      - RU
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: block-countries
            sampledRequestsEnabled: true
    

    Logical NOT Statement

    Allow requests only from specific countries by negating a geo match:

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const allowOnlyUs = new aws.wafv2.WebAclRule("allow_only_us", {
        name: "allow-only-us",
        priority: 3,
        webAclArn: example.arn,
        action: {
            block: {},
        },
        statement: {
            notStatement: {
                statement: {
                    geoMatchStatement: {
                        countryCodes: [
                            "US",
                            "CA",
                        ],
                    },
                },
            },
        },
        visibilityConfig: {
            cloudwatchMetricsEnabled: true,
            metricName: "allow-only-us",
            sampledRequestsEnabled: true,
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    allow_only_us = aws.wafv2.WebAclRule("allow_only_us",
        name="allow-only-us",
        priority=3,
        web_acl_arn=example["arn"],
        action={
            "block": {},
        },
        statement={
            "not_statement": {
                "statement": {
                    "geo_match_statement": {
                        "country_codes": [
                            "US",
                            "CA",
                        ],
                    },
                },
            },
        },
        visibility_config={
            "cloudwatch_metrics_enabled": True,
            "metric_name": "allow-only-us",
            "sampled_requests_enabled": True,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/wafv2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := wafv2.NewWebAclRule(ctx, "allow_only_us", &wafv2.WebAclRuleArgs{
    			Name:      pulumi.String("allow-only-us"),
    			Priority:  pulumi.Int(3),
    			WebAclArn: pulumi.Any(example.Arn),
    			Action: &wafv2.WebAclRuleActionArgs{
    				Block: &wafv2.WebAclRuleActionBlockArgs{},
    			},
    			Statement: &wafv2.WebAclRuleStatementArgs{
    				NotStatement: &wafv2.WebAclRuleStatementNotStatementArgs{
    					Statement: &wafv2.WebAclRuleStatementNotStatementStatementArgs{
    						GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs{
    							CountryCodes: pulumi.StringArray{
    								pulumi.String("US"),
    								pulumi.String("CA"),
    							},
    						},
    					},
    				},
    			},
    			VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    				CloudwatchMetricsEnabled: pulumi.Bool(true),
    				MetricName:               pulumi.String("allow-only-us"),
    				SampledRequestsEnabled:   pulumi.Bool(true),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var allowOnlyUs = new Aws.WafV2.WebAclRule("allow_only_us", new()
        {
            Name = "allow-only-us",
            Priority = 3,
            WebAclArn = example.Arn,
            Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
            {
                Block = null,
            },
            Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
            {
                NotStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementArgs
                {
                    Statement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementArgs
                    {
                        GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs
                        {
                            CountryCodes = new[]
                            {
                                "US",
                                "CA",
                            },
                        },
                    },
                },
            },
            VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
            {
                CloudwatchMetricsEnabled = true,
                MetricName = "allow-only-us",
                SampledRequestsEnabled = true,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.wafv2.WebAclRule;
    import com.pulumi.aws.wafv2.WebAclRuleArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementNotStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementNotStatementStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs;
    import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var allowOnlyUs = new WebAclRule("allowOnlyUs", WebAclRuleArgs.builder()
                .name("allow-only-us")
                .priority(3)
                .webAclArn(example.arn())
                .action(WebAclRuleActionArgs.builder()
                    .block(WebAclRuleActionBlockArgs.builder()
                        .build())
                    .build())
                .statement(WebAclRuleStatementArgs.builder()
                    .notStatement(Map.of("statement", WebAclRuleStatementNotStatementStatementArgs.builder()
                        .geoMatchStatement(WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs.builder()
                            .countryCodes(                        
                                "US",
                                "CA")
                            .build())
                        .build()))
                    .build())
                .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()
                    .cloudwatchMetricsEnabled(true)
                    .metricName("allow-only-us")
                    .sampledRequestsEnabled(true)
                    .build())
                .build());
    
        }
    }
    
    resources:
      allowOnlyUs:
        type: aws:wafv2:WebAclRule
        name: allow_only_us
        properties:
          name: allow-only-us
          priority: 3
          webAclArn: ${example.arn}
          action:
            block: {}
          statement:
            notStatement:
              statement:
                geoMatchStatement:
                  countryCodes:
                    - US
                    - CA
          visibilityConfig:
            cloudwatchMetricsEnabled: true
            metricName: allow-only-us
            sampledRequestsEnabled: true
    

    Create WebAclRule Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new WebAclRule(name: string, args: WebAclRuleArgs, opts?: CustomResourceOptions);
    @overload
    def WebAclRule(resource_name: str,
                   args: WebAclRuleInitArgs,
                   opts: Optional[ResourceOptions] = None)
    
    @overload
    def WebAclRule(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   priority: Optional[int] = None,
                   web_acl_arn: Optional[str] = None,
                   action: Optional[WebAclRuleActionArgs] = None,
                   captcha_config: Optional[WebAclRuleCaptchaConfigArgs] = None,
                   challenge_config: Optional[WebAclRuleChallengeConfigArgs] = None,
                   name: Optional[str] = None,
                   override_action: Optional[WebAclRuleOverrideActionArgs] = None,
                   region: Optional[str] = None,
                   rule_labels: Optional[Sequence[WebAclRuleRuleLabelArgs]] = None,
                   statement: Optional[WebAclRuleStatementArgs] = None,
                   timeouts: Optional[WebAclRuleTimeoutsArgs] = None,
                   visibility_config: Optional[WebAclRuleVisibilityConfigArgs] = None)
    func NewWebAclRule(ctx *Context, name string, args WebAclRuleArgs, opts ...ResourceOption) (*WebAclRule, error)
    public WebAclRule(string name, WebAclRuleArgs args, CustomResourceOptions? opts = null)
    public WebAclRule(String name, WebAclRuleArgs args)
    public WebAclRule(String name, WebAclRuleArgs args, CustomResourceOptions options)
    
    type: aws:wafv2:WebAclRule
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args WebAclRuleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args WebAclRuleInitArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args WebAclRuleArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args WebAclRuleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args WebAclRuleArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var webAclRuleResource = new Aws.WafV2.WebAclRule("webAclRuleResource", new()
    {
        Priority = 0,
        WebAclArn = "string",
        Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs
        {
            Allow = new Aws.WafV2.Inputs.WebAclRuleActionAllowArgs
            {
                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleActionAllowCustomRequestHandlingArgs
                {
                    InsertHeaders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs
                        {
                            Name = "string",
                            Value = "string",
                        },
                    },
                },
            },
            Block = new Aws.WafV2.Inputs.WebAclRuleActionBlockArgs
            {
                CustomResponse = new Aws.WafV2.Inputs.WebAclRuleActionBlockCustomResponseArgs
                {
                    ResponseCode = 0,
                    CustomResponseBodyKey = "string",
                    ResponseHeaders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleActionBlockCustomResponseResponseHeaderArgs
                        {
                            Name = "string",
                            Value = "string",
                        },
                    },
                },
            },
            Captcha = new Aws.WafV2.Inputs.WebAclRuleActionCaptchaArgs
            {
                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleActionCaptchaCustomRequestHandlingArgs
                {
                    InsertHeaders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs
                        {
                            Name = "string",
                            Value = "string",
                        },
                    },
                },
            },
            Challenge = new Aws.WafV2.Inputs.WebAclRuleActionChallengeArgs
            {
                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleActionChallengeCustomRequestHandlingArgs
                {
                    InsertHeaders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs
                        {
                            Name = "string",
                            Value = "string",
                        },
                    },
                },
            },
            Count = new Aws.WafV2.Inputs.WebAclRuleActionCountArgs
            {
                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleActionCountCustomRequestHandlingArgs
                {
                    InsertHeaders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs
                        {
                            Name = "string",
                            Value = "string",
                        },
                    },
                },
            },
        },
        CaptchaConfig = new Aws.WafV2.Inputs.WebAclRuleCaptchaConfigArgs
        {
            ImmunityTimeProperty = new Aws.WafV2.Inputs.WebAclRuleCaptchaConfigImmunityTimePropertyArgs
            {
                ImmunityTime = 0,
            },
        },
        ChallengeConfig = new Aws.WafV2.Inputs.WebAclRuleChallengeConfigArgs
        {
            ImmunityTimeProperty = new Aws.WafV2.Inputs.WebAclRuleChallengeConfigImmunityTimePropertyArgs
            {
                ImmunityTime = 0,
            },
        },
        Name = "string",
        OverrideAction = new Aws.WafV2.Inputs.WebAclRuleOverrideActionArgs
        {
            Count = null,
            None = null,
        },
        Region = "string",
        RuleLabels = new[]
        {
            new Aws.WafV2.Inputs.WebAclRuleRuleLabelArgs
            {
                Name = "string",
            },
        },
        Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs
        {
            AndStatement = new Aws.WafV2.Inputs.WebAclRuleStatementAndStatementArgs
            {
                Statements = new[]
                {
                    webAclRuleStatement,
                },
            },
            AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementAsnMatchStatementArgs
            {
                AsnLists = new[]
                {
                    0,
                },
                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementAsnMatchStatementForwardedIpConfigArgs
                {
                    FallbackBehavior = "string",
                    HeaderName = "string",
                },
            },
            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementArgs
            {
                PositionalConstraint = "string",
                SearchString = "string",
                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchArgs
                {
                    AllQueryArguments = null,
                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchBodyArgs
                    {
                        OversizeHandling = "string",
                    },
                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesArgs
                    {
                        MatchScope = "string",
                        OversizeHandling = "string",
                        MatchPatterns = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                            {
                                All = null,
                                ExcludedCookies = new[]
                                {
                                    "string",
                                },
                                IncludedCookies = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    HeaderOrders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                        {
                            OversizeHandling = "string",
                        },
                    },
                    Headers = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderArgs
                        {
                            MatchScope = "string",
                            OversizeHandling = "string",
                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                            {
                                All = null,
                                ExcludedHeaders = new[]
                                {
                                    "string",
                                },
                                IncludedHeaders = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs
                    {
                        MatchScope = "string",
                        InvalidFallbackBehavior = "string",
                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                        {
                            All = null,
                            IncludedPaths = new[]
                            {
                                "string",
                            },
                        },
                        OversizeHandling = "string",
                    },
                    Method = null,
                    QueryString = null,
                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                    {
                        Name = "string",
                    },
                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                    {
                        Name = "string",
                    },
                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementFieldToMatchUriFragmentArgs
                    {
                        FallbackBehavior = "string",
                    },
                    UriPath = null,
                },
                TextTransformations = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementByteMatchStatementTextTransformationArgs
                    {
                        Priority = 0,
                        Type = "string",
                    },
                },
            },
            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementArgs
            {
                CountryCodes = new[]
                {
                    "string",
                },
                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs
                {
                    FallbackBehavior = "string",
                    HeaderName = "string",
                },
            },
            IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementIpSetReferenceStatementArgs
            {
                Arn = "string",
                IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                {
                    FallbackBehavior = "string",
                    HeaderName = "string",
                    Position = "string",
                },
            },
            LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementLabelMatchStatementArgs
            {
                Key = "string",
                Scope = "string",
            },
            ManagedRuleGroupStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementArgs
            {
                Name = "string",
                VendorName = "string",
                ManagedRuleGroupConfigs = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs
                    {
                        AwsManagedRulesAcfpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs
                        {
                            CreationPath = "string",
                            RegistrationPagePath = "string",
                            EnableRegexInPath = false,
                            RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs
                            {
                                PayloadType = "string",
                                AddressFields = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs
                                {
                                    Identifiers = new[]
                                    {
                                        "string",
                                    },
                                },
                                EmailField = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs
                                {
                                    Identifier = "string",
                                },
                                PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs
                                {
                                    Identifier = "string",
                                },
                                PhoneNumberFields = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs
                                {
                                    Identifiers = new[]
                                    {
                                        "string",
                                    },
                                },
                                UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs
                                {
                                    Identifier = "string",
                                },
                            },
                            ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs
                            {
                                BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs
                                {
                                    FailureStrings = new[]
                                    {
                                        "string",
                                    },
                                    SuccessStrings = new[]
                                    {
                                        "string",
                                    },
                                },
                                Header = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs
                                {
                                    FailureValues = new[]
                                    {
                                        "string",
                                    },
                                    Name = "string",
                                    SuccessValues = new[]
                                    {
                                        "string",
                                    },
                                },
                                Json = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs
                                {
                                    FailureValues = new[]
                                    {
                                        "string",
                                    },
                                    Identifier = "string",
                                    SuccessValues = new[]
                                    {
                                        "string",
                                    },
                                },
                                StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs
                                {
                                    FailureCodes = new[]
                                    {
                                        0,
                                    },
                                    SuccessCodes = new[]
                                    {
                                        0,
                                    },
                                },
                            },
                        },
                        AwsManagedRulesAntiDdosRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs
                        {
                            ClientSideActionConfig = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs
                            {
                                Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs
                                {
                                    UsageOfAction = "string",
                                    ExemptUriRegularExpressions = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs
                                        {
                                            RegexString = "string",
                                        },
                                    },
                                    Sensitivity = "string",
                                },
                            },
                            SensitivityToBlock = "string",
                        },
                        AwsManagedRulesAtpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs
                        {
                            LoginPath = "string",
                            EnableRegexInPath = false,
                            RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs
                            {
                                PayloadType = "string",
                                PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs
                                {
                                    Identifier = "string",
                                },
                                UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs
                                {
                                    Identifier = "string",
                                },
                            },
                            ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs
                            {
                                BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs
                                {
                                    FailureStrings = new[]
                                    {
                                        "string",
                                    },
                                    SuccessStrings = new[]
                                    {
                                        "string",
                                    },
                                },
                                Header = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs
                                {
                                    FailureValues = new[]
                                    {
                                        "string",
                                    },
                                    Name = "string",
                                    SuccessValues = new[]
                                    {
                                        "string",
                                    },
                                },
                                Json = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs
                                {
                                    FailureValues = new[]
                                    {
                                        "string",
                                    },
                                    Identifier = "string",
                                    SuccessValues = new[]
                                    {
                                        "string",
                                    },
                                },
                                StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs
                                {
                                    FailureCodes = new[]
                                    {
                                        0,
                                    },
                                    SuccessCodes = new[]
                                    {
                                        0,
                                    },
                                },
                            },
                        },
                        AwsManagedRulesBotControlRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs
                        {
                            InspectionLevel = "string",
                            EnableMachineLearning = false,
                        },
                    },
                },
                RuleActionOverrides = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgs
                    {
                        Name = "string",
                        ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs
                        {
                            Allow = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Block = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs
                            {
                                CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                {
                                    ResponseCode = 0,
                                    CustomResponseBodyKey = "string",
                                    ResponseHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Count = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
                ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs
                {
                    AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs
                    {
                        AsnLists = new[]
                        {
                            0,
                        },
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                    },
                    ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs
                    {
                        PositionalConstraint = "string",
                        SearchString = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs
                    {
                        CountryCodes = new[]
                        {
                            "string",
                        },
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                    },
                    IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs
                    {
                        Arn = "string",
                        IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                            Position = "string",
                        },
                    },
                    LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs
                    {
                        Key = "string",
                        Scope = "string",
                    },
                    RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs
                    {
                        RegexString = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                    {
                        Arn = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs
                    {
                        ComparisonOperator = "string",
                        Size = 0,
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs
                    {
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        SensitivityLevel = "string",
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs
                    {
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                },
                Version = "string",
            },
            NotStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementArgs
            {
                Statement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementArgs
                {
                    AndStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementAndStatementArgs
                    {
                        Statements = new[]
                        {
                            webAclRuleStatement,
                        },
                    },
                    AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementAsnMatchStatementArgs
                    {
                        AsnLists = new[]
                        {
                            0,
                        },
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                    },
                    ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementArgs
                    {
                        PositionalConstraint = "string",
                        SearchString = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementByteMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs
                    {
                        CountryCodes = new[]
                        {
                            "string",
                        },
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                    },
                    IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementIpSetReferenceStatementArgs
                    {
                        Arn = "string",
                        IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                            Position = "string",
                        },
                    },
                    LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementLabelMatchStatementArgs
                    {
                        Key = "string",
                        Scope = "string",
                    },
                    ManagedRuleGroupStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementArgs
                    {
                        Name = "string",
                        VendorName = "string",
                        ManagedRuleGroupConfigs = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs
                            {
                                AwsManagedRulesAcfpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs
                                {
                                    CreationPath = "string",
                                    RegistrationPagePath = "string",
                                    EnableRegexInPath = false,
                                    RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs
                                    {
                                        PayloadType = "string",
                                        AddressFields = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs
                                        {
                                            Identifiers = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        EmailField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs
                                        {
                                            Identifier = "string",
                                        },
                                        PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs
                                        {
                                            Identifier = "string",
                                        },
                                        PhoneNumberFields = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs
                                        {
                                            Identifiers = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs
                                        {
                                            Identifier = "string",
                                        },
                                    },
                                    ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs
                                    {
                                        BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs
                                        {
                                            FailureStrings = new[]
                                            {
                                                "string",
                                            },
                                            SuccessStrings = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs
                                        {
                                            FailureValues = new[]
                                            {
                                                "string",
                                            },
                                            Name = "string",
                                            SuccessValues = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        Json = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs
                                        {
                                            FailureValues = new[]
                                            {
                                                "string",
                                            },
                                            Identifier = "string",
                                            SuccessValues = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs
                                        {
                                            FailureCodes = new[]
                                            {
                                                0,
                                            },
                                            SuccessCodes = new[]
                                            {
                                                0,
                                            },
                                        },
                                    },
                                },
                                AwsManagedRulesAntiDdosRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs
                                {
                                    ClientSideActionConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs
                                    {
                                        Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs
                                        {
                                            UsageOfAction = "string",
                                            ExemptUriRegularExpressions = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs
                                                {
                                                    RegexString = "string",
                                                },
                                            },
                                            Sensitivity = "string",
                                        },
                                    },
                                    SensitivityToBlock = "string",
                                },
                                AwsManagedRulesAtpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs
                                {
                                    LoginPath = "string",
                                    EnableRegexInPath = false,
                                    RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs
                                    {
                                        PayloadType = "string",
                                        PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs
                                        {
                                            Identifier = "string",
                                        },
                                        UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs
                                        {
                                            Identifier = "string",
                                        },
                                    },
                                    ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs
                                    {
                                        BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs
                                        {
                                            FailureStrings = new[]
                                            {
                                                "string",
                                            },
                                            SuccessStrings = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs
                                        {
                                            FailureValues = new[]
                                            {
                                                "string",
                                            },
                                            Name = "string",
                                            SuccessValues = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        Json = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs
                                        {
                                            FailureValues = new[]
                                            {
                                                "string",
                                            },
                                            Identifier = "string",
                                            SuccessValues = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs
                                        {
                                            FailureCodes = new[]
                                            {
                                                0,
                                            },
                                            SuccessCodes = new[]
                                            {
                                                0,
                                            },
                                        },
                                    },
                                },
                                AwsManagedRulesBotControlRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs
                                {
                                    InspectionLevel = "string",
                                    EnableMachineLearning = false,
                                },
                            },
                        },
                        RuleActionOverrides = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs
                            {
                                Name = "string",
                                ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs
                                {
                                    Allow = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Block = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs
                                    {
                                        CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                        {
                                            ResponseCode = 0,
                                            CustomResponseBodyKey = "string",
                                            ResponseHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Count = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                },
                            },
                        },
                        ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs
                        {
                            AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs
                            {
                                AsnLists = new[]
                                {
                                    0,
                                },
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                            },
                            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs
                            {
                                PositionalConstraint = "string",
                                SearchString = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs
                            {
                                CountryCodes = new[]
                                {
                                    "string",
                                },
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                            },
                            IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs
                            {
                                Arn = "string",
                                IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                    Position = "string",
                                },
                            },
                            LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs
                            {
                                Key = "string",
                                Scope = "string",
                            },
                            RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs
                            {
                                RegexString = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                            {
                                Arn = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs
                            {
                                ComparisonOperator = "string",
                                Size = 0,
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs
                            {
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                SensitivityLevel = "string",
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs
                            {
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                        },
                        Version = "string",
                    },
                    NotStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementArgs
                    {
                        Statement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementArgs
                        {
                            AndStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementAndStatementArgs
                            {
                                Statements = new[]
                                {
                                    webAclRuleStatement,
                                },
                            },
                            AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementAsnMatchStatementArgs
                            {
                                AsnLists = new[]
                                {
                                    0,
                                },
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                            },
                            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementArgs
                            {
                                PositionalConstraint = "string",
                                SearchString = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementGeoMatchStatementArgs
                            {
                                CountryCodes = new[]
                                {
                                    "string",
                                },
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                            },
                            IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementArgs
                            {
                                Arn = "string",
                                IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                    Position = "string",
                                },
                            },
                            LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementLabelMatchStatementArgs
                            {
                                Key = "string",
                                Scope = "string",
                            },
                            ManagedRuleGroupStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementArgs
                            {
                                Name = "string",
                                VendorName = "string",
                                ManagedRuleGroupConfigs = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs
                                    {
                                        AwsManagedRulesAcfpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs
                                        {
                                            CreationPath = "string",
                                            RegistrationPagePath = "string",
                                            EnableRegexInPath = false,
                                            RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs
                                            {
                                                PayloadType = "string",
                                                AddressFields = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs
                                                {
                                                    Identifiers = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                EmailField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs
                                                {
                                                    Identifier = "string",
                                                },
                                                PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs
                                                {
                                                    Identifier = "string",
                                                },
                                                PhoneNumberFields = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs
                                                {
                                                    Identifiers = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs
                                                {
                                                    Identifier = "string",
                                                },
                                            },
                                            ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs
                                            {
                                                BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs
                                                {
                                                    FailureStrings = new[]
                                                    {
                                                        "string",
                                                    },
                                                    SuccessStrings = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs
                                                {
                                                    FailureValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                    Name = "string",
                                                    SuccessValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                Json = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs
                                                {
                                                    FailureValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                    Identifier = "string",
                                                    SuccessValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs
                                                {
                                                    FailureCodes = new[]
                                                    {
                                                        0,
                                                    },
                                                    SuccessCodes = new[]
                                                    {
                                                        0,
                                                    },
                                                },
                                            },
                                        },
                                        AwsManagedRulesAntiDdosRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs
                                        {
                                            ClientSideActionConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs
                                            {
                                                Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs
                                                {
                                                    UsageOfAction = "string",
                                                    ExemptUriRegularExpressions = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs
                                                        {
                                                            RegexString = "string",
                                                        },
                                                    },
                                                    Sensitivity = "string",
                                                },
                                            },
                                            SensitivityToBlock = "string",
                                        },
                                        AwsManagedRulesAtpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs
                                        {
                                            LoginPath = "string",
                                            EnableRegexInPath = false,
                                            RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs
                                            {
                                                PayloadType = "string",
                                                PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs
                                                {
                                                    Identifier = "string",
                                                },
                                                UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs
                                                {
                                                    Identifier = "string",
                                                },
                                            },
                                            ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs
                                            {
                                                BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs
                                                {
                                                    FailureStrings = new[]
                                                    {
                                                        "string",
                                                    },
                                                    SuccessStrings = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs
                                                {
                                                    FailureValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                    Name = "string",
                                                    SuccessValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                Json = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs
                                                {
                                                    FailureValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                    Identifier = "string",
                                                    SuccessValues = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs
                                                {
                                                    FailureCodes = new[]
                                                    {
                                                        0,
                                                    },
                                                    SuccessCodes = new[]
                                                    {
                                                        0,
                                                    },
                                                },
                                            },
                                        },
                                        AwsManagedRulesBotControlRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs
                                        {
                                            InspectionLevel = "string",
                                            EnableMachineLearning = false,
                                        },
                                    },
                                },
                                RuleActionOverrides = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs
                                    {
                                        Name = "string",
                                        ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs
                                        {
                                            Allow = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Block = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs
                                            {
                                                CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                                {
                                                    ResponseCode = 0,
                                                    CustomResponseBodyKey = "string",
                                                    ResponseHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Count = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                        },
                                    },
                                },
                                ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs
                                {
                                    AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs
                                    {
                                        AsnLists = new[]
                                        {
                                            0,
                                        },
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                    },
                                    ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs
                                    {
                                        PositionalConstraint = "string",
                                        SearchString = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs
                                    {
                                        CountryCodes = new[]
                                        {
                                            "string",
                                        },
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                    },
                                    IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                            Position = "string",
                                        },
                                    },
                                    LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs
                                    {
                                        Key = "string",
                                        Scope = "string",
                                    },
                                    RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs
                                    {
                                        RegexString = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs
                                    {
                                        ComparisonOperator = "string",
                                        Size = 0,
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs
                                    {
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        SensitivityLevel = "string",
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs
                                    {
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                },
                                Version = "string",
                            },
                            NotStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementArgs
                            {
                                Statement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementArgs
                                {
                                    AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementAsnMatchStatementArgs
                                    {
                                        AsnLists = new[]
                                        {
                                            0,
                                        },
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                    },
                                    ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementArgs
                                    {
                                        PositionalConstraint = "string",
                                        SearchString = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementGeoMatchStatementArgs
                                    {
                                        CountryCodes = new[]
                                        {
                                            "string",
                                        },
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                    },
                                    IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                            Position = "string",
                                        },
                                    },
                                    LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementLabelMatchStatementArgs
                                    {
                                        Key = "string",
                                        Scope = "string",
                                    },
                                    ManagedRuleGroupStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementArgs
                                    {
                                        Name = "string",
                                        VendorName = "string",
                                        ManagedRuleGroupConfigs = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs
                                            {
                                                AwsManagedRulesAcfpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs
                                                {
                                                    CreationPath = "string",
                                                    RegistrationPagePath = "string",
                                                    EnableRegexInPath = false,
                                                    RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs
                                                    {
                                                        PayloadType = "string",
                                                        AddressFields = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs
                                                        {
                                                            Identifiers = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        EmailField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs
                                                        {
                                                            Identifier = "string",
                                                        },
                                                        PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs
                                                        {
                                                            Identifier = "string",
                                                        },
                                                        PhoneNumberFields = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs
                                                        {
                                                            Identifiers = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs
                                                        {
                                                            Identifier = "string",
                                                        },
                                                    },
                                                    ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs
                                                    {
                                                        BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs
                                                        {
                                                            FailureStrings = new[]
                                                            {
                                                                "string",
                                                            },
                                                            SuccessStrings = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs
                                                        {
                                                            FailureValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                            Name = "string",
                                                            SuccessValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        Json = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs
                                                        {
                                                            FailureValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                            Identifier = "string",
                                                            SuccessValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs
                                                        {
                                                            FailureCodes = new[]
                                                            {
                                                                0,
                                                            },
                                                            SuccessCodes = new[]
                                                            {
                                                                0,
                                                            },
                                                        },
                                                    },
                                                },
                                                AwsManagedRulesAntiDdosRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs
                                                {
                                                    ClientSideActionConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs
                                                    {
                                                        Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs
                                                        {
                                                            UsageOfAction = "string",
                                                            ExemptUriRegularExpressions = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs
                                                                {
                                                                    RegexString = "string",
                                                                },
                                                            },
                                                            Sensitivity = "string",
                                                        },
                                                    },
                                                    SensitivityToBlock = "string",
                                                },
                                                AwsManagedRulesAtpRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs
                                                {
                                                    LoginPath = "string",
                                                    EnableRegexInPath = false,
                                                    RequestInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs
                                                    {
                                                        PayloadType = "string",
                                                        PasswordField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs
                                                        {
                                                            Identifier = "string",
                                                        },
                                                        UsernameField = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs
                                                        {
                                                            Identifier = "string",
                                                        },
                                                    },
                                                    ResponseInspection = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs
                                                    {
                                                        BodyContains = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs
                                                        {
                                                            FailureStrings = new[]
                                                            {
                                                                "string",
                                                            },
                                                            SuccessStrings = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs
                                                        {
                                                            FailureValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                            Name = "string",
                                                            SuccessValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        Json = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs
                                                        {
                                                            FailureValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                            Identifier = "string",
                                                            SuccessValues = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        StatusCode = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs
                                                        {
                                                            FailureCodes = new[]
                                                            {
                                                                0,
                                                            },
                                                            SuccessCodes = new[]
                                                            {
                                                                0,
                                                            },
                                                        },
                                                    },
                                                },
                                                AwsManagedRulesBotControlRuleSet = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs
                                                {
                                                    InspectionLevel = "string",
                                                    EnableMachineLearning = false,
                                                },
                                            },
                                        },
                                        RuleActionOverrides = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs
                                            {
                                                Name = "string",
                                                ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs
                                                {
                                                    Allow = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Block = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs
                                                    {
                                                        CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                                        {
                                                            ResponseCode = 0,
                                                            CustomResponseBodyKey = "string",
                                                            ResponseHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Count = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                },
                                            },
                                        },
                                        ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs
                                        {
                                            AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs
                                            {
                                                AsnLists = new[]
                                                {
                                                    0,
                                                },
                                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                                                {
                                                    FallbackBehavior = "string",
                                                    HeaderName = "string",
                                                },
                                            },
                                            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs
                                            {
                                                PositionalConstraint = "string",
                                                SearchString = "string",
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs
                                            {
                                                CountryCodes = new[]
                                                {
                                                    "string",
                                                },
                                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                                                {
                                                    FallbackBehavior = "string",
                                                    HeaderName = "string",
                                                },
                                            },
                                            IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs
                                            {
                                                Arn = "string",
                                                IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                                {
                                                    FallbackBehavior = "string",
                                                    HeaderName = "string",
                                                    Position = "string",
                                                },
                                            },
                                            LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs
                                            {
                                                Key = "string",
                                                Scope = "string",
                                            },
                                            RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs
                                            {
                                                RegexString = "string",
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                                            {
                                                Arn = "string",
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs
                                            {
                                                ComparisonOperator = "string",
                                                Size = 0,
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs
                                            {
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                SensitivityLevel = "string",
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs
                                            {
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                        },
                                        Version = "string",
                                    },
                                    RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementArgs
                                    {
                                        AggregateKeyType = "string",
                                        Limit = 0,
                                        CustomKeys = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyArgs
                                            {
                                                Asn = null,
                                                Cookie = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieArgs
                                                {
                                                    Name = "string",
                                                    TextTransformations = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArgs
                                                        {
                                                            Priority = 0,
                                                            Type = "string",
                                                        },
                                                    },
                                                },
                                                ForwardedIp = null,
                                                Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderArgs
                                                {
                                                    Name = "string",
                                                    TextTransformations = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs
                                                        {
                                                            Priority = 0,
                                                            Type = "string",
                                                        },
                                                    },
                                                },
                                                HttpMethod = null,
                                                Ip = null,
                                                Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa3FingerprintArgs
                                                {
                                                    FallbackBehavior = "string",
                                                },
                                                Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa4FingerprintArgs
                                                {
                                                    FallbackBehavior = "string",
                                                },
                                                LabelNamespace = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyLabelNamespaceArgs
                                                {
                                                    Namespace = "string",
                                                },
                                                QueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentArgs
                                                {
                                                    Name = "string",
                                                    TextTransformations = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs
                                                        {
                                                            Priority = 0,
                                                            Type = "string",
                                                        },
                                                    },
                                                },
                                                QueryString = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringArgs
                                                {
                                                    TextTransformations = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs
                                                        {
                                                            Priority = 0,
                                                            Type = "string",
                                                        },
                                                    },
                                                },
                                                UriPath = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathArgs
                                                {
                                                    TextTransformations = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs
                                                        {
                                                            Priority = 0,
                                                            Type = "string",
                                                        },
                                                    },
                                                },
                                            },
                                        },
                                        EvaluationWindowSec = 0,
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                        ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementArgs
                                        {
                                            AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs
                                            {
                                                AsnLists = new[]
                                                {
                                                    0,
                                                },
                                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                                                {
                                                    FallbackBehavior = "string",
                                                    HeaderName = "string",
                                                },
                                            },
                                            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs
                                            {
                                                PositionalConstraint = "string",
                                                SearchString = "string",
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs
                                            {
                                                CountryCodes = new[]
                                                {
                                                    "string",
                                                },
                                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                                                {
                                                    FallbackBehavior = "string",
                                                    HeaderName = "string",
                                                },
                                            },
                                            IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs
                                            {
                                                Arn = "string",
                                                IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                                {
                                                    FallbackBehavior = "string",
                                                    HeaderName = "string",
                                                    Position = "string",
                                                },
                                            },
                                            LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs
                                            {
                                                Key = "string",
                                                Scope = "string",
                                            },
                                            RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs
                                            {
                                                RegexString = "string",
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                                            {
                                                Arn = "string",
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs
                                            {
                                                ComparisonOperator = "string",
                                                Size = 0,
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs
                                            {
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                SensitivityLevel = "string",
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                            XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs
                                            {
                                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                                                {
                                                    AllQueryArguments = null,
                                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                                                    {
                                                        OversizeHandling = "string",
                                                    },
                                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                                                    {
                                                        MatchScope = "string",
                                                        OversizeHandling = "string",
                                                        MatchPatterns = new[]
                                                        {
                                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedCookies = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    HeaderOrders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                                        {
                                                            OversizeHandling = "string",
                                                        },
                                                    },
                                                    Headers = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                                        {
                                                            MatchScope = "string",
                                                            OversizeHandling = "string",
                                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                            {
                                                                All = null,
                                                                ExcludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                                IncludedHeaders = new[]
                                                                {
                                                                    "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                                    {
                                                        MatchScope = "string",
                                                        InvalidFallbackBehavior = "string",
                                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                        {
                                                            All = null,
                                                            IncludedPaths = new[]
                                                            {
                                                                "string",
                                                            },
                                                        },
                                                        OversizeHandling = "string",
                                                    },
                                                    Method = null,
                                                    QueryString = null,
                                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                                    {
                                                        Name = "string",
                                                    },
                                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                                    {
                                                        FallbackBehavior = "string",
                                                    },
                                                    UriPath = null,
                                                },
                                                TextTransformations = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                                                    {
                                                        Priority = 0,
                                                        Type = "string",
                                                    },
                                                },
                                            },
                                        },
                                    },
                                    RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementArgs
                                    {
                                        RegexString = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    RuleGroupReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        ExcludedRules = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArgs
                                            {
                                                Name = "string",
                                            },
                                        },
                                        RuleActionOverrides = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArgs
                                            {
                                                Name = "string",
                                                ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs
                                                {
                                                    Allow = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Block = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs
                                                    {
                                                        CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                                        {
                                                            ResponseCode = 0,
                                                            CustomResponseBodyKey = "string",
                                                            ResponseHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                    Count = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs
                                                    {
                                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                                        {
                                                            InsertHeaders = new[]
                                                            {
                                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                                                {
                                                                    Name = "string",
                                                                    Value = "string",
                                                                },
                                                            },
                                                        },
                                                    },
                                                },
                                            },
                                        },
                                    },
                                    SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementArgs
                                    {
                                        ComparisonOperator = "string",
                                        Size = 0,
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementArgs
                                    {
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        SensitivityLevel = "string",
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementArgs
                                    {
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                },
                            },
                            OrStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementOrStatementArgs
                            {
                                Statements = new[]
                                {
                                    webAclRuleStatement,
                                },
                            },
                            RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementArgs
                            {
                                AggregateKeyType = "string",
                                Limit = 0,
                                CustomKeys = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyArgs
                                    {
                                        Asn = null,
                                        Cookie = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieArgs
                                        {
                                            Name = "string",
                                            TextTransformations = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArgs
                                                {
                                                    Priority = 0,
                                                    Type = "string",
                                                },
                                            },
                                        },
                                        ForwardedIp = null,
                                        Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderArgs
                                        {
                                            Name = "string",
                                            TextTransformations = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs
                                                {
                                                    Priority = 0,
                                                    Type = "string",
                                                },
                                            },
                                        },
                                        HttpMethod = null,
                                        Ip = null,
                                        Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa3FingerprintArgs
                                        {
                                            FallbackBehavior = "string",
                                        },
                                        Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa4FingerprintArgs
                                        {
                                            FallbackBehavior = "string",
                                        },
                                        LabelNamespace = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyLabelNamespaceArgs
                                        {
                                            Namespace = "string",
                                        },
                                        QueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentArgs
                                        {
                                            Name = "string",
                                            TextTransformations = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs
                                                {
                                                    Priority = 0,
                                                    Type = "string",
                                                },
                                            },
                                        },
                                        QueryString = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringArgs
                                        {
                                            TextTransformations = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs
                                                {
                                                    Priority = 0,
                                                    Type = "string",
                                                },
                                            },
                                        },
                                        UriPath = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathArgs
                                        {
                                            TextTransformations = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs
                                                {
                                                    Priority = 0,
                                                    Type = "string",
                                                },
                                            },
                                        },
                                    },
                                },
                                EvaluationWindowSec = 0,
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                                ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementArgs
                                {
                                    AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs
                                    {
                                        AsnLists = new[]
                                        {
                                            0,
                                        },
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                    },
                                    ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs
                                    {
                                        PositionalConstraint = "string",
                                        SearchString = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs
                                    {
                                        CountryCodes = new[]
                                        {
                                            "string",
                                        },
                                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                        },
                                    },
                                    IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                        {
                                            FallbackBehavior = "string",
                                            HeaderName = "string",
                                            Position = "string",
                                        },
                                    },
                                    LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs
                                    {
                                        Key = "string",
                                        Scope = "string",
                                    },
                                    RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs
                                    {
                                        RegexString = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                                    {
                                        Arn = "string",
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs
                                    {
                                        ComparisonOperator = "string",
                                        Size = 0,
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs
                                    {
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        SensitivityLevel = "string",
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                    XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs
                                    {
                                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                                        {
                                            AllQueryArguments = null,
                                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                                            {
                                                OversizeHandling = "string",
                                            },
                                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                                            {
                                                MatchScope = "string",
                                                OversizeHandling = "string",
                                                MatchPatterns = new[]
                                                {
                                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedCookies = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            HeaderOrders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                                {
                                                    OversizeHandling = "string",
                                                },
                                            },
                                            Headers = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                                {
                                                    MatchScope = "string",
                                                    OversizeHandling = "string",
                                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                                    {
                                                        All = null,
                                                        ExcludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                        IncludedHeaders = new[]
                                                        {
                                                            "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                            {
                                                MatchScope = "string",
                                                InvalidFallbackBehavior = "string",
                                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                                {
                                                    All = null,
                                                    IncludedPaths = new[]
                                                    {
                                                        "string",
                                                    },
                                                },
                                                OversizeHandling = "string",
                                            },
                                            Method = null,
                                            QueryString = null,
                                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                            {
                                                Name = "string",
                                            },
                                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                            {
                                                Name = "string",
                                            },
                                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                            {
                                                FallbackBehavior = "string",
                                            },
                                            UriPath = null,
                                        },
                                        TextTransformations = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                                            {
                                                Priority = 0,
                                                Type = "string",
                                            },
                                        },
                                    },
                                },
                            },
                            RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementArgs
                            {
                                RegexString = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementArgs
                            {
                                Arn = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            RuleGroupReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementArgs
                            {
                                Arn = "string",
                                ExcludedRules = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArgs
                                    {
                                        Name = "string",
                                    },
                                },
                                RuleActionOverrides = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArgs
                                    {
                                        Name = "string",
                                        ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs
                                        {
                                            Allow = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Block = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs
                                            {
                                                CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                                {
                                                    ResponseCode = 0,
                                                    CustomResponseBodyKey = "string",
                                                    ResponseHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                            Count = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs
                                            {
                                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                                {
                                                    InsertHeaders = new[]
                                                    {
                                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                                        {
                                                            Name = "string",
                                                            Value = "string",
                                                        },
                                                    },
                                                },
                                            },
                                        },
                                    },
                                },
                            },
                            SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementArgs
                            {
                                ComparisonOperator = "string",
                                Size = 0,
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementArgs
                            {
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                SensitivityLevel = "string",
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementArgs
                            {
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                        },
                    },
                    OrStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementOrStatementArgs
                    {
                        Statements = new[]
                        {
                            webAclRuleStatement,
                        },
                    },
                    RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementArgs
                    {
                        AggregateKeyType = "string",
                        Limit = 0,
                        CustomKeys = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyArgs
                            {
                                Asn = null,
                                Cookie = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyCookieArgs
                                {
                                    Name = "string",
                                    TextTransformations = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArgs
                                        {
                                            Priority = 0,
                                            Type = "string",
                                        },
                                    },
                                },
                                ForwardedIp = null,
                                Header = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyHeaderArgs
                                {
                                    Name = "string",
                                    TextTransformations = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs
                                        {
                                            Priority = 0,
                                            Type = "string",
                                        },
                                    },
                                },
                                HttpMethod = null,
                                Ip = null,
                                Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyJa3FingerprintArgs
                                {
                                    FallbackBehavior = "string",
                                },
                                Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyJa4FingerprintArgs
                                {
                                    FallbackBehavior = "string",
                                },
                                LabelNamespace = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyLabelNamespaceArgs
                                {
                                    Namespace = "string",
                                },
                                QueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentArgs
                                {
                                    Name = "string",
                                    TextTransformations = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs
                                        {
                                            Priority = 0,
                                            Type = "string",
                                        },
                                    },
                                },
                                QueryString = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringArgs
                                {
                                    TextTransformations = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs
                                        {
                                            Priority = 0,
                                            Type = "string",
                                        },
                                    },
                                },
                                UriPath = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyUriPathArgs
                                {
                                    TextTransformations = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs
                                        {
                                            Priority = 0,
                                            Type = "string",
                                        },
                                    },
                                },
                            },
                        },
                        EvaluationWindowSec = 0,
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                        ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementArgs
                        {
                            AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs
                            {
                                AsnLists = new[]
                                {
                                    0,
                                },
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                            },
                            ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs
                            {
                                PositionalConstraint = "string",
                                SearchString = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs
                            {
                                CountryCodes = new[]
                                {
                                    "string",
                                },
                                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                },
                            },
                            IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs
                            {
                                Arn = "string",
                                IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                                {
                                    FallbackBehavior = "string",
                                    HeaderName = "string",
                                    Position = "string",
                                },
                            },
                            LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs
                            {
                                Key = "string",
                                Scope = "string",
                            },
                            RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs
                            {
                                RegexString = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                            {
                                Arn = "string",
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs
                            {
                                ComparisonOperator = "string",
                                Size = 0,
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs
                            {
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                SensitivityLevel = "string",
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                            XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs
                            {
                                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                                {
                                    AllQueryArguments = null,
                                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                                    {
                                        OversizeHandling = "string",
                                    },
                                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                                    {
                                        MatchScope = "string",
                                        OversizeHandling = "string",
                                        MatchPatterns = new[]
                                        {
                                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedCookies = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    HeaderOrders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                        {
                                            OversizeHandling = "string",
                                        },
                                    },
                                    Headers = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                        {
                                            MatchScope = "string",
                                            OversizeHandling = "string",
                                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                            {
                                                All = null,
                                                ExcludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                                IncludedHeaders = new[]
                                                {
                                                    "string",
                                                },
                                            },
                                        },
                                    },
                                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                                    {
                                        MatchScope = "string",
                                        InvalidFallbackBehavior = "string",
                                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                        {
                                            All = null,
                                            IncludedPaths = new[]
                                            {
                                                "string",
                                            },
                                        },
                                        OversizeHandling = "string",
                                    },
                                    Method = null,
                                    QueryString = null,
                                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                                    {
                                        Name = "string",
                                    },
                                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                                    {
                                        Name = "string",
                                    },
                                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                                    {
                                        FallbackBehavior = "string",
                                    },
                                    UriPath = null,
                                },
                                TextTransformations = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                                    {
                                        Priority = 0,
                                        Type = "string",
                                    },
                                },
                            },
                        },
                    },
                    RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementArgs
                    {
                        RegexString = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementArgs
                    {
                        Arn = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    RuleGroupReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementArgs
                    {
                        Arn = "string",
                        ExcludedRules = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArgs
                            {
                                Name = "string",
                            },
                        },
                        RuleActionOverrides = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArgs
                            {
                                Name = "string",
                                ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs
                                {
                                    Allow = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Block = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs
                                    {
                                        CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                        {
                                            ResponseCode = 0,
                                            CustomResponseBodyKey = "string",
                                            ResponseHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                    Count = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs
                                    {
                                        CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                        {
                                            InsertHeaders = new[]
                                            {
                                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                                {
                                                    Name = "string",
                                                    Value = "string",
                                                },
                                            },
                                        },
                                    },
                                },
                            },
                        },
                    },
                    SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementArgs
                    {
                        ComparisonOperator = "string",
                        Size = 0,
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSizeConstraintStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementArgs
                    {
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        SensitivityLevel = "string",
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementSqliMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementArgs
                    {
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementNotStatementStatementXssMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                },
            },
            OrStatement = new Aws.WafV2.Inputs.WebAclRuleStatementOrStatementArgs
            {
                Statements = new[]
                {
                    webAclRuleStatement,
                },
            },
            RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementArgs
            {
                AggregateKeyType = "string",
                Limit = 0,
                CustomKeys = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyArgs
                    {
                        Asn = null,
                        Cookie = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs
                        {
                            Name = "string",
                            TextTransformations = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs
                                {
                                    Priority = 0,
                                    Type = "string",
                                },
                            },
                        },
                        ForwardedIp = null,
                        Header = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs
                        {
                            Name = "string",
                            TextTransformations = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs
                                {
                                    Priority = 0,
                                    Type = "string",
                                },
                            },
                        },
                        HttpMethod = null,
                        Ip = null,
                        Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyJa3FingerprintArgs
                        {
                            FallbackBehavior = "string",
                        },
                        Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyJa4FingerprintArgs
                        {
                            FallbackBehavior = "string",
                        },
                        LabelNamespace = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs
                        {
                            Namespace = "string",
                        },
                        QueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs
                        {
                            Name = "string",
                            TextTransformations = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs
                                {
                                    Priority = 0,
                                    Type = "string",
                                },
                            },
                        },
                        QueryString = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs
                        {
                            TextTransformations = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs
                                {
                                    Priority = 0,
                                    Type = "string",
                                },
                            },
                        },
                        UriPath = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs
                        {
                            TextTransformations = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs
                                {
                                    Priority = 0,
                                    Type = "string",
                                },
                            },
                        },
                    },
                },
                EvaluationWindowSec = 0,
                ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementForwardedIpConfigArgs
                {
                    FallbackBehavior = "string",
                    HeaderName = "string",
                },
                ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs
                {
                    AsnMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs
                    {
                        AsnLists = new[]
                        {
                            0,
                        },
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                    },
                    ByteMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs
                    {
                        PositionalConstraint = "string",
                        SearchString = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs
                    {
                        CountryCodes = new[]
                        {
                            "string",
                        },
                        ForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                        },
                    },
                    IpSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs
                    {
                        Arn = "string",
                        IpSetForwardedIpConfig = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs
                        {
                            FallbackBehavior = "string",
                            HeaderName = "string",
                            Position = "string",
                        },
                    },
                    LabelMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs
                    {
                        Key = "string",
                        Scope = "string",
                    },
                    RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs
                    {
                        RegexString = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs
                    {
                        Arn = "string",
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs
                    {
                        ComparisonOperator = "string",
                        Size = 0,
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs
                    {
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        SensitivityLevel = "string",
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                    XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs
                    {
                        FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs
                        {
                            AllQueryArguments = null,
                            Body = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs
                            {
                                OversizeHandling = "string",
                            },
                            Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs
                            {
                                MatchScope = "string",
                                OversizeHandling = "string",
                                MatchPatterns = new[]
                                {
                                    new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedCookies = new[]
                                        {
                                            "string",
                                        },
                                        IncludedCookies = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            HeaderOrders = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                                {
                                    OversizeHandling = "string",
                                },
                            },
                            Headers = new[]
                            {
                                new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs
                                {
                                    MatchScope = "string",
                                    OversizeHandling = "string",
                                    MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                                    {
                                        All = null,
                                        ExcludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                        IncludedHeaders = new[]
                                        {
                                            "string",
                                        },
                                    },
                                },
                            },
                            Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                            {
                                FallbackBehavior = "string",
                            },
                            JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs
                            {
                                MatchScope = "string",
                                InvalidFallbackBehavior = "string",
                                MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                                {
                                    All = null,
                                    IncludedPaths = new[]
                                    {
                                        "string",
                                    },
                                },
                                OversizeHandling = "string",
                            },
                            Method = null,
                            QueryString = null,
                            SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                            {
                                Name = "string",
                            },
                            SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                            {
                                Name = "string",
                            },
                            UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs
                            {
                                FallbackBehavior = "string",
                            },
                            UriPath = null,
                        },
                        TextTransformations = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs
                            {
                                Priority = 0,
                                Type = "string",
                            },
                        },
                    },
                },
            },
            RegexMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementArgs
            {
                RegexString = "string",
                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchArgs
                {
                    AllQueryArguments = null,
                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchBodyArgs
                    {
                        OversizeHandling = "string",
                    },
                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesArgs
                    {
                        MatchScope = "string",
                        OversizeHandling = "string",
                        MatchPatterns = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs
                            {
                                All = null,
                                ExcludedCookies = new[]
                                {
                                    "string",
                                },
                                IncludedCookies = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    HeaderOrders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderOrderArgs
                        {
                            OversizeHandling = "string",
                        },
                    },
                    Headers = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderArgs
                        {
                            MatchScope = "string",
                            OversizeHandling = "string",
                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs
                            {
                                All = null,
                                ExcludedHeaders = new[]
                                {
                                    "string",
                                },
                                IncludedHeaders = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyArgs
                    {
                        MatchScope = "string",
                        InvalidFallbackBehavior = "string",
                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                        {
                            All = null,
                            IncludedPaths = new[]
                            {
                                "string",
                            },
                        },
                        OversizeHandling = "string",
                    },
                    Method = null,
                    QueryString = null,
                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchSingleHeaderArgs
                    {
                        Name = "string",
                    },
                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs
                    {
                        Name = "string",
                    },
                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementFieldToMatchUriFragmentArgs
                    {
                        FallbackBehavior = "string",
                    },
                    UriPath = null,
                },
                TextTransformations = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementRegexMatchStatementTextTransformationArgs
                    {
                        Priority = 0,
                        Type = "string",
                    },
                },
            },
            RegexPatternSetReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementArgs
            {
                Arn = "string",
                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs
                {
                    AllQueryArguments = null,
                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs
                    {
                        OversizeHandling = "string",
                    },
                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs
                    {
                        MatchScope = "string",
                        OversizeHandling = "string",
                        MatchPatterns = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs
                            {
                                All = null,
                                ExcludedCookies = new[]
                                {
                                    "string",
                                },
                                IncludedCookies = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    HeaderOrders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs
                        {
                            OversizeHandling = "string",
                        },
                    },
                    Headers = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs
                        {
                            MatchScope = "string",
                            OversizeHandling = "string",
                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs
                            {
                                All = null,
                                ExcludedHeaders = new[]
                                {
                                    "string",
                                },
                                IncludedHeaders = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs
                    {
                        MatchScope = "string",
                        InvalidFallbackBehavior = "string",
                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs
                        {
                            All = null,
                            IncludedPaths = new[]
                            {
                                "string",
                            },
                        },
                        OversizeHandling = "string",
                    },
                    Method = null,
                    QueryString = null,
                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs
                    {
                        Name = "string",
                    },
                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs
                    {
                        Name = "string",
                    },
                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs
                    {
                        FallbackBehavior = "string",
                    },
                    UriPath = null,
                },
                TextTransformations = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs
                    {
                        Priority = 0,
                        Type = "string",
                    },
                },
            },
            RuleGroupReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementArgs
            {
                Arn = "string",
                ExcludedRules = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs
                    {
                        Name = "string",
                    },
                },
                RuleActionOverrides = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArgs
                    {
                        Name = "string",
                        ActionToUse = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs
                        {
                            Allow = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Block = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs
                            {
                                CustomResponse = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs
                                {
                                    ResponseCode = 0,
                                    CustomResponseBodyKey = "string",
                                    ResponseHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Captcha = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Challenge = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                            Count = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs
                            {
                                CustomRequestHandling = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs
                                {
                                    InsertHeaders = new[]
                                    {
                                        new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs
                                        {
                                            Name = "string",
                                            Value = "string",
                                        },
                                    },
                                },
                            },
                        },
                    },
                },
            },
            SizeConstraintStatement = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementArgs
            {
                ComparisonOperator = "string",
                Size = 0,
                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchArgs
                {
                    AllQueryArguments = null,
                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchBodyArgs
                    {
                        OversizeHandling = "string",
                    },
                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesArgs
                    {
                        MatchScope = "string",
                        OversizeHandling = "string",
                        MatchPatterns = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs
                            {
                                All = null,
                                ExcludedCookies = new[]
                                {
                                    "string",
                                },
                                IncludedCookies = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    HeaderOrders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs
                        {
                            OversizeHandling = "string",
                        },
                    },
                    Headers = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderArgs
                        {
                            MatchScope = "string",
                            OversizeHandling = "string",
                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs
                            {
                                All = null,
                                ExcludedHeaders = new[]
                                {
                                    "string",
                                },
                                IncludedHeaders = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyArgs
                    {
                        MatchScope = "string",
                        InvalidFallbackBehavior = "string",
                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs
                        {
                            All = null,
                            IncludedPaths = new[]
                            {
                                "string",
                            },
                        },
                        OversizeHandling = "string",
                    },
                    Method = null,
                    QueryString = null,
                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs
                    {
                        Name = "string",
                    },
                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs
                    {
                        Name = "string",
                    },
                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementFieldToMatchUriFragmentArgs
                    {
                        FallbackBehavior = "string",
                    },
                    UriPath = null,
                },
                TextTransformations = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementSizeConstraintStatementTextTransformationArgs
                    {
                        Priority = 0,
                        Type = "string",
                    },
                },
            },
            SqliMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementArgs
            {
                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchArgs
                {
                    AllQueryArguments = null,
                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchBodyArgs
                    {
                        OversizeHandling = "string",
                    },
                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesArgs
                    {
                        MatchScope = "string",
                        OversizeHandling = "string",
                        MatchPatterns = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs
                            {
                                All = null,
                                ExcludedCookies = new[]
                                {
                                    "string",
                                },
                                IncludedCookies = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    HeaderOrders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderOrderArgs
                        {
                            OversizeHandling = "string",
                        },
                    },
                    Headers = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderArgs
                        {
                            MatchScope = "string",
                            OversizeHandling = "string",
                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs
                            {
                                All = null,
                                ExcludedHeaders = new[]
                                {
                                    "string",
                                },
                                IncludedHeaders = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyArgs
                    {
                        MatchScope = "string",
                        InvalidFallbackBehavior = "string",
                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                        {
                            All = null,
                            IncludedPaths = new[]
                            {
                                "string",
                            },
                        },
                        OversizeHandling = "string",
                    },
                    Method = null,
                    QueryString = null,
                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchSingleHeaderArgs
                    {
                        Name = "string",
                    },
                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs
                    {
                        Name = "string",
                    },
                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementFieldToMatchUriFragmentArgs
                    {
                        FallbackBehavior = "string",
                    },
                    UriPath = null,
                },
                SensitivityLevel = "string",
                TextTransformations = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementSqliMatchStatementTextTransformationArgs
                    {
                        Priority = 0,
                        Type = "string",
                    },
                },
            },
            XssMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementArgs
            {
                FieldToMatch = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchArgs
                {
                    AllQueryArguments = null,
                    Body = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchBodyArgs
                    {
                        OversizeHandling = "string",
                    },
                    Cookies = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesArgs
                    {
                        MatchScope = "string",
                        OversizeHandling = "string",
                        MatchPatterns = new[]
                        {
                            new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs
                            {
                                All = null,
                                ExcludedCookies = new[]
                                {
                                    "string",
                                },
                                IncludedCookies = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    HeaderOrders = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderOrderArgs
                        {
                            OversizeHandling = "string",
                        },
                    },
                    Headers = new[]
                    {
                        new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderArgs
                        {
                            MatchScope = "string",
                            OversizeHandling = "string",
                            MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs
                            {
                                All = null,
                                ExcludedHeaders = new[]
                                {
                                    "string",
                                },
                                IncludedHeaders = new[]
                                {
                                    "string",
                                },
                            },
                        },
                    },
                    Ja3Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchJa3FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    Ja4Fingerprint = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchJa4FingerprintArgs
                    {
                        FallbackBehavior = "string",
                    },
                    JsonBody = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyArgs
                    {
                        MatchScope = "string",
                        InvalidFallbackBehavior = "string",
                        MatchPattern = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs
                        {
                            All = null,
                            IncludedPaths = new[]
                            {
                                "string",
                            },
                        },
                        OversizeHandling = "string",
                    },
                    Method = null,
                    QueryString = null,
                    SingleHeader = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchSingleHeaderArgs
                    {
                        Name = "string",
                    },
                    SingleQueryArgument = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs
                    {
                        Name = "string",
                    },
                    UriFragment = new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementFieldToMatchUriFragmentArgs
                    {
                        FallbackBehavior = "string",
                    },
                    UriPath = null,
                },
                TextTransformations = new[]
                {
                    new Aws.WafV2.Inputs.WebAclRuleStatementXssMatchStatementTextTransformationArgs
                    {
                        Priority = 0,
                        Type = "string",
                    },
                },
            },
        },
        Timeouts = new Aws.WafV2.Inputs.WebAclRuleTimeoutsArgs
        {
            Create = "string",
            Delete = "string",
            Update = "string",
        },
        VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs
        {
            CloudwatchMetricsEnabled = false,
            MetricName = "string",
            SampledRequestsEnabled = false,
        },
    });
    
    example, err := wafv2.NewWebAclRule(ctx, "webAclRuleResource", &wafv2.WebAclRuleArgs{
    	Priority:  pulumi.Int(0),
    	WebAclArn: pulumi.String("string"),
    	Action: &wafv2.WebAclRuleActionArgs{
    		Allow: &wafv2.WebAclRuleActionAllowArgs{
    			CustomRequestHandling: &wafv2.WebAclRuleActionAllowCustomRequestHandlingArgs{
    				InsertHeaders: wafv2.WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArray{
    					&wafv2.WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs{
    						Name:  pulumi.String("string"),
    						Value: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Block: &wafv2.WebAclRuleActionBlockArgs{
    			CustomResponse: &wafv2.WebAclRuleActionBlockCustomResponseArgs{
    				ResponseCode:          pulumi.Int(0),
    				CustomResponseBodyKey: pulumi.String("string"),
    				ResponseHeaders: wafv2.WebAclRuleActionBlockCustomResponseResponseHeaderArray{
    					&wafv2.WebAclRuleActionBlockCustomResponseResponseHeaderArgs{
    						Name:  pulumi.String("string"),
    						Value: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Captcha: &wafv2.WebAclRuleActionCaptchaArgs{
    			CustomRequestHandling: &wafv2.WebAclRuleActionCaptchaCustomRequestHandlingArgs{
    				InsertHeaders: wafv2.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArray{
    					&wafv2.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs{
    						Name:  pulumi.String("string"),
    						Value: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Challenge: &wafv2.WebAclRuleActionChallengeArgs{
    			CustomRequestHandling: &wafv2.WebAclRuleActionChallengeCustomRequestHandlingArgs{
    				InsertHeaders: wafv2.WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArray{
    					&wafv2.WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs{
    						Name:  pulumi.String("string"),
    						Value: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Count: &wafv2.WebAclRuleActionCountArgs{
    			CustomRequestHandling: &wafv2.WebAclRuleActionCountCustomRequestHandlingArgs{
    				InsertHeaders: wafv2.WebAclRuleActionCountCustomRequestHandlingInsertHeaderArray{
    					&wafv2.WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs{
    						Name:  pulumi.String("string"),
    						Value: pulumi.String("string"),
    					},
    				},
    			},
    		},
    	},
    	CaptchaConfig: &wafv2.WebAclRuleCaptchaConfigArgs{
    		ImmunityTimeProperty: &wafv2.WebAclRuleCaptchaConfigImmunityTimePropertyArgs{
    			ImmunityTime: pulumi.Int(0),
    		},
    	},
    	ChallengeConfig: &wafv2.WebAclRuleChallengeConfigArgs{
    		ImmunityTimeProperty: &wafv2.WebAclRuleChallengeConfigImmunityTimePropertyArgs{
    			ImmunityTime: pulumi.Int(0),
    		},
    	},
    	Name: pulumi.String("string"),
    	OverrideAction: &wafv2.WebAclRuleOverrideActionArgs{
    		Count: &wafv2.WebAclRuleOverrideActionCountArgs{},
    		None:  &wafv2.WebAclRuleOverrideActionNoneArgs{},
    	},
    	Region: pulumi.String("string"),
    	RuleLabels: wafv2.WebAclRuleRuleLabelArray{
    		&wafv2.WebAclRuleRuleLabelArgs{
    			Name: pulumi.String("string"),
    		},
    	},
    	Statement: &wafv2.WebAclRuleStatementArgs{
    		AndStatement: &wafv2.WebAclRuleStatementAndStatementArgs{
    			Statements: wafv2.WebAclRuleStatementArray{
    				webAclRuleStatement,
    			},
    		},
    		AsnMatchStatement: &wafv2.WebAclRuleStatementAsnMatchStatementArgs{
    			AsnLists: pulumi.IntArray{
    				pulumi.Int(0),
    			},
    			ForwardedIpConfig: &wafv2.WebAclRuleStatementAsnMatchStatementForwardedIpConfigArgs{
    				FallbackBehavior: pulumi.String("string"),
    				HeaderName:       pulumi.String("string"),
    			},
    		},
    		ByteMatchStatement: &wafv2.WebAclRuleStatementByteMatchStatementArgs{
    			PositionalConstraint: pulumi.String("string"),
    			SearchString:         pulumi.String("string"),
    			FieldToMatch: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchArgs{
    				AllQueryArguments: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    				Body: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchBodyArgs{
    					OversizeHandling: pulumi.String("string"),
    				},
    				Cookies: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesArgs{
    					MatchScope:       pulumi.String("string"),
    					OversizeHandling: pulumi.String("string"),
    					MatchPatterns: wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    						&wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    							ExcludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				HeaderOrders: wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    					&wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    						OversizeHandling: pulumi.String("string"),
    					},
    				},
    				Headers: wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderArray{
    					&wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderArgs{
    						MatchScope:       pulumi.String("string"),
    						OversizeHandling: pulumi.String("string"),
    						MatchPattern: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    							ExcludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Ja3Fingerprint: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				Ja4Fingerprint: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				JsonBody: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    					MatchScope:              pulumi.String("string"),
    					InvalidFallbackBehavior: pulumi.String("string"),
    					MatchPattern: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    						All: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    						IncludedPaths: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					OversizeHandling: pulumi.String("string"),
    				},
    				Method:      &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchMethodArgs{},
    				QueryString: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    				SingleHeader: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    					Name: pulumi.String("string"),
    				},
    				SingleQueryArgument: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    					Name: pulumi.String("string"),
    				},
    				UriFragment: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				UriPath: &wafv2.WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs{},
    			},
    			TextTransformations: wafv2.WebAclRuleStatementByteMatchStatementTextTransformationArray{
    				&wafv2.WebAclRuleStatementByteMatchStatementTextTransformationArgs{
    					Priority: pulumi.Int(0),
    					Type:     pulumi.String("string"),
    				},
    			},
    		},
    		GeoMatchStatement: &wafv2.WebAclRuleStatementGeoMatchStatementArgs{
    			CountryCodes: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ForwardedIpConfig: &wafv2.WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs{
    				FallbackBehavior: pulumi.String("string"),
    				HeaderName:       pulumi.String("string"),
    			},
    		},
    		IpSetReferenceStatement: &wafv2.WebAclRuleStatementIpSetReferenceStatementArgs{
    			Arn: pulumi.String("string"),
    			IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    				FallbackBehavior: pulumi.String("string"),
    				HeaderName:       pulumi.String("string"),
    				Position:         pulumi.String("string"),
    			},
    		},
    		LabelMatchStatement: &wafv2.WebAclRuleStatementLabelMatchStatementArgs{
    			Key:   pulumi.String("string"),
    			Scope: pulumi.String("string"),
    		},
    		ManagedRuleGroupStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementArgs{
    			Name:       pulumi.String("string"),
    			VendorName: pulumi.String("string"),
    			ManagedRuleGroupConfigs: wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArray{
    				&wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs{
    					AwsManagedRulesAcfpRuleSet: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs{
    						CreationPath:         pulumi.String("string"),
    						RegistrationPagePath: pulumi.String("string"),
    						EnableRegexInPath:    pulumi.Bool(false),
    						RequestInspection: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs{
    							PayloadType: pulumi.String("string"),
    							AddressFields: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs{
    								Identifiers: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							EmailField: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs{
    								Identifier: pulumi.String("string"),
    							},
    							PasswordField: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs{
    								Identifier: pulumi.String("string"),
    							},
    							PhoneNumberFields: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs{
    								Identifiers: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							UsernameField: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs{
    								Identifier: pulumi.String("string"),
    							},
    						},
    						ResponseInspection: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs{
    							BodyContains: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs{
    								FailureStrings: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								SuccessStrings: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							Header: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs{
    								FailureValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								Name: pulumi.String("string"),
    								SuccessValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							Json: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs{
    								FailureValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								Identifier: pulumi.String("string"),
    								SuccessValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							StatusCode: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs{
    								FailureCodes: pulumi.IntArray{
    									pulumi.Int(0),
    								},
    								SuccessCodes: pulumi.IntArray{
    									pulumi.Int(0),
    								},
    							},
    						},
    					},
    					AwsManagedRulesAntiDdosRuleSet: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs{
    						ClientSideActionConfig: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs{
    							Challenge: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs{
    								UsageOfAction: pulumi.String("string"),
    								ExemptUriRegularExpressions: wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArray{
    									&wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs{
    										RegexString: pulumi.String("string"),
    									},
    								},
    								Sensitivity: pulumi.String("string"),
    							},
    						},
    						SensitivityToBlock: pulumi.String("string"),
    					},
    					AwsManagedRulesAtpRuleSet: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs{
    						LoginPath:         pulumi.String("string"),
    						EnableRegexInPath: pulumi.Bool(false),
    						RequestInspection: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs{
    							PayloadType: pulumi.String("string"),
    							PasswordField: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs{
    								Identifier: pulumi.String("string"),
    							},
    							UsernameField: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs{
    								Identifier: pulumi.String("string"),
    							},
    						},
    						ResponseInspection: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs{
    							BodyContains: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs{
    								FailureStrings: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								SuccessStrings: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							Header: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs{
    								FailureValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								Name: pulumi.String("string"),
    								SuccessValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							Json: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs{
    								FailureValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    								Identifier: pulumi.String("string"),
    								SuccessValues: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							StatusCode: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs{
    								FailureCodes: pulumi.IntArray{
    									pulumi.Int(0),
    								},
    								SuccessCodes: pulumi.IntArray{
    									pulumi.Int(0),
    								},
    							},
    						},
    					},
    					AwsManagedRulesBotControlRuleSet: &wafv2.WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs{
    						InspectionLevel:       pulumi.String("string"),
    						EnableMachineLearning: pulumi.Bool(false),
    					},
    				},
    			},
    			RuleActionOverrides: wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArray{
    				&wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgs{
    					Name: pulumi.String("string"),
    					ActionToUse: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs{
    						Allow: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Block: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs{
    							CustomResponse: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    								ResponseCode:          pulumi.Int(0),
    								CustomResponseBodyKey: pulumi.String("string"),
    								ResponseHeaders: wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    									&wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Captcha: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Challenge: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Count: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    					},
    				},
    			},
    			ScopeDownStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs{
    				AsnMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs{
    					AsnLists: pulumi.IntArray{
    						pulumi.Int(0),
    					},
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    				},
    				ByteMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs{
    					PositionalConstraint: pulumi.String("string"),
    					SearchString:         pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				GeoMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs{
    					CountryCodes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    				},
    				IpSetReferenceStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    						Position:         pulumi.String("string"),
    					},
    				},
    				LabelMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs{
    					Key:   pulumi.String("string"),
    					Scope: pulumi.String("string"),
    				},
    				RegexMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs{
    					RegexString: pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				SizeConstraintStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs{
    					ComparisonOperator: pulumi.String("string"),
    					Size:               pulumi.Int(0),
    					FieldToMatch: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				SqliMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs{
    					FieldToMatch: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    					},
    					SensitivityLevel: pulumi.String("string"),
    					TextTransformations: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				XssMatchStatement: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs{
    					FieldToMatch: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    			},
    			Version: pulumi.String("string"),
    		},
    		NotStatement: &wafv2.WebAclRuleStatementNotStatementArgs{
    			Statement: &wafv2.WebAclRuleStatementNotStatementStatementArgs{
    				AndStatement: &wafv2.WebAclRuleStatementNotStatementStatementAndStatementArgs{
    					Statements: wafv2.WebAclRuleStatementArray{
    						webAclRuleStatement,
    					},
    				},
    				AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementAsnMatchStatementArgs{
    					AsnLists: pulumi.IntArray{
    						pulumi.Int(0),
    					},
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    				},
    				ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementArgs{
    					PositionalConstraint: pulumi.String("string"),
    					SearchString:         pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementByteMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs{
    					CountryCodes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    				},
    				IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementIpSetReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    						Position:         pulumi.String("string"),
    					},
    				},
    				LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementLabelMatchStatementArgs{
    					Key:   pulumi.String("string"),
    					Scope: pulumi.String("string"),
    				},
    				ManagedRuleGroupStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementArgs{
    					Name:       pulumi.String("string"),
    					VendorName: pulumi.String("string"),
    					ManagedRuleGroupConfigs: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs{
    							AwsManagedRulesAcfpRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs{
    								CreationPath:         pulumi.String("string"),
    								RegistrationPagePath: pulumi.String("string"),
    								EnableRegexInPath:    pulumi.Bool(false),
    								RequestInspection: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs{
    									PayloadType: pulumi.String("string"),
    									AddressFields: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs{
    										Identifiers: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									EmailField: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs{
    										Identifier: pulumi.String("string"),
    									},
    									PasswordField: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs{
    										Identifier: pulumi.String("string"),
    									},
    									PhoneNumberFields: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs{
    										Identifiers: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									UsernameField: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs{
    										Identifier: pulumi.String("string"),
    									},
    								},
    								ResponseInspection: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs{
    									BodyContains: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs{
    										FailureStrings: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										SuccessStrings: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									Header: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs{
    										FailureValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										Name: pulumi.String("string"),
    										SuccessValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									Json: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs{
    										FailureValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										Identifier: pulumi.String("string"),
    										SuccessValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									StatusCode: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs{
    										FailureCodes: pulumi.IntArray{
    											pulumi.Int(0),
    										},
    										SuccessCodes: pulumi.IntArray{
    											pulumi.Int(0),
    										},
    									},
    								},
    							},
    							AwsManagedRulesAntiDdosRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs{
    								ClientSideActionConfig: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs{
    									Challenge: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs{
    										UsageOfAction: pulumi.String("string"),
    										ExemptUriRegularExpressions: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs{
    												RegexString: pulumi.String("string"),
    											},
    										},
    										Sensitivity: pulumi.String("string"),
    									},
    								},
    								SensitivityToBlock: pulumi.String("string"),
    							},
    							AwsManagedRulesAtpRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs{
    								LoginPath:         pulumi.String("string"),
    								EnableRegexInPath: pulumi.Bool(false),
    								RequestInspection: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs{
    									PayloadType: pulumi.String("string"),
    									PasswordField: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs{
    										Identifier: pulumi.String("string"),
    									},
    									UsernameField: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs{
    										Identifier: pulumi.String("string"),
    									},
    								},
    								ResponseInspection: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs{
    									BodyContains: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs{
    										FailureStrings: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										SuccessStrings: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									Header: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs{
    										FailureValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										Name: pulumi.String("string"),
    										SuccessValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									Json: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs{
    										FailureValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    										Identifier: pulumi.String("string"),
    										SuccessValues: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									StatusCode: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs{
    										FailureCodes: pulumi.IntArray{
    											pulumi.Int(0),
    										},
    										SuccessCodes: pulumi.IntArray{
    											pulumi.Int(0),
    										},
    									},
    								},
    							},
    							AwsManagedRulesBotControlRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs{
    								InspectionLevel:       pulumi.String("string"),
    								EnableMachineLearning: pulumi.Bool(false),
    							},
    						},
    					},
    					RuleActionOverrides: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs{
    							Name: pulumi.String("string"),
    							ActionToUse: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs{
    								Allow: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Block: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs{
    									CustomResponse: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    										ResponseCode:          pulumi.Int(0),
    										CustomResponseBodyKey: pulumi.String("string"),
    										ResponseHeaders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Captcha: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Challenge: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Count: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    							},
    						},
    					},
    					ScopeDownStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs{
    						AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs{
    							AsnLists: pulumi.IntArray{
    								pulumi.Int(0),
    							},
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    						},
    						ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs{
    							PositionalConstraint: pulumi.String("string"),
    							SearchString:         pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs{
    							CountryCodes: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    						},
    						IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    								Position:         pulumi.String("string"),
    							},
    						},
    						LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs{
    							Key:   pulumi.String("string"),
    							Scope: pulumi.String("string"),
    						},
    						RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs{
    							RegexString: pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs{
    							ComparisonOperator: pulumi.String("string"),
    							Size:               pulumi.Int(0),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs{
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    							},
    							SensitivityLevel: pulumi.String("string"),
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs{
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    					},
    					Version: pulumi.String("string"),
    				},
    				NotStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementArgs{
    					Statement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementArgs{
    						AndStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementAndStatementArgs{
    							Statements: wafv2.WebAclRuleStatementArray{
    								webAclRuleStatement,
    							},
    						},
    						AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementAsnMatchStatementArgs{
    							AsnLists: pulumi.IntArray{
    								pulumi.Int(0),
    							},
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    						},
    						ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementArgs{
    							PositionalConstraint: pulumi.String("string"),
    							SearchString:         pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementGeoMatchStatementArgs{
    							CountryCodes: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    						},
    						IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    								Position:         pulumi.String("string"),
    							},
    						},
    						LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementLabelMatchStatementArgs{
    							Key:   pulumi.String("string"),
    							Scope: pulumi.String("string"),
    						},
    						ManagedRuleGroupStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementArgs{
    							Name:       pulumi.String("string"),
    							VendorName: pulumi.String("string"),
    							ManagedRuleGroupConfigs: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs{
    									AwsManagedRulesAcfpRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs{
    										CreationPath:         pulumi.String("string"),
    										RegistrationPagePath: pulumi.String("string"),
    										EnableRegexInPath:    pulumi.Bool(false),
    										RequestInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs{
    											PayloadType: pulumi.String("string"),
    											AddressFields: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs{
    												Identifiers: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											EmailField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs{
    												Identifier: pulumi.String("string"),
    											},
    											PasswordField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs{
    												Identifier: pulumi.String("string"),
    											},
    											PhoneNumberFields: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs{
    												Identifiers: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											UsernameField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs{
    												Identifier: pulumi.String("string"),
    											},
    										},
    										ResponseInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs{
    											BodyContains: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs{
    												FailureStrings: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    												SuccessStrings: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											Header: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs{
    												FailureValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    												Name: pulumi.String("string"),
    												SuccessValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											Json: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs{
    												FailureValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    												Identifier: pulumi.String("string"),
    												SuccessValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											StatusCode: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs{
    												FailureCodes: pulumi.IntArray{
    													pulumi.Int(0),
    												},
    												SuccessCodes: pulumi.IntArray{
    													pulumi.Int(0),
    												},
    											},
    										},
    									},
    									AwsManagedRulesAntiDdosRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs{
    										ClientSideActionConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs{
    											Challenge: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs{
    												UsageOfAction: pulumi.String("string"),
    												ExemptUriRegularExpressions: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs{
    														RegexString: pulumi.String("string"),
    													},
    												},
    												Sensitivity: pulumi.String("string"),
    											},
    										},
    										SensitivityToBlock: pulumi.String("string"),
    									},
    									AwsManagedRulesAtpRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs{
    										LoginPath:         pulumi.String("string"),
    										EnableRegexInPath: pulumi.Bool(false),
    										RequestInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs{
    											PayloadType: pulumi.String("string"),
    											PasswordField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs{
    												Identifier: pulumi.String("string"),
    											},
    											UsernameField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs{
    												Identifier: pulumi.String("string"),
    											},
    										},
    										ResponseInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs{
    											BodyContains: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs{
    												FailureStrings: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    												SuccessStrings: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											Header: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs{
    												FailureValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    												Name: pulumi.String("string"),
    												SuccessValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											Json: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs{
    												FailureValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    												Identifier: pulumi.String("string"),
    												SuccessValues: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											StatusCode: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs{
    												FailureCodes: pulumi.IntArray{
    													pulumi.Int(0),
    												},
    												SuccessCodes: pulumi.IntArray{
    													pulumi.Int(0),
    												},
    											},
    										},
    									},
    									AwsManagedRulesBotControlRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs{
    										InspectionLevel:       pulumi.String("string"),
    										EnableMachineLearning: pulumi.Bool(false),
    									},
    								},
    							},
    							RuleActionOverrides: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs{
    									Name: pulumi.String("string"),
    									ActionToUse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs{
    										Allow: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Block: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs{
    											CustomResponse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    												ResponseCode:          pulumi.Int(0),
    												CustomResponseBodyKey: pulumi.String("string"),
    												ResponseHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Captcha: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Challenge: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Count: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    									},
    								},
    							},
    							ScopeDownStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs{
    								AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs{
    									AsnLists: pulumi.IntArray{
    										pulumi.Int(0),
    									},
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    								},
    								ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs{
    									PositionalConstraint: pulumi.String("string"),
    									SearchString:         pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs{
    									CountryCodes: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    								},
    								IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    										Position:         pulumi.String("string"),
    									},
    								},
    								LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs{
    									Key:   pulumi.String("string"),
    									Scope: pulumi.String("string"),
    								},
    								RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs{
    									RegexString: pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs{
    									ComparisonOperator: pulumi.String("string"),
    									Size:               pulumi.Int(0),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs{
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    									},
    									SensitivityLevel: pulumi.String("string"),
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs{
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    							},
    							Version: pulumi.String("string"),
    						},
    						NotStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementArgs{
    							Statement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementArgs{
    								AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementAsnMatchStatementArgs{
    									AsnLists: pulumi.IntArray{
    										pulumi.Int(0),
    									},
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    								},
    								ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementArgs{
    									PositionalConstraint: pulumi.String("string"),
    									SearchString:         pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementGeoMatchStatementArgs{
    									CountryCodes: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    								},
    								IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    										Position:         pulumi.String("string"),
    									},
    								},
    								LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementLabelMatchStatementArgs{
    									Key:   pulumi.String("string"),
    									Scope: pulumi.String("string"),
    								},
    								ManagedRuleGroupStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementArgs{
    									Name:       pulumi.String("string"),
    									VendorName: pulumi.String("string"),
    									ManagedRuleGroupConfigs: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs{
    											AwsManagedRulesAcfpRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs{
    												CreationPath:         pulumi.String("string"),
    												RegistrationPagePath: pulumi.String("string"),
    												EnableRegexInPath:    pulumi.Bool(false),
    												RequestInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs{
    													PayloadType: pulumi.String("string"),
    													AddressFields: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs{
    														Identifiers: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													EmailField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs{
    														Identifier: pulumi.String("string"),
    													},
    													PasswordField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs{
    														Identifier: pulumi.String("string"),
    													},
    													PhoneNumberFields: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs{
    														Identifiers: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													UsernameField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs{
    														Identifier: pulumi.String("string"),
    													},
    												},
    												ResponseInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs{
    													BodyContains: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs{
    														FailureStrings: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    														SuccessStrings: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													Header: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs{
    														FailureValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    														Name: pulumi.String("string"),
    														SuccessValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													Json: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs{
    														FailureValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    														Identifier: pulumi.String("string"),
    														SuccessValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													StatusCode: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs{
    														FailureCodes: pulumi.IntArray{
    															pulumi.Int(0),
    														},
    														SuccessCodes: pulumi.IntArray{
    															pulumi.Int(0),
    														},
    													},
    												},
    											},
    											AwsManagedRulesAntiDdosRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs{
    												ClientSideActionConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs{
    													Challenge: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs{
    														UsageOfAction: pulumi.String("string"),
    														ExemptUriRegularExpressions: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs{
    																RegexString: pulumi.String("string"),
    															},
    														},
    														Sensitivity: pulumi.String("string"),
    													},
    												},
    												SensitivityToBlock: pulumi.String("string"),
    											},
    											AwsManagedRulesAtpRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs{
    												LoginPath:         pulumi.String("string"),
    												EnableRegexInPath: pulumi.Bool(false),
    												RequestInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs{
    													PayloadType: pulumi.String("string"),
    													PasswordField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs{
    														Identifier: pulumi.String("string"),
    													},
    													UsernameField: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs{
    														Identifier: pulumi.String("string"),
    													},
    												},
    												ResponseInspection: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs{
    													BodyContains: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs{
    														FailureStrings: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    														SuccessStrings: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													Header: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs{
    														FailureValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    														Name: pulumi.String("string"),
    														SuccessValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													Json: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs{
    														FailureValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    														Identifier: pulumi.String("string"),
    														SuccessValues: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													StatusCode: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs{
    														FailureCodes: pulumi.IntArray{
    															pulumi.Int(0),
    														},
    														SuccessCodes: pulumi.IntArray{
    															pulumi.Int(0),
    														},
    													},
    												},
    											},
    											AwsManagedRulesBotControlRuleSet: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs{
    												InspectionLevel:       pulumi.String("string"),
    												EnableMachineLearning: pulumi.Bool(false),
    											},
    										},
    									},
    									RuleActionOverrides: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs{
    											Name: pulumi.String("string"),
    											ActionToUse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs{
    												Allow: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Block: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs{
    													CustomResponse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    														ResponseCode:          pulumi.Int(0),
    														CustomResponseBodyKey: pulumi.String("string"),
    														ResponseHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Captcha: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Challenge: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Count: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    											},
    										},
    									},
    									ScopeDownStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs{
    										AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs{
    											AsnLists: pulumi.IntArray{
    												pulumi.Int(0),
    											},
    											ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    												FallbackBehavior: pulumi.String("string"),
    												HeaderName:       pulumi.String("string"),
    											},
    										},
    										ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs{
    											PositionalConstraint: pulumi.String("string"),
    											SearchString:         pulumi.String("string"),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs{
    											CountryCodes: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    												FallbackBehavior: pulumi.String("string"),
    												HeaderName:       pulumi.String("string"),
    											},
    										},
    										IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs{
    											Arn: pulumi.String("string"),
    											IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    												FallbackBehavior: pulumi.String("string"),
    												HeaderName:       pulumi.String("string"),
    												Position:         pulumi.String("string"),
    											},
    										},
    										LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs{
    											Key:   pulumi.String("string"),
    											Scope: pulumi.String("string"),
    										},
    										RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs{
    											RegexString: pulumi.String("string"),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    											Arn: pulumi.String("string"),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs{
    											ComparisonOperator: pulumi.String("string"),
    											Size:               pulumi.Int(0),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs{
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    											},
    											SensitivityLevel: pulumi.String("string"),
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs{
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    									},
    									Version: pulumi.String("string"),
    								},
    								RateBasedStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementArgs{
    									AggregateKeyType: pulumi.String("string"),
    									Limit:            pulumi.Int(0),
    									CustomKeys: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyArgs{
    											Asn: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyAsnArgs{},
    											Cookie: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieArgs{
    												Name: pulumi.String("string"),
    												TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArgs{
    														Priority: pulumi.Int(0),
    														Type:     pulumi.String("string"),
    													},
    												},
    											},
    											ForwardedIp: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyForwardedIpArgs{},
    											Header: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderArgs{
    												Name: pulumi.String("string"),
    												TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs{
    														Priority: pulumi.Int(0),
    														Type:     pulumi.String("string"),
    													},
    												},
    											},
    											HttpMethod: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHttpMethodArgs{},
    											Ip:         &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyIpArgs{},
    											Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa3FingerprintArgs{
    												FallbackBehavior: pulumi.String("string"),
    											},
    											Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa4FingerprintArgs{
    												FallbackBehavior: pulumi.String("string"),
    											},
    											LabelNamespace: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyLabelNamespaceArgs{
    												Namespace: pulumi.String("string"),
    											},
    											QueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentArgs{
    												Name: pulumi.String("string"),
    												TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs{
    														Priority: pulumi.Int(0),
    														Type:     pulumi.String("string"),
    													},
    												},
    											},
    											QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringArgs{
    												TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs{
    														Priority: pulumi.Int(0),
    														Type:     pulumi.String("string"),
    													},
    												},
    											},
    											UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathArgs{
    												TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs{
    														Priority: pulumi.Int(0),
    														Type:     pulumi.String("string"),
    													},
    												},
    											},
    										},
    									},
    									EvaluationWindowSec: pulumi.Int(0),
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    									ScopeDownStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementArgs{
    										AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs{
    											AsnLists: pulumi.IntArray{
    												pulumi.Int(0),
    											},
    											ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    												FallbackBehavior: pulumi.String("string"),
    												HeaderName:       pulumi.String("string"),
    											},
    										},
    										ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs{
    											PositionalConstraint: pulumi.String("string"),
    											SearchString:         pulumi.String("string"),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs{
    											CountryCodes: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    												FallbackBehavior: pulumi.String("string"),
    												HeaderName:       pulumi.String("string"),
    											},
    										},
    										IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs{
    											Arn: pulumi.String("string"),
    											IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    												FallbackBehavior: pulumi.String("string"),
    												HeaderName:       pulumi.String("string"),
    												Position:         pulumi.String("string"),
    											},
    										},
    										LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs{
    											Key:   pulumi.String("string"),
    											Scope: pulumi.String("string"),
    										},
    										RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs{
    											RegexString: pulumi.String("string"),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    											Arn: pulumi.String("string"),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs{
    											ComparisonOperator: pulumi.String("string"),
    											Size:               pulumi.Int(0),
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs{
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    											},
    											SensitivityLevel: pulumi.String("string"),
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    										XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs{
    											FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    												AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    												Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    													OversizeHandling: pulumi.String("string"),
    												},
    												Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    													MatchScope:       pulumi.String("string"),
    													OversizeHandling: pulumi.String("string"),
    													MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    														&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    															ExcludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedCookies: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    														OversizeHandling: pulumi.String("string"),
    													},
    												},
    												Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    														MatchScope:       pulumi.String("string"),
    														OversizeHandling: pulumi.String("string"),
    														MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    															All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    															ExcludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    															IncludedHeaders: pulumi.StringArray{
    																pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    													MatchScope:              pulumi.String("string"),
    													InvalidFallbackBehavior: pulumi.String("string"),
    													MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    														All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    														IncludedPaths: pulumi.StringArray{
    															pulumi.String("string"),
    														},
    													},
    													OversizeHandling: pulumi.String("string"),
    												},
    												Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    												QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    												SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    													Name: pulumi.String("string"),
    												},
    												SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    													Name: pulumi.String("string"),
    												},
    												UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    													FallbackBehavior: pulumi.String("string"),
    												},
    												UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    											},
    											TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    													Priority: pulumi.Int(0),
    													Type:     pulumi.String("string"),
    												},
    											},
    										},
    									},
    								},
    								RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementArgs{
    									RegexString: pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								RuleGroupReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									ExcludedRules: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArgs{
    											Name: pulumi.String("string"),
    										},
    									},
    									RuleActionOverrides: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArgs{
    											Name: pulumi.String("string"),
    											ActionToUse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs{
    												Allow: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Block: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs{
    													CustomResponse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    														ResponseCode:          pulumi.Int(0),
    														CustomResponseBodyKey: pulumi.String("string"),
    														ResponseHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Captcha: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Challenge: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    												Count: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs{
    													CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    														InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    															&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    																Name:  pulumi.String("string"),
    																Value: pulumi.String("string"),
    															},
    														},
    													},
    												},
    											},
    										},
    									},
    								},
    								SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementArgs{
    									ComparisonOperator: pulumi.String("string"),
    									Size:               pulumi.Int(0),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSizeConstraintStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementArgs{
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    									},
    									SensitivityLevel: pulumi.String("string"),
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementSqliMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementArgs{
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementXssMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    							},
    						},
    						OrStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementOrStatementArgs{
    							Statements: wafv2.WebAclRuleStatementArray{
    								webAclRuleStatement,
    							},
    						},
    						RateBasedStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementArgs{
    							AggregateKeyType: pulumi.String("string"),
    							Limit:            pulumi.Int(0),
    							CustomKeys: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyArgs{
    									Asn: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyAsnArgs{},
    									Cookie: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieArgs{
    										Name: pulumi.String("string"),
    										TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArgs{
    												Priority: pulumi.Int(0),
    												Type:     pulumi.String("string"),
    											},
    										},
    									},
    									ForwardedIp: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyForwardedIpArgs{},
    									Header: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderArgs{
    										Name: pulumi.String("string"),
    										TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs{
    												Priority: pulumi.Int(0),
    												Type:     pulumi.String("string"),
    											},
    										},
    									},
    									HttpMethod: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyHttpMethodArgs{},
    									Ip:         &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyIpArgs{},
    									Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa3FingerprintArgs{
    										FallbackBehavior: pulumi.String("string"),
    									},
    									Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyJa4FingerprintArgs{
    										FallbackBehavior: pulumi.String("string"),
    									},
    									LabelNamespace: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyLabelNamespaceArgs{
    										Namespace: pulumi.String("string"),
    									},
    									QueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentArgs{
    										Name: pulumi.String("string"),
    										TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs{
    												Priority: pulumi.Int(0),
    												Type:     pulumi.String("string"),
    											},
    										},
    									},
    									QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringArgs{
    										TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs{
    												Priority: pulumi.Int(0),
    												Type:     pulumi.String("string"),
    											},
    										},
    									},
    									UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathArgs{
    										TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs{
    												Priority: pulumi.Int(0),
    												Type:     pulumi.String("string"),
    											},
    										},
    									},
    								},
    							},
    							EvaluationWindowSec: pulumi.Int(0),
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    							ScopeDownStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementArgs{
    								AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs{
    									AsnLists: pulumi.IntArray{
    										pulumi.Int(0),
    									},
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    								},
    								ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs{
    									PositionalConstraint: pulumi.String("string"),
    									SearchString:         pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs{
    									CountryCodes: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    									},
    								},
    								IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    										FallbackBehavior: pulumi.String("string"),
    										HeaderName:       pulumi.String("string"),
    										Position:         pulumi.String("string"),
    									},
    								},
    								LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs{
    									Key:   pulumi.String("string"),
    									Scope: pulumi.String("string"),
    								},
    								RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs{
    									RegexString: pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    									Arn: pulumi.String("string"),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs{
    									ComparisonOperator: pulumi.String("string"),
    									Size:               pulumi.Int(0),
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs{
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    									},
    									SensitivityLevel: pulumi.String("string"),
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    								XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs{
    									FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    										AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    										Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    											OversizeHandling: pulumi.String("string"),
    										},
    										Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    											MatchScope:       pulumi.String("string"),
    											OversizeHandling: pulumi.String("string"),
    											MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    												&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    													ExcludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedCookies: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    												OversizeHandling: pulumi.String("string"),
    											},
    										},
    										Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    												MatchScope:       pulumi.String("string"),
    												OversizeHandling: pulumi.String("string"),
    												MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    													All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    													ExcludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    													IncludedHeaders: pulumi.StringArray{
    														pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    											MatchScope:              pulumi.String("string"),
    											InvalidFallbackBehavior: pulumi.String("string"),
    											MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    												All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    												IncludedPaths: pulumi.StringArray{
    													pulumi.String("string"),
    												},
    											},
    											OversizeHandling: pulumi.String("string"),
    										},
    										Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    										QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    										SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    											Name: pulumi.String("string"),
    										},
    										SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    											Name: pulumi.String("string"),
    										},
    										UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    											FallbackBehavior: pulumi.String("string"),
    										},
    										UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    									},
    									TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    											Priority: pulumi.Int(0),
    											Type:     pulumi.String("string"),
    										},
    									},
    								},
    							},
    						},
    						RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementArgs{
    							RegexString: pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						RuleGroupReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							ExcludedRules: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArgs{
    									Name: pulumi.String("string"),
    								},
    							},
    							RuleActionOverrides: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArgs{
    									Name: pulumi.String("string"),
    									ActionToUse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs{
    										Allow: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Block: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs{
    											CustomResponse: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    												ResponseCode:          pulumi.Int(0),
    												CustomResponseBodyKey: pulumi.String("string"),
    												ResponseHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Captcha: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Challenge: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    										Count: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs{
    											CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    												InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    													&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    														Name:  pulumi.String("string"),
    														Value: pulumi.String("string"),
    													},
    												},
    											},
    										},
    									},
    								},
    							},
    						},
    						SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementArgs{
    							ComparisonOperator: pulumi.String("string"),
    							Size:               pulumi.Int(0),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSizeConstraintStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementArgs{
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    							},
    							SensitivityLevel: pulumi.String("string"),
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementSqliMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementArgs{
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementNotStatementStatementXssMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    					},
    				},
    				OrStatement: &wafv2.WebAclRuleStatementNotStatementStatementOrStatementArgs{
    					Statements: wafv2.WebAclRuleStatementArray{
    						webAclRuleStatement,
    					},
    				},
    				RateBasedStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementArgs{
    					AggregateKeyType: pulumi.String("string"),
    					Limit:            pulumi.Int(0),
    					CustomKeys: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyArgs{
    							Asn: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyAsnArgs{},
    							Cookie: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyCookieArgs{
    								Name: pulumi.String("string"),
    								TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyCookieTextTransformationArgs{
    										Priority: pulumi.Int(0),
    										Type:     pulumi.String("string"),
    									},
    								},
    							},
    							ForwardedIp: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyForwardedIpArgs{},
    							Header: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyHeaderArgs{
    								Name: pulumi.String("string"),
    								TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs{
    										Priority: pulumi.Int(0),
    										Type:     pulumi.String("string"),
    									},
    								},
    							},
    							HttpMethod: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyHttpMethodArgs{},
    							Ip:         &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyIpArgs{},
    							Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyJa3FingerprintArgs{
    								FallbackBehavior: pulumi.String("string"),
    							},
    							Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyJa4FingerprintArgs{
    								FallbackBehavior: pulumi.String("string"),
    							},
    							LabelNamespace: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyLabelNamespaceArgs{
    								Namespace: pulumi.String("string"),
    							},
    							QueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentArgs{
    								Name: pulumi.String("string"),
    								TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs{
    										Priority: pulumi.Int(0),
    										Type:     pulumi.String("string"),
    									},
    								},
    							},
    							QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringArgs{
    								TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs{
    										Priority: pulumi.Int(0),
    										Type:     pulumi.String("string"),
    									},
    								},
    							},
    							UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyUriPathArgs{
    								TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs{
    										Priority: pulumi.Int(0),
    										Type:     pulumi.String("string"),
    									},
    								},
    							},
    						},
    					},
    					EvaluationWindowSec: pulumi.Int(0),
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    					ScopeDownStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementArgs{
    						AsnMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs{
    							AsnLists: pulumi.IntArray{
    								pulumi.Int(0),
    							},
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    						},
    						ByteMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs{
    							PositionalConstraint: pulumi.String("string"),
    							SearchString:         pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						GeoMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs{
    							CountryCodes: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							ForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    							},
    						},
    						IpSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    								FallbackBehavior: pulumi.String("string"),
    								HeaderName:       pulumi.String("string"),
    								Position:         pulumi.String("string"),
    							},
    						},
    						LabelMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs{
    							Key:   pulumi.String("string"),
    							Scope: pulumi.String("string"),
    						},
    						RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs{
    							RegexString: pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    							Arn: pulumi.String("string"),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs{
    							ComparisonOperator: pulumi.String("string"),
    							Size:               pulumi.Int(0),
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs{
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    							},
    							SensitivityLevel: pulumi.String("string"),
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    						XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs{
    							FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    								AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    								Body: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    									OversizeHandling: pulumi.String("string"),
    								},
    								Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    									MatchScope:       pulumi.String("string"),
    									OversizeHandling: pulumi.String("string"),
    									MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    										&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    											ExcludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedCookies: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    										OversizeHandling: pulumi.String("string"),
    									},
    								},
    								Headers: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    									&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    										MatchScope:       pulumi.String("string"),
    										OversizeHandling: pulumi.String("string"),
    										MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    											All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    											ExcludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    											IncludedHeaders: pulumi.StringArray{
    												pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    									MatchScope:              pulumi.String("string"),
    									InvalidFallbackBehavior: pulumi.String("string"),
    									MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    										All: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    										IncludedPaths: pulumi.StringArray{
    											pulumi.String("string"),
    										},
    									},
    									OversizeHandling: pulumi.String("string"),
    								},
    								Method:      &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    								QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    								SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    									Name: pulumi.String("string"),
    								},
    								SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    									Name: pulumi.String("string"),
    								},
    								UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    									FallbackBehavior: pulumi.String("string"),
    								},
    								UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    							},
    							TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    									Priority: pulumi.Int(0),
    									Type:     pulumi.String("string"),
    								},
    							},
    						},
    					},
    				},
    				RegexMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementArgs{
    					RegexString: pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementRegexMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				RuleGroupReferenceStatement: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					ExcludedRules: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementExcludedRuleArgs{
    							Name: pulumi.String("string"),
    						},
    					},
    					RuleActionOverrides: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideArgs{
    							Name: pulumi.String("string"),
    							ActionToUse: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs{
    								Allow: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Block: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs{
    									CustomResponse: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    										ResponseCode:          pulumi.Int(0),
    										CustomResponseBodyKey: pulumi.String("string"),
    										ResponseHeaders: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Captcha: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Challenge: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    								Count: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs{
    									CustomRequestHandling: &wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    										InsertHeaders: wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    											&wafv2.WebAclRuleStatementNotStatementStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    												Name:  pulumi.String("string"),
    												Value: pulumi.String("string"),
    											},
    										},
    									},
    								},
    							},
    						},
    					},
    				},
    				SizeConstraintStatement: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementArgs{
    					ComparisonOperator: pulumi.String("string"),
    					Size:               pulumi.Int(0),
    					FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementSizeConstraintStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				SqliMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementArgs{
    					FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    					},
    					SensitivityLevel: pulumi.String("string"),
    					TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementSqliMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				XssMatchStatement: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementArgs{
    					FieldToMatch: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementNotStatementStatementXssMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    		OrStatement: &wafv2.WebAclRuleStatementOrStatementArgs{
    			Statements: wafv2.WebAclRuleStatementArray{
    				webAclRuleStatement,
    			},
    		},
    		RateBasedStatement: &wafv2.WebAclRuleStatementRateBasedStatementArgs{
    			AggregateKeyType: pulumi.String("string"),
    			Limit:            pulumi.Int(0),
    			CustomKeys: wafv2.WebAclRuleStatementRateBasedStatementCustomKeyArray{
    				&wafv2.WebAclRuleStatementRateBasedStatementCustomKeyArgs{
    					Asn: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyAsnArgs{},
    					Cookie: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs{
    						Name: pulumi.String("string"),
    						TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementCustomKeyCookieTextTransformationArgs{
    								Priority: pulumi.Int(0),
    								Type:     pulumi.String("string"),
    							},
    						},
    					},
    					ForwardedIp: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgs{},
    					Header: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs{
    						Name: pulumi.String("string"),
    						TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementCustomKeyHeaderTextTransformationArgs{
    								Priority: pulumi.Int(0),
    								Type:     pulumi.String("string"),
    							},
    						},
    					},
    					HttpMethod: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgs{},
    					Ip:         &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyIpArgs{},
    					Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyJa3FingerprintArgs{
    						FallbackBehavior: pulumi.String("string"),
    					},
    					Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyJa4FingerprintArgs{
    						FallbackBehavior: pulumi.String("string"),
    					},
    					LabelNamespace: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs{
    						Namespace: pulumi.String("string"),
    					},
    					QueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs{
    						Name: pulumi.String("string"),
    						TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentTextTransformationArgs{
    								Priority: pulumi.Int(0),
    								Type:     pulumi.String("string"),
    							},
    						},
    					},
    					QueryString: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs{
    						TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringTextTransformationArgs{
    								Priority: pulumi.Int(0),
    								Type:     pulumi.String("string"),
    							},
    						},
    					},
    					UriPath: &wafv2.WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs{
    						TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementCustomKeyUriPathTextTransformationArgs{
    								Priority: pulumi.Int(0),
    								Type:     pulumi.String("string"),
    							},
    						},
    					},
    				},
    			},
    			EvaluationWindowSec: pulumi.Int(0),
    			ForwardedIpConfig: &wafv2.WebAclRuleStatementRateBasedStatementForwardedIpConfigArgs{
    				FallbackBehavior: pulumi.String("string"),
    				HeaderName:       pulumi.String("string"),
    			},
    			ScopeDownStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs{
    				AsnMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementAsnMatchStatementArgs{
    					AsnLists: pulumi.IntArray{
    						pulumi.Int(0),
    					},
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    				},
    				ByteMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementArgs{
    					PositionalConstraint: pulumi.String("string"),
    					SearchString:         pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementByteMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				GeoMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs{
    					CountryCodes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					ForwardedIpConfig: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    					},
    				},
    				IpSetReferenceStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					IpSetForwardedIpConfig: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs{
    						FallbackBehavior: pulumi.String("string"),
    						HeaderName:       pulumi.String("string"),
    						Position:         pulumi.String("string"),
    					},
    				},
    				LabelMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementLabelMatchStatementArgs{
    					Key:   pulumi.String("string"),
    					Scope: pulumi.String("string"),
    				},
    				RegexMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementArgs{
    					RegexString: pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementArgs{
    					Arn: pulumi.String("string"),
    					FieldToMatch: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				SizeConstraintStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementArgs{
    					ComparisonOperator: pulumi.String("string"),
    					Size:               pulumi.Int(0),
    					FieldToMatch: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				SqliMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementArgs{
    					FieldToMatch: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    					},
    					SensitivityLevel: pulumi.String("string"),
    					TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementSqliMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    				XssMatchStatement: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementArgs{
    					FieldToMatch: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchArgs{
    						AllQueryArguments: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    						Body: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs{
    							OversizeHandling: pulumi.String("string"),
    						},
    						Cookies: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs{
    							MatchScope:       pulumi.String("string"),
    							OversizeHandling: pulumi.String("string"),
    							MatchPatterns: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    								&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    									ExcludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedCookies: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						HeaderOrders: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    								OversizeHandling: pulumi.String("string"),
    							},
    						},
    						Headers: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArray{
    							&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs{
    								MatchScope:       pulumi.String("string"),
    								OversizeHandling: pulumi.String("string"),
    								MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    									All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    									ExcludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    									IncludedHeaders: pulumi.StringArray{
    										pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Ja3Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						Ja4Fingerprint: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						JsonBody: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    							MatchScope:              pulumi.String("string"),
    							InvalidFallbackBehavior: pulumi.String("string"),
    							MatchPattern: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    								All: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    								IncludedPaths: pulumi.StringArray{
    									pulumi.String("string"),
    								},
    							},
    							OversizeHandling: pulumi.String("string"),
    						},
    						Method:      &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs{},
    						QueryString: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    						SingleHeader: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    							Name: pulumi.String("string"),
    						},
    						SingleQueryArgument: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    							Name: pulumi.String("string"),
    						},
    						UriFragment: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    							FallbackBehavior: pulumi.String("string"),
    						},
    						UriPath: &wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs{},
    					},
    					TextTransformations: wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArray{
    						&wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementXssMatchStatementTextTransformationArgs{
    							Priority: pulumi.Int(0),
    							Type:     pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    		RegexMatchStatement: &wafv2.WebAclRuleStatementRegexMatchStatementArgs{
    			RegexString: pulumi.String("string"),
    			FieldToMatch: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchArgs{
    				AllQueryArguments: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    				Body: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchBodyArgs{
    					OversizeHandling: pulumi.String("string"),
    				},
    				Cookies: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesArgs{
    					MatchScope:       pulumi.String("string"),
    					OversizeHandling: pulumi.String("string"),
    					MatchPatterns: wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArray{
    						&wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    							ExcludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				HeaderOrders: wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderOrderArray{
    					&wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderOrderArgs{
    						OversizeHandling: pulumi.String("string"),
    					},
    				},
    				Headers: wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderArray{
    					&wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderArgs{
    						MatchScope:       pulumi.String("string"),
    						OversizeHandling: pulumi.String("string"),
    						MatchPattern: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    							ExcludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Ja3Fingerprint: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				Ja4Fingerprint: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				JsonBody: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyArgs{
    					MatchScope:              pulumi.String("string"),
    					InvalidFallbackBehavior: pulumi.String("string"),
    					MatchPattern: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    						All: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    						IncludedPaths: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					OversizeHandling: pulumi.String("string"),
    				},
    				Method:      &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchMethodArgs{},
    				QueryString: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchQueryStringArgs{},
    				SingleHeader: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchSingleHeaderArgs{
    					Name: pulumi.String("string"),
    				},
    				SingleQueryArgument: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs{
    					Name: pulumi.String("string"),
    				},
    				UriFragment: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchUriFragmentArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				UriPath: &wafv2.WebAclRuleStatementRegexMatchStatementFieldToMatchUriPathArgs{},
    			},
    			TextTransformations: wafv2.WebAclRuleStatementRegexMatchStatementTextTransformationArray{
    				&wafv2.WebAclRuleStatementRegexMatchStatementTextTransformationArgs{
    					Priority: pulumi.Int(0),
    					Type:     pulumi.String("string"),
    				},
    			},
    		},
    		RegexPatternSetReferenceStatement: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementArgs{
    			Arn: pulumi.String("string"),
    			FieldToMatch: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchArgs{
    				AllQueryArguments: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs{},
    				Body: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs{
    					OversizeHandling: pulumi.String("string"),
    				},
    				Cookies: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs{
    					MatchScope:       pulumi.String("string"),
    					OversizeHandling: pulumi.String("string"),
    					MatchPatterns: wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArray{
    						&wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs{},
    							ExcludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				HeaderOrders: wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArray{
    					&wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs{
    						OversizeHandling: pulumi.String("string"),
    					},
    				},
    				Headers: wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArray{
    					&wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs{
    						MatchScope:       pulumi.String("string"),
    						OversizeHandling: pulumi.String("string"),
    						MatchPattern: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs{},
    							ExcludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Ja3Fingerprint: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				Ja4Fingerprint: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				JsonBody: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs{
    					MatchScope:              pulumi.String("string"),
    					InvalidFallbackBehavior: pulumi.String("string"),
    					MatchPattern: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs{
    						All: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    						IncludedPaths: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					OversizeHandling: pulumi.String("string"),
    				},
    				Method:      &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs{},
    				QueryString: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs{},
    				SingleHeader: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs{
    					Name: pulumi.String("string"),
    				},
    				SingleQueryArgument: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs{
    					Name: pulumi.String("string"),
    				},
    				UriFragment: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				UriPath: &wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs{},
    			},
    			TextTransformations: wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArray{
    				&wafv2.WebAclRuleStatementRegexPatternSetReferenceStatementTextTransformationArgs{
    					Priority: pulumi.Int(0),
    					Type:     pulumi.String("string"),
    				},
    			},
    		},
    		RuleGroupReferenceStatement: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementArgs{
    			Arn: pulumi.String("string"),
    			ExcludedRules: wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArray{
    				&wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs{
    					Name: pulumi.String("string"),
    				},
    			},
    			RuleActionOverrides: wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArray{
    				&wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideArgs{
    					Name: pulumi.String("string"),
    					ActionToUse: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseArgs{
    						Allow: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Block: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockArgs{
    							CustomResponse: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseArgs{
    								ResponseCode:          pulumi.Int(0),
    								CustomResponseBodyKey: pulumi.String("string"),
    								ResponseHeaders: wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArray{
    									&wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Captcha: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Challenge: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    						Count: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountArgs{
    							CustomRequestHandling: &wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs{
    								InsertHeaders: wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArray{
    									&wafv2.WebAclRuleStatementRuleGroupReferenceStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs{
    										Name:  pulumi.String("string"),
    										Value: pulumi.String("string"),
    									},
    								},
    							},
    						},
    					},
    				},
    			},
    		},
    		SizeConstraintStatement: &wafv2.WebAclRuleStatementSizeConstraintStatementArgs{
    			ComparisonOperator: pulumi.String("string"),
    			Size:               pulumi.Int(0),
    			FieldToMatch: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchArgs{
    				AllQueryArguments: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs{},
    				Body: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchBodyArgs{
    					OversizeHandling: pulumi.String("string"),
    				},
    				Cookies: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesArgs{
    					MatchScope:       pulumi.String("string"),
    					OversizeHandling: pulumi.String("string"),
    					MatchPatterns: wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArray{
    						&wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs{},
    							ExcludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				HeaderOrders: wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderOrderArray{
    					&wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs{
    						OversizeHandling: pulumi.String("string"),
    					},
    				},
    				Headers: wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderArray{
    					&wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderArgs{
    						MatchScope:       pulumi.String("string"),
    						OversizeHandling: pulumi.String("string"),
    						MatchPattern: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs{},
    							ExcludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Ja3Fingerprint: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				Ja4Fingerprint: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				JsonBody: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyArgs{
    					MatchScope:              pulumi.String("string"),
    					InvalidFallbackBehavior: pulumi.String("string"),
    					MatchPattern: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs{
    						All: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    						IncludedPaths: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					OversizeHandling: pulumi.String("string"),
    				},
    				Method:      &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchMethodArgs{},
    				QueryString: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchQueryStringArgs{},
    				SingleHeader: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs{
    					Name: pulumi.String("string"),
    				},
    				SingleQueryArgument: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs{
    					Name: pulumi.String("string"),
    				},
    				UriFragment: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchUriFragmentArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				UriPath: &wafv2.WebAclRuleStatementSizeConstraintStatementFieldToMatchUriPathArgs{},
    			},
    			TextTransformations: wafv2.WebAclRuleStatementSizeConstraintStatementTextTransformationArray{
    				&wafv2.WebAclRuleStatementSizeConstraintStatementTextTransformationArgs{
    					Priority: pulumi.Int(0),
    					Type:     pulumi.String("string"),
    				},
    			},
    		},
    		SqliMatchStatement: &wafv2.WebAclRuleStatementSqliMatchStatementArgs{
    			FieldToMatch: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchArgs{
    				AllQueryArguments: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    				Body: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchBodyArgs{
    					OversizeHandling: pulumi.String("string"),
    				},
    				Cookies: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesArgs{
    					MatchScope:       pulumi.String("string"),
    					OversizeHandling: pulumi.String("string"),
    					MatchPatterns: wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArray{
    						&wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    							ExcludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				HeaderOrders: wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderOrderArray{
    					&wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderOrderArgs{
    						OversizeHandling: pulumi.String("string"),
    					},
    				},
    				Headers: wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderArray{
    					&wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderArgs{
    						MatchScope:       pulumi.String("string"),
    						OversizeHandling: pulumi.String("string"),
    						MatchPattern: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    							ExcludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Ja3Fingerprint: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				Ja4Fingerprint: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				JsonBody: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyArgs{
    					MatchScope:              pulumi.String("string"),
    					InvalidFallbackBehavior: pulumi.String("string"),
    					MatchPattern: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    						All: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    						IncludedPaths: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					OversizeHandling: pulumi.String("string"),
    				},
    				Method:      &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchMethodArgs{},
    				QueryString: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchQueryStringArgs{},
    				SingleHeader: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchSingleHeaderArgs{
    					Name: pulumi.String("string"),
    				},
    				SingleQueryArgument: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs{
    					Name: pulumi.String("string"),
    				},
    				UriFragment: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchUriFragmentArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				UriPath: &wafv2.WebAclRuleStatementSqliMatchStatementFieldToMatchUriPathArgs{},
    			},
    			SensitivityLevel: pulumi.String("string"),
    			TextTransformations: wafv2.WebAclRuleStatementSqliMatchStatementTextTransformationArray{
    				&wafv2.WebAclRuleStatementSqliMatchStatementTextTransformationArgs{
    					Priority: pulumi.Int(0),
    					Type:     pulumi.String("string"),
    				},
    			},
    		},
    		XssMatchStatement: &wafv2.WebAclRuleStatementXssMatchStatementArgs{
    			FieldToMatch: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchArgs{
    				AllQueryArguments: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs{},
    				Body: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchBodyArgs{
    					OversizeHandling: pulumi.String("string"),
    				},
    				Cookies: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesArgs{
    					MatchScope:       pulumi.String("string"),
    					OversizeHandling: pulumi.String("string"),
    					MatchPatterns: wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArray{
    						&wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs{},
    							ExcludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedCookies: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				HeaderOrders: wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderOrderArray{
    					&wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderOrderArgs{
    						OversizeHandling: pulumi.String("string"),
    					},
    				},
    				Headers: wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderArray{
    					&wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderArgs{
    						MatchScope:       pulumi.String("string"),
    						OversizeHandling: pulumi.String("string"),
    						MatchPattern: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs{
    							All: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs{},
    							ExcludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    							IncludedHeaders: pulumi.StringArray{
    								pulumi.String("string"),
    							},
    						},
    					},
    				},
    				Ja3Fingerprint: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchJa3FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				Ja4Fingerprint: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchJa4FingerprintArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				JsonBody: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyArgs{
    					MatchScope:              pulumi.String("string"),
    					InvalidFallbackBehavior: pulumi.String("string"),
    					MatchPattern: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs{
    						All: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs{},
    						IncludedPaths: pulumi.StringArray{
    							pulumi.String("string"),
    						},
    					},
    					OversizeHandling: pulumi.String("string"),
    				},
    				Method:      &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchMethodArgs{},
    				QueryString: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchQueryStringArgs{},
    				SingleHeader: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchSingleHeaderArgs{
    					Name: pulumi.String("string"),
    				},
    				SingleQueryArgument: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs{
    					Name: pulumi.String("string"),
    				},
    				UriFragment: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchUriFragmentArgs{
    					FallbackBehavior: pulumi.String("string"),
    				},
    				UriPath: &wafv2.WebAclRuleStatementXssMatchStatementFieldToMatchUriPathArgs{},
    			},
    			TextTransformations: wafv2.WebAclRuleStatementXssMatchStatementTextTransformationArray{
    				&wafv2.WebAclRuleStatementXssMatchStatementTextTransformationArgs{
    					Priority: pulumi.Int(0),
    					Type:     pulumi.String("string"),
    				},
    			},
    		},
    	},
    	Timeouts: &wafv2.WebAclRuleTimeoutsArgs{
    		Create: pulumi.String("string"),
    		Delete: pulumi.String("string"),
    		Update: pulumi.String("string"),
    	},
    	VisibilityConfig: &wafv2.WebAclRuleVisibilityConfigArgs{
    		CloudwatchMetricsEnabled: pulumi.Bool(false),
    		MetricName:               pulumi.String("string"),
    		SampledRequestsEnabled:   pulumi.Bool(false),
    	},
    })
    
    var webAclRuleResource = new WebAclRule("webAclRuleResource", WebAclRuleArgs.builder()
        .priority(0)
        .webAclArn("string")
        .action(WebAclRuleActionArgs.builder()
            .allow(WebAclRuleActionAllowArgs.builder()
                .customRequestHandling(WebAclRuleActionAllowCustomRequestHandlingArgs.builder()
                    .insertHeaders(WebAclRuleActionAllowCustomRequestHandlingInsertHeaderArgs.builder()
                        .name("string")
                        .value("string")
                        .build())
                    .build())
                .build())
            .block(WebAclRuleActionBlockArgs.builder()
                .customResponse(WebAclRuleActionBlockCustomResponseArgs.builder()
                    .responseCode(0)
                    .customResponseBodyKey("string")
                    .responseHeaders(WebAclRuleActionBlockCustomResponseResponseHeaderArgs.builder()
                        .name("string")
                        .value("string")
                        .build())
                    .build())
                .build())
            .captcha(WebAclRuleActionCaptchaArgs.builder()
                .customRequestHandling(WebAclRuleActionCaptchaCustomRequestHandlingArgs.builder()
                    .insertHeaders(WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs.builder()
                        .name("string")
                        .value("string")
                        .build())
                    .build())
                .build())
            .challenge(WebAclRuleActionChallengeArgs.builder()
                .customRequestHandling(WebAclRuleActionChallengeCustomRequestHandlingArgs.builder()
                    .insertHeaders(WebAclRuleActionChallengeCustomRequestHandlingInsertHeaderArgs.builder()
                        .name("string")
                        .value("string")
                        .build())
                    .build())
                .build())
            .count(WebAclRuleActionCountArgs.builder()
                .customRequestHandling(WebAclRuleActionCountCustomRequestHandlingArgs.builder()
                    .insertHeaders(WebAclRuleActionCountCustomRequestHandlingInsertHeaderArgs.builder()
                        .name("string")
                        .value("string")
                        .build())
                    .build())
                .build())
            .build())
        .captchaConfig(WebAclRuleCaptchaConfigArgs.builder()
            .immunityTimeProperty(WebAclRuleCaptchaConfigImmunityTimePropertyArgs.builder()
                .immunityTime(0)
                .build())
            .build())
        .challengeConfig(WebAclRuleChallengeConfigArgs.builder()
            .immunityTimeProperty(WebAclRuleChallengeConfigImmunityTimePropertyArgs.builder()
                .immunityTime(0)
                .build())
            .build())
        .name("string")
        .overrideAction(WebAclRuleOverrideActionArgs.builder()
            .count(WebAclRuleOverrideActionCountArgs.builder()
                .build())
            .none(WebAclRuleOverrideActionNoneArgs.builder()
                .build())
            .build())
        .region("string")
        .ruleLabels(WebAclRuleRuleLabelArgs.builder()
            .name("string")
            .build())
        .statement(WebAclRuleStatementArgs.builder()
            .andStatement(Map.of("statements", webAclRuleStatement))
            .asnMatchStatement(WebAclRuleStatementAsnMatchStatementArgs.builder()
                .asnLists(0)
                .forwardedIpConfig(WebAclRuleStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                    .fallbackBehavior("string")
                    .headerName("string")
                    .build())
                .build())
            .byteMatchStatement(WebAclRuleStatementByteMatchStatementArgs.builder()
                .positionalConstraint("string")
                .searchString("string")
                .fieldToMatch(WebAclRuleStatementByteMatchStatementFieldToMatchArgs.builder()
                    .allQueryArguments(WebAclRuleStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                        .build())
                    .body(WebAclRuleStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                        .oversizeHandling("string")
                        .build())
                    .cookies(WebAclRuleStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                        .matchScope("string")
                        .oversizeHandling("string")
                        .matchPatterns(WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                            .all(WebAclRuleStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                .build())
                            .excludedCookies("string")
                            .includedCookies("string")
                            .build())
                        .build())
                    .headerOrders(WebAclRuleStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                        .oversizeHandling("string")
                        .build())
                    .headers(WebAclRuleStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                        .matchScope("string")
                        .oversizeHandling("string")
                        .matchPattern(WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                            .all(WebAclRuleStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                .build())
                            .excludedHeaders("string")
                            .includedHeaders("string")
                            .build())
                        .build())
                    .ja3Fingerprint(WebAclRuleStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                        .fallbackBehavior("string")
                        .build())
                    .ja4Fingerprint(WebAclRuleStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                        .fallbackBehavior("string")
                        .build())
                    .jsonBody(WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                        .matchScope("string")
                        .invalidFallbackBehavior("string")
                        .matchPattern(WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                            .all(WebAclRuleStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                .build())
                            .includedPaths("string")
                            .build())
                        .oversizeHandling("string")
                        .build())
                    .method(WebAclRuleStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                        .build())
                    .queryString(WebAclRuleStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                        .build())
                    .singleHeader(WebAclRuleStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                        .name("string")
                        .build())
                    .singleQueryArgument(WebAclRuleStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                        .name("string")
                        .build())
                    .uriFragment(WebAclRuleStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                        .fallbackBehavior("string")
                        .build())
                    .uriPath(WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                        .build())
                    .build())
                .textTransformations(WebAclRuleStatementByteMatchStatementTextTransformationArgs.builder()
                    .priority(0)
                    .type("string")
                    .build())
                .build())
            .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder()
                .countryCodes("string")
                .forwardedIpConfig(WebAclRuleStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                    .fallbackBehavior("string")
                    .headerName("string")
                    .build())
                .build())
            .ipSetReferenceStatement(WebAclRuleStatementIpSetReferenceStatementArgs.builder()
                .arn("string")
                .ipSetForwardedIpConfig(WebAclRuleStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                    .fallbackBehavior("string")
                    .headerName("string")
                    .position("string")
                    .build())
                .build())
            .labelMatchStatement(WebAclRuleStatementLabelMatchStatementArgs.builder()
                .key("string")
                .scope("string")
                .build())
            .managedRuleGroupStatement(WebAclRuleStatementManagedRuleGroupStatementArgs.builder()
                .name("string")
                .vendorName("string")
                .managedRuleGroupConfigs(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs.builder()
                    .awsManagedRulesAcfpRuleSet(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs.builder()
                        .creationPath("string")
                        .registrationPagePath("string")
                        .enableRegexInPath(false)
                        .requestInspection(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs.builder()
                            .payloadType("string")
                            .addressFields(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs.builder()
                                .identifiers("string")
                                .build())
                            .emailField(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.builder()
                                .identifier("string")
                                .build())
                            .passwordField(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                .identifier("string")
                                .build())
                            .phoneNumberFields(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs.builder()
                                .identifiers("string")
                                .build())
                            .usernameField(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                .identifier("string")
                                .build())
                            .build())
                        .responseInspection(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs.builder()
                            .bodyContains(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs.builder()
                                .failureStrings("string")
                                .successStrings("string")
                                .build())
                            .header(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs.builder()
                                .failureValues("string")
                                .name("string")
                                .successValues("string")
                                .build())
                            .json(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs.builder()
                                .failureValues("string")
                                .identifier("string")
                                .successValues("string")
                                .build())
                            .statusCode(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs.builder()
                                .failureCodes(0)
                                .successCodes(0)
                                .build())
                            .build())
                        .build())
                    .awsManagedRulesAntiDdosRuleSet(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs.builder()
                        .clientSideActionConfig(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs.builder()
                            .challenge(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs.builder()
                                .usageOfAction("string")
                                .exemptUriRegularExpressions(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs.builder()
                                    .regexString("string")
                                    .build())
                                .sensitivity("string")
                                .build())
                            .build())
                        .sensitivityToBlock("string")
                        .build())
                    .awsManagedRulesAtpRuleSet(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs.builder()
                        .loginPath("string")
                        .enableRegexInPath(false)
                        .requestInspection(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs.builder()
                            .payloadType("string")
                            .passwordField(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                .identifier("string")
                                .build())
                            .usernameField(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                .identifier("string")
                                .build())
                            .build())
                        .responseInspection(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs.builder()
                            .bodyContains(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs.builder()
                                .failureStrings("string")
                                .successStrings("string")
                                .build())
                            .header(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs.builder()
                                .failureValues("string")
                                .name("string")
                                .successValues("string")
                                .build())
                            .json(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs.builder()
                                .failureValues("string")
                                .identifier("string")
                                .successValues("string")
                                .build())
                            .statusCode(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs.builder()
                                .failureCodes(0)
                                .successCodes(0)
                                .build())
                            .build())
                        .build())
                    .awsManagedRulesBotControlRuleSet(WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.builder()
                        .inspectionLevel("string")
                        .enableMachineLearning(false)
                        .build())
                    .build())
                .ruleActionOverrides(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgs.builder()
                    .name("string")
                    .actionToUse(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.builder()
                        .allow(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs.builder()
                            .customRequestHandling(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs.builder()
                                .insertHeaders(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs.builder()
                                    .name("string")
                                    .value("string")
                                    .build())
                                .build())
                            .build())
                        .block(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs.builder()
                            .customResponse(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs.builder()
                                .responseCode(0)
                                .customResponseBodyKey("string")
                                .responseHeaders(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs.builder()
                                    .name("string")
                                    .value("string")
                                    .build())
                                .build())
                            .build())
                        .captcha(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs.builder()
                            .customRequestHandling(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs.builder()
                                .insertHeaders(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs.builder()
                                    .name("string")
                                    .value("string")
                                    .build())
                                .build())
                            .build())
                        .challenge(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs.builder()
                            .customRequestHandling(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs.builder()
                                .insertHeaders(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs.builder()
                                    .name("string")
                                    .value("string")
                                    .build())
                                .build())
                            .build())
                        .count(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs.builder()
                            .customRequestHandling(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs.builder()
                                .insertHeaders(WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs.builder()
                                    .name("string")
                                    .value("string")
                                    .build())
                                .build())
                            .build())
                        .build())
                    .build())
                .scopeDownStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs.builder()
                    .asnMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs.builder()
                        .asnLists(0)
                        .forwardedIpConfig(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                            .fallbackBehavior("string")
                            .headerName("string")
                            .build())
                        .build())
                    .byteMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs.builder()
                        .positionalConstraint("string")
                        .searchString("string")
                        .fieldToMatch(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs.builder()
                            .allQueryArguments(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                .build())
                            .body(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .cookies(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPatterns(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedCookies("string")
                                    .includedCookies("string")
                                    .build())
                                .build())
                            .headerOrders(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .headers(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedHeaders("string")
                                    .includedHeaders("string")
                                    .build())
                                .build())
                            .ja3Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .ja4Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .jsonBody(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                                .matchScope("string")
                                .invalidFallbackBehavior("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                        .build())
                                    .includedPaths("string")
                                    .build())
                                .oversizeHandling("string")
                                .build())
                            .method(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                                .build())
                            .queryString(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                                .build())
                            .singleHeader(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                .name("string")
                                .build())
                            .singleQueryArgument(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                .name("string")
                                .build())
                            .uriFragment(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .uriPath(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                .build())
                            .build())
                        .textTransformations(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs.builder()
                            .priority(0)
                            .type("string")
                            .build())
                        .build())
                    .geoMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs.builder()
                        .countryCodes("string")
                        .forwardedIpConfig(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                            .fallbackBehavior("string")
                            .headerName("string")
                            .build())
                        .build())
                    .ipSetReferenceStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs.builder()
                        .arn("string")
                        .ipSetForwardedIpConfig(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                            .fallbackBehavior("string")
                            .headerName("string")
                            .position("string")
                            .build())
                        .build())
                    .labelMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs.builder()
                        .key("string")
                        .scope("string")
                        .build())
                    .regexMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs.builder()
                        .regexString("string")
                        .fieldToMatch(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs.builder()
                            .allQueryArguments(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                .build())
                            .body(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .cookies(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPatterns(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedCookies("string")
                                    .includedCookies("string")
                                    .build())
                                .build())
                            .headerOrders(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .headers(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedHeaders("string")
                                    .includedHeaders("string")
                                    .build())
                                .build())
                            .ja3Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .ja4Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .jsonBody(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs.builder()
                                .matchScope("string")
                                .invalidFallbackBehavior("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                        .build())
                                    .includedPaths("string")
                                    .build())
                                .oversizeHandling("string")
                                .build())
                            .method(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs.builder()
                                .build())
                            .queryString(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs.builder()
                                .build())
                            .singleHeader(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                .name("string")
                                .build())
                            .singleQueryArgument(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                .name("string")
                                .build())
                            .uriFragment(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .uriPath(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs.builder()
                                .build())
                            .build())
                        .textTransformations(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs.builder()
                            .priority(0)
                            .type("string")
                            .build())
                        .build())
                    .regexPatternSetReferenceStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs.builder()
                        .arn("string")
                        .fieldToMatch(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs.builder()
                            .allQueryArguments(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                .build())
                            .body(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .cookies(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPatterns(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedCookies("string")
                                    .includedCookies("string")
                                    .build())
                                .build())
                            .headerOrders(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .headers(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedHeaders("string")
                                    .includedHeaders("string")
                                    .build())
                                .build())
                            .ja3Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .ja4Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .jsonBody(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs.builder()
                                .matchScope("string")
                                .invalidFallbackBehavior("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                        .build())
                                    .includedPaths("string")
                                    .build())
                                .oversizeHandling("string")
                                .build())
                            .method(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs.builder()
                                .build())
                            .queryString(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs.builder()
                                .build())
                            .singleHeader(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs.builder()
                                .name("string")
                                .build())
                            .singleQueryArgument(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                .name("string")
                                .build())
                            .uriFragment(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .uriPath(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs.builder()
                                .build())
                            .build())
                        .textTransformations(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs.builder()
                            .priority(0)
                            .type("string")
                            .build())
                        .build())
                    .sizeConstraintStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs.builder()
                        .comparisonOperator("string")
                        .size(0)
                        .fieldToMatch(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs.builder()
                            .allQueryArguments(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                .build())
                            .body(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .cookies(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPatterns(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedCookies("string")
                                    .includedCookies("string")
                                    .build())
                                .build())
                            .headerOrders(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .headers(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedHeaders("string")
                                    .includedHeaders("string")
                                    .build())
                                .build())
                            .ja3Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .ja4Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .jsonBody(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs.builder()
                                .matchScope("string")
                                .invalidFallbackBehavior("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                        .build())
                                    .includedPaths("string")
                                    .build())
                                .oversizeHandling("string")
                                .build())
                            .method(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs.builder()
                                .build())
                            .queryString(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs.builder()
                                .build())
                            .singleHeader(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs.builder()
                                .name("string")
                                .build())
                            .singleQueryArgument(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                .name("string")
                                .build())
                            .uriFragment(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .uriPath(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs.builder()
                                .build())
                            .build())
                        .textTransformations(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs.builder()
                            .priority(0)
                            .type("string")
                            .build())
                        .build())
                    .sqliMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs.builder()
                        .fieldToMatch(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs.builder()
                            .allQueryArguments(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                .build())
                            .body(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .cookies(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPatterns(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedCookies("string")
                                    .includedCookies("string")
                                    .build())
                                .build())
                            .headerOrders(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .headers(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedHeaders("string")
                                    .includedHeaders("string")
                                    .build())
                                .build())
                            .ja3Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .ja4Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .jsonBody(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs.builder()
                                .matchScope("string")
                                .invalidFallbackBehavior("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                        .build())
                                    .includedPaths("string")
                                    .build())
                                .oversizeHandling("string")
                                .build())
                            .method(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs.builder()
                                .build())
                            .queryString(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs.builder()
                                .build())
                            .singleHeader(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                .name("string")
                                .build())
                            .singleQueryArgument(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                .name("string")
                                .build())
                            .uriFragment(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .uriPath(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs.builder()
                                .build())
                            .build())
                        .sensitivityLevel("string")
                        .textTransformations(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs.builder()
                            .priority(0)
                            .type("string")
                            .build())
                        .build())
                    .xssMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs.builder()
                        .fieldToMatch(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs.builder()
                            .allQueryArguments(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                .build())
                            .body(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .cookies(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPatterns(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedCookies("string")
                                    .includedCookies("string")
                                    .build())
                                .build())
                            .headerOrders(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                .oversizeHandling("string")
                                .build())
                            .headers(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs.builder()
                                .matchScope("string")
                                .oversizeHandling("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                        .build())
                                    .excludedHeaders("string")
                                    .includedHeaders("string")
                                    .build())
                                .build())
                            .ja3Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .ja4Fingerprint(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .jsonBody(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs.builder()
                                .matchScope("string")
                                .invalidFallbackBehavior("string")
                                .matchPattern(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                    .all(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                        .build())
                                    .includedPaths("string")
                                    .build())
                                .oversizeHandling("string")
                                .build())
                            .method(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs.builder()
                                .build())
                            .queryString(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs.builder()
                                .build())
                            .singleHeader(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                .name("string")
                                .build())
                            .singleQueryArgument(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                .name("string")
                                .build())
                            .uriFragment(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs.builder()
                                .fallbackBehavior("string")
                                .build())
                            .uriPath(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs.builder()
                                .build())
                            .build())
                        .textTransformations(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs.builder()
                            .priority(0)
                            .type("string")
                            .build())
                        .build())
                    .build())
                .version("string")
                .build())
            .notStatement(Map.of("statement", Map.ofEntries(
                Map.entry("andStatement", Map.of("statements", webAclRuleStatement)),
                Map.entry("asnMatchStatement", WebAclRuleStatementNotStatementStatementAsnMatchStatementArgs.builder()
                    .asnLists(0)
                    .forwardedIpConfig(WebAclRuleStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                        .fallbackBehavior("string")
                        .headerName("string")
                        .build())
                    .build()),
                Map.entry("byteMatchStatement", WebAclRuleStatementNotStatementStatementByteMatchStatementArgs.builder()
                    .positionalConstraint("string")
                    .searchString("string")
                    .fieldToMatch(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchArgs.builder()
                        .allQueryArguments(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                            .build())
                        .body(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                            .oversizeHandling("string")
                            .build())
                        .cookies(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                            .matchScope("string")
                            .oversizeHandling("string")
                            .matchPatterns(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                .all(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                    .build())
                                .excludedCookies("string")
                                .includedCookies("string")
                                .build())
                            .build())
                        .headerOrders(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                            .oversizeHandling("string")
                            .build())
                        .headers(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                            .matchScope("string")
                            .oversizeHandling("string")
                            .matchPattern(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                .all(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                    .build())
                                .excludedHeaders("string")
                                .includedHeaders("string")
                                .build())
                            .build())
                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                            .fallbackBehavior("string")
                            .build())
                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                            .fallbackBehavior("string")
                            .build())
                        .jsonBody(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                            .matchScope("string")
                            .invalidFallbackBehavior("string")
                            .matchPattern(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                .all(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                    .build())
                                .includedPaths("string")
                                .build())
                            .oversizeHandling("string")
                            .build())
                        .method(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                            .build())
                        .queryString(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                            .build())
                        .singleHeader(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                            .name("string")
                            .build())
                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                            .name("string")
                            .build())
                        .uriFragment(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                            .fallbackBehavior("string")
                            .build())
                        .uriPath(WebAclRuleStatementNotStatementStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                            .build())
                        .build())
                    .textTransformations(WebAclRuleStatementNotStatementStatementByteMatchStatementTextTransformationArgs.builder()
                        .priority(0)
                        .type("string")
                        .build())
                    .build()),
                Map.entry("geoMatchStatement", WebAclRuleStatementNotStatementStatementGeoMatchStatementArgs.builder()
                    .countryCodes("string")
                    .forwardedIpConfig(WebAclRuleStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                        .fallbackBehavior("string")
                        .headerName("string")
                        .build())
                    .build()),
                Map.entry("ipSetReferenceStatement", WebAclRuleStatementNotStatementStatementIpSetReferenceStatementArgs.builder()
                    .arn("string")
                    .ipSetForwardedIpConfig(WebAclRuleStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                        .fallbackBehavior("string")
                        .headerName("string")
                        .position("string")
                        .build())
                    .build()),
                Map.entry("labelMatchStatement", WebAclRuleStatementNotStatementStatementLabelMatchStatementArgs.builder()
                    .key("string")
                    .scope("string")
                    .build()),
                Map.entry("managedRuleGroupStatement", WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementArgs.builder()
                    .name("string")
                    .vendorName("string")
                    .managedRuleGroupConfigs(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs.builder()
                        .awsManagedRulesAcfpRuleSet(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs.builder()
                            .creationPath("string")
                            .registrationPagePath("string")
                            .enableRegexInPath(false)
                            .requestInspection(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs.builder()
                                .payloadType("string")
                                .addressFields(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs.builder()
                                    .identifiers("string")
                                    .build())
                                .emailField(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.builder()
                                    .identifier("string")
                                    .build())
                                .passwordField(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                    .identifier("string")
                                    .build())
                                .phoneNumberFields(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs.builder()
                                    .identifiers("string")
                                    .build())
                                .usernameField(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                    .identifier("string")
                                    .build())
                                .build())
                            .responseInspection(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs.builder()
                                .bodyContains(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs.builder()
                                    .failureStrings("string")
                                    .successStrings("string")
                                    .build())
                                .header(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs.builder()
                                    .failureValues("string")
                                    .name("string")
                                    .successValues("string")
                                    .build())
                                .json(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs.builder()
                                    .failureValues("string")
                                    .identifier("string")
                                    .successValues("string")
                                    .build())
                                .statusCode(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs.builder()
                                    .failureCodes(0)
                                    .successCodes(0)
                                    .build())
                                .build())
                            .build())
                        .awsManagedRulesAntiDdosRuleSet(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs.builder()
                            .clientSideActionConfig(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs.builder()
                                .challenge(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs.builder()
                                    .usageOfAction("string")
                                    .exemptUriRegularExpressions(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs.builder()
                                        .regexString("string")
                                        .build())
                                    .sensitivity("string")
                                    .build())
                                .build())
                            .sensitivityToBlock("string")
                            .build())
                        .awsManagedRulesAtpRuleSet(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs.builder()
                            .loginPath("string")
                            .enableRegexInPath(false)
                            .requestInspection(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs.builder()
                                .payloadType("string")
                                .passwordField(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                    .identifier("string")
                                    .build())
                                .usernameField(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                    .identifier("string")
                                    .build())
                                .build())
                            .responseInspection(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs.builder()
                                .bodyContains(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs.builder()
                                    .failureStrings("string")
                                    .successStrings("string")
                                    .build())
                                .header(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs.builder()
                                    .failureValues("string")
                                    .name("string")
                                    .successValues("string")
                                    .build())
                                .json(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs.builder()
                                    .failureValues("string")
                                    .identifier("string")
                                    .successValues("string")
                                    .build())
                                .statusCode(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs.builder()
                                    .failureCodes(0)
                                    .successCodes(0)
                                    .build())
                                .build())
                            .build())
                        .awsManagedRulesBotControlRuleSet(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.builder()
                            .inspectionLevel("string")
                            .enableMachineLearning(false)
                            .build())
                        .build())
                    .ruleActionOverrides(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs.builder()
                        .name("string")
                        .actionToUse(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.builder()
                            .allow(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs.builder()
                                .customRequestHandling(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs.builder()
                                    .insertHeaders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs.builder()
                                        .name("string")
                                        .value("string")
                                        .build())
                                    .build())
                                .build())
                            .block(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs.builder()
                                .customResponse(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs.builder()
                                    .responseCode(0)
                                    .customResponseBodyKey("string")
                                    .responseHeaders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs.builder()
                                        .name("string")
                                        .value("string")
                                        .build())
                                    .build())
                                .build())
                            .captcha(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs.builder()
                                .customRequestHandling(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs.builder()
                                    .insertHeaders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs.builder()
                                        .name("string")
                                        .value("string")
                                        .build())
                                    .build())
                                .build())
                            .challenge(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs.builder()
                                .customRequestHandling(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs.builder()
                                    .insertHeaders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs.builder()
                                        .name("string")
                                        .value("string")
                                        .build())
                                    .build())
                                .build())
                            .count(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs.builder()
                                .customRequestHandling(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs.builder()
                                    .insertHeaders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs.builder()
                                        .name("string")
                                        .value("string")
                                        .build())
                                    .build())
                                .build())
                            .build())
                        .build())
                    .scopeDownStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs.builder()
                        .asnMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs.builder()
                            .asnLists(0)
                            .forwardedIpConfig(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                                .fallbackBehavior("string")
                                .headerName("string")
                                .build())
                            .build())
                        .byteMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs.builder()
                            .positionalConstraint("string")
                            .searchString("string")
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .textTransformations(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build())
                        .geoMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs.builder()
                            .countryCodes("string")
                            .forwardedIpConfig(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                                .fallbackBehavior("string")
                                .headerName("string")
                                .build())
                            .build())
                        .ipSetReferenceStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs.builder()
                            .arn("string")
                            .ipSetForwardedIpConfig(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                                .fallbackBehavior("string")
                                .headerName("string")
                                .position("string")
                                .build())
                            .build())
                        .labelMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs.builder()
                            .key("string")
                            .scope("string")
                            .build())
                        .regexMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs.builder()
                            .regexString("string")
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .textTransformations(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build())
                        .regexPatternSetReferenceStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs.builder()
                            .arn("string")
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .textTransformations(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build())
                        .sizeConstraintStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs.builder()
                            .comparisonOperator("string")
                            .size(0)
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .textTransformations(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build())
                        .sqliMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs.builder()
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .sensitivityLevel("string")
                            .textTransformations(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build())
                        .xssMatchStatement(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs.builder()
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .textTransformations(WebAclRuleStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build())
                        .build())
                    .version("string")
                    .build()),
                Map.entry("notStatement", WebAclRuleStatementNotStatementStatementNotStatementArgs.builder()
                    .statement(Map.ofEntries(
                        Map.entry("andStatement", Map.of("statements", webAclRuleStatement)),
                        Map.entry("asnMatchStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementAsnMatchStatementArgs.builder()
                            .asnLists(0)
                            .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                                .fallbackBehavior("string")
                                .headerName("string")
                                .build())
                            .build()),
                        Map.entry("byteMatchStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementArgs.builder()
                            .positionalConstraint("string")
                            .searchString("string")
                            .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchArgs.builder()
                                .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                    .build())
                                .body(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedCookies("string")
                                        .includedCookies("string")
                                        .build())
                                    .build())
                                .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                    .oversizeHandling("string")
                                    .build())
                                .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                                    .matchScope("string")
                                    .oversizeHandling("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                            .build())
                                        .excludedHeaders("string")
                                        .includedHeaders("string")
                                        .build())
                                    .build())
                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                                    .matchScope("string")
                                    .invalidFallbackBehavior("string")
                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                            .build())
                                        .includedPaths("string")
                                        .build())
                                    .oversizeHandling("string")
                                    .build())
                                .method(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                                    .build())
                                .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                                    .build())
                                .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                    .name("string")
                                    .build())
                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                    .name("string")
                                    .build())
                                .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                                    .fallbackBehavior("string")
                                    .build())
                                .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                    .build())
                                .build())
                            .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArgs.builder()
                                .priority(0)
                                .type("string")
                                .build())
                            .build()),
                        Map.entry("geoMatchStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementGeoMatchStatementArgs.builder()
                            .countryCodes("string")
                            .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                                .fallbackBehavior("string")
                                .headerName("string")
                                .build())
                            .build()),
                        Map.entry("ipSetReferenceStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementArgs.builder()
                            .arn("string")
                            .ipSetForwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                                .fallbackBehavior("string")
                                .headerName("string")
                                .position("string")
                                .build())
                            .build()),
                        Map.entry("labelMatchStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementLabelMatchStatementArgs.builder()
                            .key("string")
                            .scope("string")
                            .build()),
                        Map.entry("managedRuleGroupStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementArgs.builder()
                            .name("string")
                            .vendorName("string")
                            .managedRuleGroupConfigs(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs.builder()
                                .awsManagedRulesAcfpRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs.builder()
                                    .creationPath("string")
                                    .registrationPagePath("string")
                                    .enableRegexInPath(false)
                                    .requestInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs.builder()
                                        .payloadType("string")
                                        .addressFields(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs.builder()
                                            .identifiers("string")
                                            .build())
                                        .emailField(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.builder()
                                            .identifier("string")
                                            .build())
                                        .passwordField(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                            .identifier("string")
                                            .build())
                                        .phoneNumberFields(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs.builder()
                                            .identifiers("string")
                                            .build())
                                        .usernameField(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                            .identifier("string")
                                            .build())
                                        .build())
                                    .responseInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs.builder()
                                        .bodyContains(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs.builder()
                                            .failureStrings("string")
                                            .successStrings("string")
                                            .build())
                                        .header(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs.builder()
                                            .failureValues("string")
                                            .name("string")
                                            .successValues("string")
                                            .build())
                                        .json(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs.builder()
                                            .failureValues("string")
                                            .identifier("string")
                                            .successValues("string")
                                            .build())
                                        .statusCode(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs.builder()
                                            .failureCodes(0)
                                            .successCodes(0)
                                            .build())
                                        .build())
                                    .build())
                                .awsManagedRulesAntiDdosRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs.builder()
                                    .clientSideActionConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs.builder()
                                        .challenge(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs.builder()
                                            .usageOfAction("string")
                                            .exemptUriRegularExpressions(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs.builder()
                                                .regexString("string")
                                                .build())
                                            .sensitivity("string")
                                            .build())
                                        .build())
                                    .sensitivityToBlock("string")
                                    .build())
                                .awsManagedRulesAtpRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs.builder()
                                    .loginPath("string")
                                    .enableRegexInPath(false)
                                    .requestInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs.builder()
                                        .payloadType("string")
                                        .passwordField(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                            .identifier("string")
                                            .build())
                                        .usernameField(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                            .identifier("string")
                                            .build())
                                        .build())
                                    .responseInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs.builder()
                                        .bodyContains(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs.builder()
                                            .failureStrings("string")
                                            .successStrings("string")
                                            .build())
                                        .header(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs.builder()
                                            .failureValues("string")
                                            .name("string")
                                            .successValues("string")
                                            .build())
                                        .json(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs.builder()
                                            .failureValues("string")
                                            .identifier("string")
                                            .successValues("string")
                                            .build())
                                        .statusCode(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs.builder()
                                            .failureCodes(0)
                                            .successCodes(0)
                                            .build())
                                        .build())
                                    .build())
                                .awsManagedRulesBotControlRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.builder()
                                    .inspectionLevel("string")
                                    .enableMachineLearning(false)
                                    .build())
                                .build())
                            .ruleActionOverrides(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs.builder()
                                .name("string")
                                .actionToUse(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.builder()
                                    .allow(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs.builder()
                                        .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs.builder()
                                            .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs.builder()
                                                .name("string")
                                                .value("string")
                                                .build())
                                            .build())
                                        .build())
                                    .block(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs.builder()
                                        .customResponse(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs.builder()
                                            .responseCode(0)
                                            .customResponseBodyKey("string")
                                            .responseHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs.builder()
                                                .name("string")
                                                .value("string")
                                                .build())
                                            .build())
                                        .build())
                                    .captcha(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs.builder()
                                        .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs.builder()
                                            .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs.builder()
                                                .name("string")
                                                .value("string")
                                                .build())
                                            .build())
                                        .build())
                                    .challenge(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs.builder()
                                        .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs.builder()
                                            .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs.builder()
                                                .name("string")
                                                .value("string")
                                                .build())
                                            .build())
                                        .build())
                                    .count(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs.builder()
                                        .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs.builder()
                                            .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs.builder()
                                                .name("string")
                                                .value("string")
                                                .build())
                                            .build())
                                        .build())
                                    .build())
                                .build())
                            .scopeDownStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs.builder()
                                .asnMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs.builder()
                                    .asnLists(0)
                                    .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                                        .fallbackBehavior("string")
                                        .headerName("string")
                                        .build())
                                    .build())
                                .byteMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs.builder()
                                    .positionalConstraint("string")
                                    .searchString("string")
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .geoMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs.builder()
                                    .countryCodes("string")
                                    .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                                        .fallbackBehavior("string")
                                        .headerName("string")
                                        .build())
                                    .build())
                                .ipSetReferenceStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs.builder()
                                    .arn("string")
                                    .ipSetForwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                                        .fallbackBehavior("string")
                                        .headerName("string")
                                        .position("string")
                                        .build())
                                    .build())
                                .labelMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs.builder()
                                    .key("string")
                                    .scope("string")
                                    .build())
                                .regexMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs.builder()
                                    .regexString("string")
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .regexPatternSetReferenceStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs.builder()
                                    .arn("string")
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .sizeConstraintStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs.builder()
                                    .comparisonOperator("string")
                                    .size(0)
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .sqliMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementArgs.builder()
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .sensitivityLevel("string")
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSqliMatchStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .xssMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementArgs.builder()
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementXssMatchStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .build())
                            .version("string")
                            .build()),
                        Map.entry("notStatement", WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementArgs.builder()
                            .statement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementArgs.builder()
                                .asnMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementAsnMatchStatementArgs.builder()
                                    .asnLists(0)
                                    .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                                        .fallbackBehavior("string")
                                        .headerName("string")
                                        .build())
                                    .build())
                                .byteMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementArgs.builder()
                                    .positionalConstraint("string")
                                    .searchString("string")
                                    .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchArgs.builder()
                                        .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                            .build())
                                        .body(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedCookies("string")
                                                .includedCookies("string")
                                                .build())
                                            .build())
                                        .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                            .oversizeHandling("string")
                                            .build())
                                        .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                                            .matchScope("string")
                                            .oversizeHandling("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                    .build())
                                                .excludedHeaders("string")
                                                .includedHeaders("string")
                                                .build())
                                            .build())
                                        .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                                            .matchScope("string")
                                            .invalidFallbackBehavior("string")
                                            .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                    .build())
                                                .includedPaths("string")
                                                .build())
                                            .oversizeHandling("string")
                                            .build())
                                        .method(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                                            .build())
                                        .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                                            .build())
                                        .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                            .name("string")
                                            .build())
                                        .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                            .name("string")
                                            .build())
                                        .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                                            .fallbackBehavior("string")
                                            .build())
                                        .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                            .build())
                                        .build())
                                    .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementByteMatchStatementTextTransformationArgs.builder()
                                        .priority(0)
                                        .type("string")
                                        .build())
                                    .build())
                                .geoMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementGeoMatchStatementArgs.builder()
                                    .countryCodes("string")
                                    .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                                        .fallbackBehavior("string")
                                        .headerName("string")
                                        .build())
                                    .build())
                                .ipSetReferenceStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementArgs.builder()
                                    .arn("string")
                                    .ipSetForwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                                        .fallbackBehavior("string")
                                        .headerName("string")
                                        .position("string")
                                        .build())
                                    .build())
                                .labelMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementLabelMatchStatementArgs.builder()
                                    .key("string")
                                    .scope("string")
                                    .build())
                                .managedRuleGroupStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementArgs.builder()
                                    .name("string")
                                    .vendorName("string")
                                    .managedRuleGroupConfigs(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs.builder()
                                        .awsManagedRulesAcfpRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetArgs.builder()
                                            .creationPath("string")
                                            .registrationPagePath("string")
                                            .enableRegexInPath(false)
                                            .requestInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionArgs.builder()
                                                .payloadType("string")
                                                .addressFields(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionAddressFieldsArgs.builder()
                                                    .identifiers("string")
                                                    .build())
                                                .emailField(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionEmailFieldArgs.builder()
                                                    .identifier("string")
                                                    .build())
                                                .passwordField(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                                    .identifier("string")
                                                    .build())
                                                .phoneNumberFields(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionPhoneNumberFieldsArgs.builder()
                                                    .identifiers("string")
                                                    .build())
                                                .usernameField(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                                    .identifier("string")
                                                    .build())
                                                .build())
                                            .responseInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionArgs.builder()
                                                .bodyContains(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionBodyContainsArgs.builder()
                                                    .failureStrings("string")
                                                    .successStrings("string")
                                                    .build())
                                                .header(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionHeaderArgs.builder()
                                                    .failureValues("string")
                                                    .name("string")
                                                    .successValues("string")
                                                    .build())
                                                .json(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionJsonArgs.builder()
                                                    .failureValues("string")
                                                    .identifier("string")
                                                    .successValues("string")
                                                    .build())
                                                .statusCode(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAcfpRuleSetResponseInspectionStatusCodeArgs.builder()
                                                    .failureCodes(0)
                                                    .successCodes(0)
                                                    .build())
                                                .build())
                                            .build())
                                        .awsManagedRulesAntiDdosRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetArgs.builder()
                                            .clientSideActionConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigArgs.builder()
                                                .challenge(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeArgs.builder()
                                                    .usageOfAction("string")
                                                    .exemptUriRegularExpressions(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAntiDdosRuleSetClientSideActionConfigChallengeExemptUriRegularExpressionArgs.builder()
                                                        .regexString("string")
                                                        .build())
                                                    .sensitivity("string")
                                                    .build())
                                                .build())
                                            .sensitivityToBlock("string")
                                            .build())
                                        .awsManagedRulesAtpRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetArgs.builder()
                                            .loginPath("string")
                                            .enableRegexInPath(false)
                                            .requestInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionArgs.builder()
                                                .payloadType("string")
                                                .passwordField(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionPasswordFieldArgs.builder()
                                                    .identifier("string")
                                                    .build())
                                                .usernameField(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetRequestInspectionUsernameFieldArgs.builder()
                                                    .identifier("string")
                                                    .build())
                                                .build())
                                            .responseInspection(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionArgs.builder()
                                                .bodyContains(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionBodyContainsArgs.builder()
                                                    .failureStrings("string")
                                                    .successStrings("string")
                                                    .build())
                                                .header(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionHeaderArgs.builder()
                                                    .failureValues("string")
                                                    .name("string")
                                                    .successValues("string")
                                                    .build())
                                                .json(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionJsonArgs.builder()
                                                    .failureValues("string")
                                                    .identifier("string")
                                                    .successValues("string")
                                                    .build())
                                                .statusCode(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesAtpRuleSetResponseInspectionStatusCodeArgs.builder()
                                                    .failureCodes(0)
                                                    .successCodes(0)
                                                    .build())
                                                .build())
                                            .build())
                                        .awsManagedRulesBotControlRuleSet(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementManagedRuleGroupConfigAwsManagedRulesBotControlRuleSetArgs.builder()
                                            .inspectionLevel("string")
                                            .enableMachineLearning(false)
                                            .build())
                                        .build())
                                    .ruleActionOverrides(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideArgs.builder()
                                        .name("string")
                                        .actionToUse(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseArgs.builder()
                                            .allow(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowArgs.builder()
                                                .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingArgs.builder()
                                                    .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseAllowCustomRequestHandlingInsertHeaderArgs.builder()
                                                        .name("string")
                                                        .value("string")
                                                        .build())
                                                    .build())
                                                .build())
                                            .block(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockArgs.builder()
                                                .customResponse(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseArgs.builder()
                                                    .responseCode(0)
                                                    .customResponseBodyKey("string")
                                                    .responseHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseBlockCustomResponseResponseHeaderArgs.builder()
                                                        .name("string")
                                                        .value("string")
                                                        .build())
                                                    .build())
                                                .build())
                                            .captcha(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaArgs.builder()
                                                .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingArgs.builder()
                                                    .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCaptchaCustomRequestHandlingInsertHeaderArgs.builder()
                                                        .name("string")
                                                        .value("string")
                                                        .build())
                                                    .build())
                                                .build())
                                            .challenge(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeArgs.builder()
                                                .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingArgs.builder()
                                                    .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseChallengeCustomRequestHandlingInsertHeaderArgs.builder()
                                                        .name("string")
                                                        .value("string")
                                                        .build())
                                                    .build())
                                                .build())
                                            .count(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountArgs.builder()
                                                .customRequestHandling(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingArgs.builder()
                                                    .insertHeaders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementRuleActionOverrideActionToUseCountCustomRequestHandlingInsertHeaderArgs.builder()
                                                        .name("string")
                                                        .value("string")
                                                        .build())
                                                    .build())
                                                .build())
                                            .build())
                                        .build())
                                    .scopeDownStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementArgs.builder()
                                        .asnMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementArgs.builder()
                                            .asnLists(0)
                                            .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementAsnMatchStatementForwardedIpConfigArgs.builder()
                                                .fallbackBehavior("string")
                                                .headerName("string")
                                                .build())
                                            .build())
                                        .byteMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementArgs.builder()
                                            .positionalConstraint("string")
                                            .searchString("string")
                                            .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchArgs.builder()
                                                .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                                    .build())
                                                .body(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchBodyArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedCookies("string")
                                                        .includedCookies("string")
                                                        .build())
                                                    .build())
                                                .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedHeaders("string")
                                                        .includedHeaders("string")
                                                        .build())
                                                    .build())
                                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyArgs.builder()
                                                    .matchScope("string")
                                                    .invalidFallbackBehavior("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                            .build())
                                                        .includedPaths("string")
                                                        .build())
                                                    .oversizeHandling("string")
                                                    .build())
                                                .method(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchMethodArgs.builder()
                                                    .build())
                                                .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchQueryStringArgs.builder()
                                                    .build())
                                                .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                                    .name("string")
                                                    .build())
                                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                                    .name("string")
                                                    .build())
                                                .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriFragmentArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementFieldToMatchUriPathArgs.builder()
                                                    .build())
                                                .build())
                                            .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementByteMatchStatementTextTransformationArgs.builder()
                                                .priority(0)
                                                .type("string")
                                                .build())
                                            .build())
                                        .geoMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs.builder()
                                            .countryCodes("string")
                                            .forwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementForwardedIpConfigArgs.builder()
                                                .fallbackBehavior("string")
                                                .headerName("string")
                                                .build())
                                            .build())
                                        .ipSetReferenceStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementArgs.builder()
                                            .arn("string")
                                            .ipSetForwardedIpConfig(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementIpSetReferenceStatementIpSetForwardedIpConfigArgs.builder()
                                                .fallbackBehavior("string")
                                                .headerName("string")
                                                .position("string")
                                                .build())
                                            .build())
                                        .labelMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementLabelMatchStatementArgs.builder()
                                            .key("string")
                                            .scope("string")
                                            .build())
                                        .regexMatchStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementArgs.builder()
                                            .regexString("string")
                                            .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchArgs.builder()
                                                .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                                    .build())
                                                .body(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchBodyArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedCookies("string")
                                                        .includedCookies("string")
                                                        .build())
                                                    .build())
                                                .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderOrderArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedHeaders("string")
                                                        .includedHeaders("string")
                                                        .build())
                                                    .build())
                                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa3FingerprintArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJa4FingerprintArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyArgs.builder()
                                                    .matchScope("string")
                                                    .invalidFallbackBehavior("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                            .build())
                                                        .includedPaths("string")
                                                        .build())
                                                    .oversizeHandling("string")
                                                    .build())
                                                .method(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchMethodArgs.builder()
                                                    .build())
                                                .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchQueryStringArgs.builder()
                                                    .build())
                                                .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleHeaderArgs.builder()
                                                    .name("string")
                                                    .build())
                                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                                    .name("string")
                                                    .build())
                                                .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriFragmentArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementFieldToMatchUriPathArgs.builder()
                                                    .build())
                                                .build())
                                            .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexMatchStatementTextTransformationArgs.builder()
                                                .priority(0)
                                                .type("string")
                                                .build())
                                            .build())
                                        .regexPatternSetReferenceStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementArgs.builder()
                                            .arn("string")
                                            .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchArgs.builder()
                                                .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                                    .build())
                                                .body(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchBodyArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedCookies("string")
                                                        .includedCookies("string")
                                                        .build())
                                                    .build())
                                                .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderOrderArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedHeaders("string")
                                                        .includedHeaders("string")
                                                        .build())
                                                    .build())
                                                .ja3Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa3FingerprintArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .ja4Fingerprint(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJa4FingerprintArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .jsonBody(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyArgs.builder()
                                                    .matchScope("string")
                                                    .invalidFallbackBehavior("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchJsonBodyMatchPatternAllArgs.builder()
                                                            .build())
                                                        .includedPaths("string")
                                                        .build())
                                                    .oversizeHandling("string")
                                                    .build())
                                                .method(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchMethodArgs.builder()
                                                    .build())
                                                .queryString(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchQueryStringArgs.builder()
                                                    .build())
                                                .singleHeader(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleHeaderArgs.builder()
                                                    .name("string")
                                                    .build())
                                                .singleQueryArgument(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchSingleQueryArgumentArgs.builder()
                                                    .name("string")
                                                    .build())
                                                .uriFragment(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriFragmentArgs.builder()
                                                    .fallbackBehavior("string")
                                                    .build())
                                                .uriPath(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementFieldToMatchUriPathArgs.builder()
                                                    .build())
                                                .build())
                                            .textTransformations(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementRegexPatternSetReferenceStatementTextTransformationArgs.builder()
                                                .priority(0)
                                                .type("string")
                                                .build())
                                            .build())
                                        .sizeConstraintStatement(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementArgs.builder()
                                            .comparisonOperator("string")
                                            .size(0)
                                            .fieldToMatch(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchArgs.builder()
                                                .allQueryArguments(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchAllQueryArgumentsArgs.builder()
                                                    .build())
                                                .body(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchBodyArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .cookies(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPatterns(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchCookiesMatchPatternAllArgs.builder()
                                                            .build())
                                                        .excludedCookies("string")
                                                        .includedCookies("string")
                                                        .build())
                                                    .build())
                                                .headerOrders(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderOrderArgs.builder()
                                                    .oversizeHandling("string")
                                                    .build())
                                                .headers(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderArgs.builder()
                                                    .matchScope("string")
                                                    .oversizeHandling("string")
                                                    .matchPattern(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternArgs.builder()
                                                        .all(WebAclRuleStatementNotStatementStatementNotStatementStatementNotStatementStatementManagedRuleGroupStatementScopeDownStatementSizeConstraintStatementFieldToMatchHeaderMatchPatternAllArgs.builder()
                                                            .