Package com.pulumi.aws.wafv2
Class WebAclRule
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.wafv2.WebAclRule
-
public class WebAclRule extends com.pulumi.resources.CustomResourceManages 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:
Apply the configuration: 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 Rulepackage 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 com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; 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() .defaultAction(WebAclDefaultActionArgs.builder() .allow(WebAclDefaultActionAllowArgs.builder() .build()) .build()) .visibilityConfig(WebAclVisibilityConfigArgs.builder() .cloudwatchMetricsEnabled(false) .metricName("example") .sampledRequestsEnabled(false) .build()) .name("example") .scope("REGIONAL") .build(), CustomResourceOptions.builder() .ignoreChanges("rules") .build()); // Separate rule resource with identical configuration var blockCountries = new WebAclRule("blockCountries", WebAclRuleArgs.builder() .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()) .name("block-countries") .priority(1) .webAclArn(example.arn()) .build()); } }
### IP Set Reference (Solves Deletion Ordering) This example demonstrates the primary use case: referencing an IP set in a way that allows safe deletion.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 com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; 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() .defaultAction(WebAclDefaultActionArgs.builder() .allow(WebAclDefaultActionAllowArgs.builder() .build()) .build()) .visibilityConfig(WebAclVisibilityConfigArgs.builder() .cloudwatchMetricsEnabled(false) .metricName("example") .sampledRequestsEnabled(false) .build()) .name("example") .scope("REGIONAL") .build(), CustomResourceOptions.builder() .ignoreChanges("rules") .build()); var blockCountries = new WebAclRule("blockCountries", WebAclRuleArgs.builder() .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()) .name("block-countries") .priority(1) .webAclArn(example.arn()) .build()); } }
### Rate-Based Rulepackage 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 com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; 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() .defaultAction(WebAclDefaultActionArgs.builder() .allow(WebAclDefaultActionAllowArgs.builder() .build()) .build()) .visibilityConfig(WebAclVisibilityConfigArgs.builder() .cloudwatchMetricsEnabled(true) .metricName("example") .sampledRequestsEnabled(true) .build()) .name("example") .scope("REGIONAL") .build(), CustomResourceOptions.builder() .ignoreChanges("rules") .build()); var blockIps = new WebAclRule("blockIps", WebAclRuleArgs.builder() .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()) .name("block-bad-ips") .priority(1) .webAclArn(example.arn()) .build()); } }
### Managed Rule Group with Override Actionpackage 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.ArrayList; import java.util.Arrays; 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() .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()) .name("rate-limit") .priority(2) .webAclArn(example.arn()) .build()); } }
### Custom Request Handlingpackage 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.ArrayList; import java.util.Arrays; 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() .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()) .name("aws-managed-rules") .priority(3) .webAclArn(example.arn()) .build()); } }
### IP Set Referencepackage 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.WebAclRuleActionCaptchaCustomRequestHandlingInsertHeaderArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementGeoMatchStatementArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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() .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()) .name("captcha-with-headers") .priority(4) .webAclArn(example.arn()) .build()); } }
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):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.ArrayList; import java.util.Arrays; 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() .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()) .name("blocked-ips") .priority(1) .webAclArn(example.arn()) .build()); } }
### Logical OR Statement Block requests that match any of multiple conditions: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.WebAclRuleStatementGeoMatchStatementArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementByteMatchStatementArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementByteMatchStatementFieldToMatchArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementByteMatchStatementTextTransformationArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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() .action(WebAclRuleActionArgs.builder() .block(WebAclRuleActionBlockArgs.builder() .build()) .build()) .statement(WebAclRuleStatementArgs.builder() .andStatement(Map.of("statements", Arrays.asList( WebAclRuleStatementArgs.builder() .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder() .countryCodes("CN") .build()) .build(), WebAclRuleStatementArgs.builder() .byteMatchStatement(WebAclRuleStatementByteMatchStatementArgs.builder() .fieldToMatch(WebAclRuleStatementByteMatchStatementFieldToMatchArgs.builder() .uriPath(WebAclRuleStatementByteMatchStatementFieldToMatchUriPathArgs.builder() .build()) .build()) .textTransformations(WebAclRuleStatementByteMatchStatementTextTransformationArgs.builder() .priority(0) .type("LOWERCASE") .build()) .searchString("admin") .positionalConstraint("CONTAINS") .build()) .build()))) .build()) .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder() .cloudwatchMetricsEnabled(true) .metricName("block-suspicious") .sampledRequestsEnabled(true) .build()) .name("block-suspicious") .priority(1) .webAclArn(example.arn()) .build()); } }
### Logical NOT Statement Allow requests only from specific countries by negating a geo match: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.WebAclRuleStatementGeoMatchStatementArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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() .action(WebAclRuleActionArgs.builder() .block(WebAclRuleActionBlockArgs.builder() .build()) .build()) .statement(WebAclRuleStatementArgs.builder() .orStatement(Map.of("statements", Arrays.asList( WebAclRuleStatementArgs.builder() .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder() .countryCodes("CN") .build()) .build(), WebAclRuleStatementArgs.builder() .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder() .countryCodes("RU") .build()) .build()))) .build()) .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder() .cloudwatchMetricsEnabled(true) .metricName("block-countries") .sampledRequestsEnabled(true) .build()) .name("block-countries") .priority(2) .webAclArn(example.arn()) .build()); } }
## Import ### Identity Schema #### Required * `name` (String) Rule name, unique within the Web ACL. * `webAclArn` (String) ARN of the Web ACL. #### Optional * `accountId` (String) Account ID where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import WAFv2 Web ACL Rules using the `webAclArn` and `name` separated by a comma (`,`). For example: ```sh $ pulumi import aws:wafv2/webAclRule:WebAclRule example arn:aws:wafv2:us-east-1:123456789012:regional/webacl/example/abc123def456,my-rule ```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.WebAclRuleStatementGeoMatchStatementArgs; import com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs; import java.util.ArrayList; import java.util.Arrays; 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() .action(WebAclRuleActionArgs.builder() .block(WebAclRuleActionBlockArgs.builder() .build()) .build()) .statement(WebAclRuleStatementArgs.builder() .notStatement(Map.of("statement", WebAclRuleStatementArgs.builder() .geoMatchStatement(WebAclRuleStatementGeoMatchStatementArgs.builder() .countryCodes( "US", "CA") .build()) .build())) .build()) .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder() .cloudwatchMetricsEnabled(true) .metricName("allow-only-us") .sampledRequestsEnabled(true) .build()) .name("allow-only-us") .priority(3) .webAclArn(example.arn()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description WebAclRule(java.lang.String name)WebAclRule(java.lang.String name, WebAclRuleArgs args)WebAclRule(java.lang.String name, WebAclRuleArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<WebAclRuleAction>>action()com.pulumi.core.Output<java.util.Optional<WebAclRuleCaptchaConfig>>captchaConfig()com.pulumi.core.Output<java.util.Optional<WebAclRuleChallengeConfig>>challengeConfig()static WebAclRuleget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, WebAclRuleState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.util.Optional<WebAclRuleOverrideAction>>overrideAction()com.pulumi.core.Output<java.lang.Integer>priority()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.util.List<WebAclRuleRuleLabel>>>ruleLabels()com.pulumi.core.Output<java.util.Optional<WebAclRuleStatement>>statement()com.pulumi.core.Output<java.util.Optional<WebAclRuleTimeouts>>timeouts()com.pulumi.core.Output<java.util.Optional<WebAclRuleVisibilityConfig>>visibilityConfig()com.pulumi.core.Output<java.lang.String>webAclArn()
-
-
-
Constructor Detail
-
WebAclRule
public WebAclRule(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
WebAclRule
public WebAclRule(java.lang.String name, WebAclRuleArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
WebAclRule
public WebAclRule(java.lang.String name, WebAclRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
action
public com.pulumi.core.Output<java.util.Optional<WebAclRuleAction>> action()
- Returns:
- Action to take when the rule matches. See Action below. Conflicts with `overrideAction`.
-
captchaConfig
public com.pulumi.core.Output<java.util.Optional<WebAclRuleCaptchaConfig>> captchaConfig()
- Returns:
- CAPTCHA configuration that overrides the web ACL level setting. See Captcha Config below.
-
challengeConfig
public com.pulumi.core.Output<java.util.Optional<WebAclRuleChallengeConfig>> challengeConfig()
- Returns:
- Challenge configuration that overrides the web ACL level setting. See Challenge Config below.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the rule. Must be unique within the Web ACL.
-
overrideAction
public com.pulumi.core.Output<java.util.Optional<WebAclRuleOverrideAction>> overrideAction()
- Returns:
- Override action for managed rule groups. See Override Action below. Conflicts with `action`.
-
priority
public com.pulumi.core.Output<java.lang.Integer> priority()
- Returns:
- Rule priority. Rules with lower priority are evaluated first.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
ruleLabels
public com.pulumi.core.Output<java.util.Optional<java.util.List<WebAclRuleRuleLabel>>> ruleLabels()
- Returns:
- Labels to apply to matching web requests. See Rule Label below.
-
statement
public com.pulumi.core.Output<java.util.Optional<WebAclRuleStatement>> statement()
- Returns:
- Rule statement. See Statement below.
-
timeouts
public com.pulumi.core.Output<java.util.Optional<WebAclRuleTimeouts>> timeouts()
-
visibilityConfig
public com.pulumi.core.Output<java.util.Optional<WebAclRuleVisibilityConfig>> visibilityConfig()
- Returns:
- CloudWatch metrics configuration. See Visibility Config below.
-
webAclArn
public com.pulumi.core.Output<java.lang.String> webAclArn()
- Returns:
- ARN of the Web ACL to add the rule to. The following arguments are optional:
-
get
public static WebAclRule get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable WebAclRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-