1. Packages
  2. Packages
  3. Alibaba Cloud Provider
  4. API Docs
  5. wafv3
  6. getDefenseRules
Viewing docs for Alibaba Cloud v3.105.0
published on Thursday, Jul 16, 2026 by Pulumi
alicloud logo
Viewing docs for Alibaba Cloud v3.105.0
published on Thursday, Jul 16, 2026 by Pulumi

    This data source provides Wafv3 Defense Rule available to the user.What is Defense Rule

    NOTE: Available since v1.283.0.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as alicloud from "@pulumi/alicloud";
    
    const config = new pulumi.Config();
    const name = config.get("name") || "terraform-example";
    const regionId = config.get("regionId") || "cn-hangzhou";
    const defaultnxb04D = new alicloud.wafv3.Instance("defaultnxb04D", {});
    const defaultfIoHt5 = new alicloud.wafv3.DefenseTemplate("defaultfIoHt5", {
        status: "1",
        description: "testCreate",
        instanceId: defaultnxb04D.id,
        defenseTemplateName: "1782219650",
        templateOrigin: "custom",
        defenseScene: "custom_acl",
        templateType: "user_custom",
    });
    const default9dtEmt = new alicloud.wafv3.AddressBook("default9dtEmt", {
        description: "test",
        instanceId: defaultnxb04D.id,
        addressBookName: "1782219650",
        addressLists: [
            "100.100.100.100/32",
            "101.101.101.101/32",
            "102.102.102.102/32",
        ],
        addressBookType: "ip",
    });
    const defaultSB0uHV = new alicloud.wafv3.AddressBook("defaultSB0uHV", {
        description: "test",
        instanceId: defaultnxb04D.id,
        addressBookName: "1782219650",
        addressLists: [
            "100.100.100.100/32",
            "101.101.101.101/32",
            "102.102.102.102/32",
        ],
        addressBookType: "ip",
    });
    const defaultDefenseRule = new alicloud.wafv3.DefenseRule("default", {
        defenseOrigin: "custom",
        instanceId: defaultnxb04D.id,
        config: {
            ruleAction: "block",
            conditions: [
                {
                    opValue: "contain",
                    values: "abc",
                    key: "URL",
                },
                {
                    opValue: "contain",
                    values: "abc",
                    key: "URLPath",
                },
                {
                    opValue: "contain",
                    values: "1.1.1.2",
                    key: "IP",
                },
                {
                    key: "IP",
                    opValue: "in-list",
                    values: default9dtEmt.addressBookId,
                },
            ],
            ccStatus: 0,
            ccEffect: "service",
            rateLimit: {
                target: "remote_addr",
                interval: 16,
                threshold: 204,
                ttl: 68,
                status: {
                    code: 414,
                    count: 333,
                },
                subKey: "testky1",
            },
            grayStatus: 1,
            grayConfig: {
                grayTarget: "remote_addr",
                grayRate: 80,
            },
            timeConfig: {
                timeScope: "period",
                timeZone: 8,
                timePeriods: [
                    {
                        start: 1760174804000,
                        end: 1760175804000,
                    },
                    {
                        start: 1760171804000,
                        end: 1760172804000,
                    },
                    {
                        start: 1760176804000,
                        end: 1760177804000,
                    },
                    {
                        start: 1760178804000,
                        end: 1760179804000,
                    },
                    {
                        start: 1760170804000,
                        end: 1760171804000,
                    },
                ],
            },
        },
        defenseScene: "custom_acl",
        ruleStatus: 1,
        defenseType: "template",
        templateId: defaultfIoHt5.defenseTemplateId,
        ruleName: "custom_acl-create",
    });
    const _default = alicloud.wafv3.getDefenseRulesOutput({
        ids: [defaultDefenseRule.id],
        defenseType: "template",
        instanceId: defaultnxb04D.id,
    });
    export const alicloudWafv3DefenseRuleExampleId = _default.apply(_default => _default.rules?.[0]?.id);
    
    import pulumi
    import pulumi_alicloud as alicloud
    
    config = pulumi.Config()
    name = config.get("name")
    if name is None:
        name = "terraform-example"
    region_id = config.get("regionId")
    if region_id is None:
        region_id = "cn-hangzhou"
    defaultnxb04_d = alicloud.wafv3.Instance("defaultnxb04D")
    defaultf_io_ht5 = alicloud.wafv3.DefenseTemplate("defaultfIoHt5",
        status="1",
        description="testCreate",
        instance_id=defaultnxb04_d.id,
        defense_template_name="1782219650",
        template_origin="custom",
        defense_scene="custom_acl",
        template_type="user_custom")
    default9dt_emt = alicloud.wafv3.AddressBook("default9dtEmt",
        description="test",
        instance_id=defaultnxb04_d.id,
        address_book_name="1782219650",
        address_lists=[
            "100.100.100.100/32",
            "101.101.101.101/32",
            "102.102.102.102/32",
        ],
        address_book_type="ip")
    default_sb0u_hv = alicloud.wafv3.AddressBook("defaultSB0uHV",
        description="test",
        instance_id=defaultnxb04_d.id,
        address_book_name="1782219650",
        address_lists=[
            "100.100.100.100/32",
            "101.101.101.101/32",
            "102.102.102.102/32",
        ],
        address_book_type="ip")
    default_defense_rule = alicloud.wafv3.DefenseRule("default",
        defense_origin="custom",
        instance_id=defaultnxb04_d.id,
        config={
            "rule_action": "block",
            "conditions": [
                {
                    "op_value": "contain",
                    "values": "abc",
                    "key": "URL",
                },
                {
                    "op_value": "contain",
                    "values": "abc",
                    "key": "URLPath",
                },
                {
                    "op_value": "contain",
                    "values": "1.1.1.2",
                    "key": "IP",
                },
                {
                    "key": "IP",
                    "op_value": "in-list",
                    "values": default9dt_emt.address_book_id,
                },
            ],
            "cc_status": 0,
            "cc_effect": "service",
            "rate_limit": {
                "target": "remote_addr",
                "interval": 16,
                "threshold": 204,
                "ttl": 68,
                "status": {
                    "code": 414,
                    "count": 333,
                },
                "sub_key": "testky1",
            },
            "gray_status": 1,
            "gray_config": {
                "gray_target": "remote_addr",
                "gray_rate": 80,
            },
            "time_config": {
                "time_scope": "period",
                "time_zone": 8,
                "time_periods": [
                    {
                        "start": int(1760174804000),
                        "end": int(1760175804000),
                    },
                    {
                        "start": int(1760171804000),
                        "end": int(1760172804000),
                    },
                    {
                        "start": int(1760176804000),
                        "end": int(1760177804000),
                    },
                    {
                        "start": int(1760178804000),
                        "end": int(1760179804000),
                    },
                    {
                        "start": int(1760170804000),
                        "end": int(1760171804000),
                    },
                ],
            },
        },
        defense_scene="custom_acl",
        rule_status=1,
        defense_type="template",
        template_id=defaultf_io_ht5.defense_template_id,
        rule_name="custom_acl-create")
    default = alicloud.wafv3.get_defense_rules_output(ids=[default_defense_rule.id],
        defense_type="template",
        instance_id=defaultnxb04_d.id)
    pulumi.export("alicloudWafv3DefenseRuleExampleId", default.rules[0].id)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		name := "terraform-example"
    		if param := cfg.Get("name"); param != "" {
    			name = param
    		}
    		regionId := "cn-hangzhou"
    		if param := cfg.Get("regionId"); param != "" {
    			regionId = param
    		}
    		defaultnxb04D, err := wafv3.NewInstance(ctx, "defaultnxb04D", nil)
    		if err != nil {
    			return err
    		}
    		defaultfIoHt5, err := wafv3.NewDefenseTemplate(ctx, "defaultfIoHt5", &wafv3.DefenseTemplateArgs{
    			Status:              pulumi.String("1"),
    			Description:         pulumi.String("testCreate"),
    			InstanceId:          defaultnxb04D.ID(),
    			DefenseTemplateName: pulumi.String("1782219650"),
    			TemplateOrigin:      pulumi.String("custom"),
    			DefenseScene:        pulumi.String("custom_acl"),
    			TemplateType:        pulumi.String("user_custom"),
    		})
    		if err != nil {
    			return err
    		}
    		default9dtEmt, err := wafv3.NewAddressBook(ctx, "default9dtEmt", &wafv3.AddressBookArgs{
    			Description:     pulumi.String("test"),
    			InstanceId:      defaultnxb04D.ID(),
    			AddressBookName: pulumi.String("1782219650"),
    			AddressLists: pulumi.StringArray{
    				pulumi.String("100.100.100.100/32"),
    				pulumi.String("101.101.101.101/32"),
    				pulumi.String("102.102.102.102/32"),
    			},
    			AddressBookType: pulumi.String("ip"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = wafv3.NewAddressBook(ctx, "defaultSB0uHV", &wafv3.AddressBookArgs{
    			Description:     pulumi.String("test"),
    			InstanceId:      defaultnxb04D.ID(),
    			AddressBookName: pulumi.String("1782219650"),
    			AddressLists: pulumi.StringArray{
    				pulumi.String("100.100.100.100/32"),
    				pulumi.String("101.101.101.101/32"),
    				pulumi.String("102.102.102.102/32"),
    			},
    			AddressBookType: pulumi.String("ip"),
    		})
    		if err != nil {
    			return err
    		}
    		defaultDefenseRule, err := wafv3.NewDefenseRule(ctx, "default", &wafv3.DefenseRuleArgs{
    			DefenseOrigin: pulumi.String("custom"),
    			InstanceId:    defaultnxb04D.ID(),
    			Config: &wafv3.DefenseRuleConfigArgs{
    				RuleAction: pulumi.String("block"),
    				Conditions: wafv3.DefenseRuleConfigConditionArray{
    					&wafv3.DefenseRuleConfigConditionArgs{
    						OpValue: pulumi.String("contain"),
    						Values:  pulumi.String("abc"),
    						Key:     pulumi.String("URL"),
    					},
    					&wafv3.DefenseRuleConfigConditionArgs{
    						OpValue: pulumi.String("contain"),
    						Values:  pulumi.String("abc"),
    						Key:     pulumi.String("URLPath"),
    					},
    					&wafv3.DefenseRuleConfigConditionArgs{
    						OpValue: pulumi.String("contain"),
    						Values:  pulumi.String("1.1.1.2"),
    						Key:     pulumi.String("IP"),
    					},
    					&wafv3.DefenseRuleConfigConditionArgs{
    						Key:     pulumi.String("IP"),
    						OpValue: pulumi.String("in-list"),
    						Values:  default9dtEmt.AddressBookId,
    					},
    				},
    				CcStatus: pulumi.Int(0),
    				CcEffect: pulumi.String("service"),
    				RateLimit: &wafv3.DefenseRuleConfigRateLimitArgs{
    					Target:    pulumi.String("remote_addr"),
    					Interval:  pulumi.Int(16),
    					Threshold: pulumi.Int(204),
    					Ttl:       pulumi.Int(68),
    					Status: &wafv3.DefenseRuleConfigRateLimitStatusArgs{
    						Code:  pulumi.Int(414),
    						Count: pulumi.Int(333),
    					},
    					SubKey: pulumi.String("testky1"),
    				},
    				GrayStatus: pulumi.Int(1),
    				GrayConfig: &wafv3.DefenseRuleConfigGrayConfigArgs{
    					GrayTarget: pulumi.String("remote_addr"),
    					GrayRate:   pulumi.Int(80),
    				},
    				TimeConfig: &wafv3.DefenseRuleConfigTimeConfigArgs{
    					TimeScope: pulumi.String("period"),
    					TimeZone:  pulumi.Int(8),
    					TimePeriods: wafv3.DefenseRuleConfigTimeConfigTimePeriodArray{
    						&wafv3.DefenseRuleConfigTimeConfigTimePeriodArgs{
    							Start: pulumi.Int(1760174804000),
    							End:   pulumi.Int(1760175804000),
    						},
    						&wafv3.DefenseRuleConfigTimeConfigTimePeriodArgs{
    							Start: pulumi.Int(1760171804000),
    							End:   pulumi.Int(1760172804000),
    						},
    						&wafv3.DefenseRuleConfigTimeConfigTimePeriodArgs{
    							Start: pulumi.Int(1760176804000),
    							End:   pulumi.Int(1760177804000),
    						},
    						&wafv3.DefenseRuleConfigTimeConfigTimePeriodArgs{
    							Start: pulumi.Int(1760178804000),
    							End:   pulumi.Int(1760179804000),
    						},
    						&wafv3.DefenseRuleConfigTimeConfigTimePeriodArgs{
    							Start: pulumi.Int(1760170804000),
    							End:   pulumi.Int(1760171804000),
    						},
    					},
    				},
    			},
    			DefenseScene: pulumi.String("custom_acl"),
    			RuleStatus:   pulumi.Int(1),
    			DefenseType:  pulumi.String("template"),
    			TemplateId:   defaultfIoHt5.DefenseTemplateId,
    			RuleName:     pulumi.String("custom_acl-create"),
    		})
    		if err != nil {
    			return err
    		}
    		_default := wafv3.GetDefenseRulesOutput(ctx, wafv3.GetDefenseRulesOutputArgs{
    			Ids: pulumi.StringArray{
    				defaultDefenseRule.ID(),
    			},
    			DefenseType: pulumi.String("template"),
    			InstanceId:  defaultnxb04D.ID(),
    		}, nil)
    		ctx.Export("alicloudWafv3DefenseRuleExampleId", _default.ApplyT(func(_default wafv3.GetDefenseRulesResult) (*string, error) {
    			return _default.Rules[0].Id, nil
    		}).(pulumi.StringPtrOutput))
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AliCloud = Pulumi.AliCloud;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var name = config.Get("name") ?? "terraform-example";
        var regionId = config.Get("regionId") ?? "cn-hangzhou";
        var defaultnxb04D = new AliCloud.Wafv3.Instance("defaultnxb04D");
    
        var defaultfIoHt5 = new AliCloud.Wafv3.DefenseTemplate("defaultfIoHt5", new()
        {
            Status = "1",
            Description = "testCreate",
            InstanceId = defaultnxb04D.Id,
            DefenseTemplateName = "1782219650",
            TemplateOrigin = "custom",
            DefenseScene = "custom_acl",
            TemplateType = "user_custom",
        });
    
        var default9dtEmt = new AliCloud.Wafv3.AddressBook("default9dtEmt", new()
        {
            Description = "test",
            InstanceId = defaultnxb04D.Id,
            AddressBookName = "1782219650",
            AddressLists = new[]
            {
                "100.100.100.100/32",
                "101.101.101.101/32",
                "102.102.102.102/32",
            },
            AddressBookType = "ip",
        });
    
        var defaultSB0uHV = new AliCloud.Wafv3.AddressBook("defaultSB0uHV", new()
        {
            Description = "test",
            InstanceId = defaultnxb04D.Id,
            AddressBookName = "1782219650",
            AddressLists = new[]
            {
                "100.100.100.100/32",
                "101.101.101.101/32",
                "102.102.102.102/32",
            },
            AddressBookType = "ip",
        });
    
        var defaultDefenseRule = new AliCloud.Wafv3.DefenseRule("default", new()
        {
            DefenseOrigin = "custom",
            InstanceId = defaultnxb04D.Id,
            Config = new AliCloud.Wafv3.Inputs.DefenseRuleConfigArgs
            {
                RuleAction = "block",
                Conditions = new[]
                {
                    new AliCloud.Wafv3.Inputs.DefenseRuleConfigConditionArgs
                    {
                        OpValue = "contain",
                        Values = "abc",
                        Key = "URL",
                    },
                    new AliCloud.Wafv3.Inputs.DefenseRuleConfigConditionArgs
                    {
                        OpValue = "contain",
                        Values = "abc",
                        Key = "URLPath",
                    },
                    new AliCloud.Wafv3.Inputs.DefenseRuleConfigConditionArgs
                    {
                        OpValue = "contain",
                        Values = "1.1.1.2",
                        Key = "IP",
                    },
                    new AliCloud.Wafv3.Inputs.DefenseRuleConfigConditionArgs
                    {
                        Key = "IP",
                        OpValue = "in-list",
                        Values = default9dtEmt.AddressBookId,
                    },
                },
                CcStatus = 0,
                CcEffect = "service",
                RateLimit = new AliCloud.Wafv3.Inputs.DefenseRuleConfigRateLimitArgs
                {
                    Target = "remote_addr",
                    Interval = 16,
                    Threshold = 204,
                    Ttl = 68,
                    Status = new AliCloud.Wafv3.Inputs.DefenseRuleConfigRateLimitStatusArgs
                    {
                        Code = 414,
                        Count = 333,
                    },
                    SubKey = "testky1",
                },
                GrayStatus = 1,
                GrayConfig = new AliCloud.Wafv3.Inputs.DefenseRuleConfigGrayConfigArgs
                {
                    GrayTarget = "remote_addr",
                    GrayRate = 80,
                },
                TimeConfig = new AliCloud.Wafv3.Inputs.DefenseRuleConfigTimeConfigArgs
                {
                    TimeScope = "period",
                    TimeZone = 8,
                    TimePeriods = new[]
                    {
                        new AliCloud.Wafv3.Inputs.DefenseRuleConfigTimeConfigTimePeriodArgs
                        {
                            Start = 1760174804000,
                            End = 1760175804000,
                        },
                        new AliCloud.Wafv3.Inputs.DefenseRuleConfigTimeConfigTimePeriodArgs
                        {
                            Start = 1760171804000,
                            End = 1760172804000,
                        },
                        new AliCloud.Wafv3.Inputs.DefenseRuleConfigTimeConfigTimePeriodArgs
                        {
                            Start = 1760176804000,
                            End = 1760177804000,
                        },
                        new AliCloud.Wafv3.Inputs.DefenseRuleConfigTimeConfigTimePeriodArgs
                        {
                            Start = 1760178804000,
                            End = 1760179804000,
                        },
                        new AliCloud.Wafv3.Inputs.DefenseRuleConfigTimeConfigTimePeriodArgs
                        {
                            Start = 1760170804000,
                            End = 1760171804000,
                        },
                    },
                },
            },
            DefenseScene = "custom_acl",
            RuleStatus = 1,
            DefenseType = "template",
            TemplateId = defaultfIoHt5.DefenseTemplateId,
            RuleName = "custom_acl-create",
        });
    
        var @default = AliCloud.Wafv3.GetDefenseRules.Invoke(new()
        {
            Ids = new[]
            {
                defaultDefenseRule.Id,
            },
            DefenseType = "template",
            InstanceId = defaultnxb04D.Id,
        });
    
        return new Dictionary<string, object?>
        {
            ["alicloudWafv3DefenseRuleExampleId"] = @default.Apply(@default => @default.Apply(getDefenseRulesResult => getDefenseRulesResult.Rules[0]?.Id)),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.alicloud.wafv3.Instance;
    import com.pulumi.alicloud.wafv3.DefenseTemplate;
    import com.pulumi.alicloud.wafv3.DefenseTemplateArgs;
    import com.pulumi.alicloud.wafv3.AddressBook;
    import com.pulumi.alicloud.wafv3.AddressBookArgs;
    import com.pulumi.alicloud.wafv3.DefenseRule;
    import com.pulumi.alicloud.wafv3.DefenseRuleArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigConditionArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigRateLimitArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigRateLimitStatusArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigGrayConfigArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigTimeConfigArgs;
    import com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigTimeConfigTimePeriodArgs;
    import com.pulumi.alicloud.wafv3.Wafv3Functions;
    import com.pulumi.alicloud.wafv3.inputs.GetDefenseRulesArgs;
    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) {
            final var config = ctx.config();
            final var name = config.get("name").orElse("terraform-example");
            final var regionId = config.get("regionId").orElse("cn-hangzhou");
            var defaultnxb04D = new Instance("defaultnxb04D");
    
            var defaultfIoHt5 = new DefenseTemplate("defaultfIoHt5", DefenseTemplateArgs.builder()
                .status("1")
                .description("testCreate")
                .instanceId(defaultnxb04D.id())
                .defenseTemplateName("1782219650")
                .templateOrigin("custom")
                .defenseScene("custom_acl")
                .templateType("user_custom")
                .build());
    
            var default9dtEmt = new AddressBook("default9dtEmt", AddressBookArgs.builder()
                .description("test")
                .instanceId(defaultnxb04D.id())
                .addressBookName("1782219650")
                .addressLists(            
                    "100.100.100.100/32",
                    "101.101.101.101/32",
                    "102.102.102.102/32")
                .addressBookType("ip")
                .build());
    
            var defaultSB0uHV = new AddressBook("defaultSB0uHV", AddressBookArgs.builder()
                .description("test")
                .instanceId(defaultnxb04D.id())
                .addressBookName("1782219650")
                .addressLists(            
                    "100.100.100.100/32",
                    "101.101.101.101/32",
                    "102.102.102.102/32")
                .addressBookType("ip")
                .build());
    
            var defaultDefenseRule = new DefenseRule("defaultDefenseRule", DefenseRuleArgs.builder()
                .defenseOrigin("custom")
                .instanceId(defaultnxb04D.id())
                .config(DefenseRuleConfigArgs.builder()
                    .ruleAction("block")
                    .conditions(                
                        DefenseRuleConfigConditionArgs.builder()
                            .opValue("contain")
                            .values("abc")
                            .key("URL")
                            .build(),
                        DefenseRuleConfigConditionArgs.builder()
                            .opValue("contain")
                            .values("abc")
                            .key("URLPath")
                            .build(),
                        DefenseRuleConfigConditionArgs.builder()
                            .opValue("contain")
                            .values("1.1.1.2")
                            .key("IP")
                            .build(),
                        DefenseRuleConfigConditionArgs.builder()
                            .key("IP")
                            .opValue("in-list")
                            .values(default9dtEmt.addressBookId())
                            .build())
                    .ccStatus(0)
                    .ccEffect("service")
                    .rateLimit(DefenseRuleConfigRateLimitArgs.builder()
                        .target("remote_addr")
                        .interval(16)
                        .threshold(204)
                        .ttl(68)
                        .status(DefenseRuleConfigRateLimitStatusArgs.builder()
                            .code(414)
                            .count(333)
                            .build())
                        .subKey("testky1")
                        .build())
                    .grayStatus(1)
                    .grayConfig(DefenseRuleConfigGrayConfigArgs.builder()
                        .grayTarget("remote_addr")
                        .grayRate(80)
                        .build())
                    .timeConfig(DefenseRuleConfigTimeConfigArgs.builder()
                        .timeScope("period")
                        .timeZone(8)
                        .timePeriods(                    
                            DefenseRuleConfigTimeConfigTimePeriodArgs.builder()
                                .start(1760174804000)
                                .end(1760175804000)
                                .build(),
                            DefenseRuleConfigTimeConfigTimePeriodArgs.builder()
                                .start(1760171804000)
                                .end(1760172804000)
                                .build(),
                            DefenseRuleConfigTimeConfigTimePeriodArgs.builder()
                                .start(1760176804000)
                                .end(1760177804000)
                                .build(),
                            DefenseRuleConfigTimeConfigTimePeriodArgs.builder()
                                .start(1760178804000)
                                .end(1760179804000)
                                .build(),
                            DefenseRuleConfigTimeConfigTimePeriodArgs.builder()
                                .start(1760170804000)
                                .end(1760171804000)
                                .build())
                        .build())
                    .build())
                .defenseScene("custom_acl")
                .ruleStatus(1)
                .defenseType("template")
                .templateId(defaultfIoHt5.defenseTemplateId())
                .ruleName("custom_acl-create")
                .build());
    
            final var default = Wafv3Functions.getDefenseRules(GetDefenseRulesArgs.builder()
                .ids(defaultDefenseRule.id())
                .defenseType("template")
                .instanceId(defaultnxb04D.id())
                .build());
    
            ctx.export("alicloudWafv3DefenseRuleExampleId", default_.applyValue(_default_ -> _default_.rules()[0].id()));
        }
    }
    
    configuration:
      name:
        type: string
        default: terraform-example
      regionId:
        type: string
        default: cn-hangzhou
    resources:
      defaultnxb04D:
        type: alicloud:wafv3:Instance
      defaultfIoHt5:
        type: alicloud:wafv3:DefenseTemplate
        properties:
          status: '1'
          description: testCreate
          instanceId: ${defaultnxb04D.id}
          defenseTemplateName: '1782219650'
          templateOrigin: custom
          defenseScene: custom_acl
          templateType: user_custom
      default9dtEmt:
        type: alicloud:wafv3:AddressBook
        properties:
          description: test
          instanceId: ${defaultnxb04D.id}
          addressBookName: '1782219650'
          addressLists:
            - 100.100.100.100/32
            - 101.101.101.101/32
            - 102.102.102.102/32
          addressBookType: ip
      defaultSB0uHV:
        type: alicloud:wafv3:AddressBook
        properties:
          description: test
          instanceId: ${defaultnxb04D.id}
          addressBookName: '1782219650'
          addressLists:
            - 100.100.100.100/32
            - 101.101.101.101/32
            - 102.102.102.102/32
          addressBookType: ip
      defaultDefenseRule:
        type: alicloud:wafv3:DefenseRule
        name: default
        properties:
          defenseOrigin: custom
          instanceId: ${defaultnxb04D.id}
          config:
            ruleAction: block
            conditions:
              - opValue: contain
                values: abc
                key: URL
              - opValue: contain
                values: abc
                key: URLPath
              - opValue: contain
                values: 1.1.1.2
                key: IP
              - key: IP
                opValue: in-list
                values: ${default9dtEmt.addressBookId}
            ccStatus: '0'
            ccEffect: service
            rateLimit:
              target: remote_addr
              interval: '16'
              threshold: '204'
              ttl: '68'
              status:
                code: '414'
                count: '333'
              subKey: testky1
            grayStatus: '1'
            grayConfig:
              grayTarget: remote_addr
              grayRate: '80'
            timeConfig:
              timeScope: period
              timeZone: '8'
              timePeriods:
                - start: '1760174804000'
                  end: '1760175804000'
                - start: '1760171804000'
                  end: '1760172804000'
                - start: '1760176804000'
                  end: '1760177804000'
                - start: '1760178804000'
                  end: '1760179804000'
                - start: '1760170804000'
                  end: '1760171804000'
          defenseScene: custom_acl
          ruleStatus: '1'
          defenseType: template
          templateId: ${defaultfIoHt5.defenseTemplateId}
          ruleName: custom_acl-create
    variables:
      default:
        fn::invoke:
          function: alicloud:wafv3:getDefenseRules
          arguments:
            ids:
              - ${defaultDefenseRule.id}
            defenseType: template
            instanceId: ${defaultnxb04D.id}
    outputs:
      alicloudWafv3DefenseRuleExampleId: ${default.rules[0].id}
    
    pulumi {
      required_providers {
        alicloud = {
          source = "pulumi/alicloud"
        }
      }
    }
    
    data "alicloud_wafv3_getdefenserules" "default" {
      ids          = [alicloud_wafv3_defenserule.default.id]
      defense_type = "template"
      instance_id  = alicloud_wafv3_instance.defaultnxb04D.id
    }
    
    resource "alicloud_wafv3_instance" "defaultnxb04D" {
    }
    resource "alicloud_wafv3_defensetemplate" "defaultfIoHt5" {
      status                = "1"
      description           = "testCreate"
      instance_id           = alicloud_wafv3_instance.defaultnxb04D.id
      defense_template_name = "1782219650"
      template_origin       = "custom"
      defense_scene         = "custom_acl"
      template_type         = "user_custom"
    }
    resource "alicloud_wafv3_addressbook" "default9dtEmt" {
      description       = "test"
      instance_id       = alicloud_wafv3_instance.defaultnxb04D.id
      address_book_name = "1782219650"
      address_lists     = ["100.100.100.100/32", "101.101.101.101/32", "102.102.102.102/32"]
      address_book_type = "ip"
    }
    resource "alicloud_wafv3_addressbook" "defaultSB0uHV" {
      description       = "test"
      instance_id       = alicloud_wafv3_instance.defaultnxb04D.id
      address_book_name = "1782219650"
      address_lists     = ["100.100.100.100/32", "101.101.101.101/32", "102.102.102.102/32"]
      address_book_type = "ip"
    }
    resource "alicloud_wafv3_defenserule" "default" {
      defense_origin = "custom"
      instance_id    = alicloud_wafv3_instance.defaultnxb04D.id
      config = {
        rule_action = "block"
        conditions = [{
          "opValue" = "contain"
          "values"  = "abc"
          "key"     = "URL"
          }, {
          "opValue" = "contain"
          "values"  = "abc"
          "key"     = "URLPath"
          }, {
          "opValue" = "contain"
          "values"  = "1.1.1.2"
          "key"     = "IP"
          }, {
          "key"     = "IP"
          "opValue" = "in-list"
          "values"  = alicloud_wafv3_addressbook.default9dtEmt.address_book_id
        }]
        cc_status = "0"
        cc_effect = "service"
        rate_limit = {
          target    = "remote_addr"
          interval  = "16"
          threshold = "204"
          ttl       = "68"
          status = {
            code  = "414"
            count = "333"
          }
          sub_key = "testky1"
        }
        gray_status = "1"
        gray_config = {
          gray_target = "remote_addr"
          gray_rate   = "80"
        }
        time_config = {
          time_scope = "period"
          time_zone  = "8"
          time_periods = [{
            "start" = "1760174804000"
            "end"   = "1760175804000"
            }, {
            "start" = "1760171804000"
            "end"   = "1760172804000"
            }, {
            "start" = "1760176804000"
            "end"   = "1760177804000"
            }, {
            "start" = "1760178804000"
            "end"   = "1760179804000"
            }, {
            "start" = "1760170804000"
            "end"   = "1760171804000"
          }]
        }
      }
      defense_scene = "custom_acl"
      rule_status   = "1"
      defense_type  = "template"
      template_id   = alicloud_wafv3_defensetemplate.defaultfIoHt5.defense_template_id
      rule_name     = "custom_acl-create"
    }
    variable "name" {
      type    = string
      default = "terraform-example"
    }
    variable "regionId" {
      type    = string
      default = "cn-hangzhou"
    }
    output "alicloudWafv3DefenseRuleExampleId" {
      value = data.alicloud_wafv3_getdefenserules.default.rules[0].id
    }
    

    Using getDefenseRules

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getDefenseRules(args: GetDefenseRulesArgs, opts?: InvokeOptions): Promise<GetDefenseRulesResult>
    function getDefenseRulesOutput(args: GetDefenseRulesOutputArgs, opts?: InvokeOptions): Output<GetDefenseRulesResult>
    def get_defense_rules(defense_type: Optional[str] = None,
                          enable_details: Optional[bool] = None,
                          ids: Optional[Sequence[str]] = None,
                          instance_id: Optional[str] = None,
                          output_file: Optional[str] = None,
                          query: Optional[str] = None,
                          rule_type: Optional[str] = None,
                          opts: Optional[InvokeOptions] = None) -> GetDefenseRulesResult
    def get_defense_rules_output(defense_type: pulumi.Input[Optional[str]] = None,
                          enable_details: pulumi.Input[Optional[bool]] = None,
                          ids: pulumi.Input[Optional[Sequence[pulumi.Input[str]]]] = None,
                          instance_id: pulumi.Input[Optional[str]] = None,
                          output_file: pulumi.Input[Optional[str]] = None,
                          query: pulumi.Input[Optional[str]] = None,
                          rule_type: pulumi.Input[Optional[str]] = None,
                          opts: Optional[InvokeOptions] = None) -> Output[GetDefenseRulesResult]
    func GetDefenseRules(ctx *Context, args *GetDefenseRulesArgs, opts ...InvokeOption) (*GetDefenseRulesResult, error)
    func GetDefenseRulesOutput(ctx *Context, args *GetDefenseRulesOutputArgs, opts ...InvokeOption) GetDefenseRulesResultOutput

    > Note: This function is named GetDefenseRules in the Go SDK.

    public static class GetDefenseRules 
    {
        public static Task<GetDefenseRulesResult> InvokeAsync(GetDefenseRulesArgs args, InvokeOptions? opts = null)
        public static Output<GetDefenseRulesResult> Invoke(GetDefenseRulesInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetDefenseRulesResult> getDefenseRules(GetDefenseRulesArgs args, InvokeOptions options)
    public static Output<GetDefenseRulesResult> getDefenseRules(GetDefenseRulesArgs args, InvokeOptions options)
    
    fn::invoke:
      function: alicloud:wafv3/getDefenseRules:getDefenseRules
      arguments:
        # arguments dictionary
    data "alicloud_wafv3_get_defense_rules" "name" {
        # arguments
    }

    The following arguments are supported:

    InstanceId string
    The ID of the Web Application Firewall (WAF) instance.
    DefenseType string
    The protection rule type. Value:
    EnableDetails bool
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    Ids List<string>
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    OutputFile string
    File name where to save data source results (after running pulumi preview).
    Query string

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    RuleType string
    The protection rule type. Value:
    InstanceId string
    The ID of the Web Application Firewall (WAF) instance.
    DefenseType string
    The protection rule type. Value:
    EnableDetails bool
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    Ids []string
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    OutputFile string
    File name where to save data source results (after running pulumi preview).
    Query string

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    RuleType string
    The protection rule type. Value:
    instance_id string
    The ID of the Web Application Firewall (WAF) instance.
    defense_type string
    The protection rule type. Value:
    enable_details bool
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    ids list(string)
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    output_file string
    File name where to save data source results (after running pulumi preview).
    query string

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    rule_type string
    The protection rule type. Value:
    instanceId String
    The ID of the Web Application Firewall (WAF) instance.
    defenseType String
    The protection rule type. Value:
    enableDetails Boolean
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    ids List<String>
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    outputFile String
    File name where to save data source results (after running pulumi preview).
    query String

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    ruleType String
    The protection rule type. Value:
    instanceId string
    The ID of the Web Application Firewall (WAF) instance.
    defenseType string
    The protection rule type. Value:
    enableDetails boolean
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    ids string[]
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    outputFile string
    File name where to save data source results (after running pulumi preview).
    query string

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    ruleType string
    The protection rule type. Value:
    instance_id str
    The ID of the Web Application Firewall (WAF) instance.
    defense_type str
    The protection rule type. Value:
    enable_details bool
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    ids Sequence[str]
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    output_file str
    File name where to save data source results (after running pulumi preview).
    query str

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    rule_type str
    The protection rule type. Value:
    instanceId String
    The ID of the Web Application Firewall (WAF) instance.
    defenseType String
    The protection rule type. Value:
    enableDetails Boolean
    Default to false. Set it to true to call the per-rule DescribeDefenseRule API and fetch the full config block for each rule.
    ids List<String>
    A list of Defense Rule IDs. The value is formulated as <instance_id>:<defense_type>:<rule_id>.
    outputFile String
    File name where to save data source results (after running pulumi preview).
    query String

    The query condition is converted into a string in JSON format constructed with a series of parameters.

    NOTE: The results of the protection rules vary according to different query conditions. For more information, see Query parameter description.

    ruleType String
    The protection rule type. Value:

    getDefenseRules Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Ids List<string>
    A list of Defense Rule IDs.
    InstanceId string
    Rules List<Pulumi.AliCloud.Wafv3.Outputs.GetDefenseRulesRule>
    A list of Defense Rule Entries. Each element contains the following attributes:
    DefenseType string
    The protection rule type.
    EnableDetails bool
    OutputFile string
    Query string
    RuleType string
    The type of the rule.
    Id string
    The provider-assigned unique ID for this managed resource.
    Ids []string
    A list of Defense Rule IDs.
    InstanceId string
    Rules []GetDefenseRulesRule
    A list of Defense Rule Entries. Each element contains the following attributes:
    DefenseType string
    The protection rule type.
    EnableDetails bool
    OutputFile string
    Query string
    RuleType string
    The type of the rule.
    id string
    The provider-assigned unique ID for this managed resource.
    ids list(string)
    A list of Defense Rule IDs.
    instance_id string
    rules list(object)
    A list of Defense Rule Entries. Each element contains the following attributes:
    defense_type string
    The protection rule type.
    enable_details bool
    output_file string
    query string
    rule_type string
    The type of the rule.
    id String
    The provider-assigned unique ID for this managed resource.
    ids List<String>
    A list of Defense Rule IDs.
    instanceId String
    rules List<GetDefenseRulesRule>
    A list of Defense Rule Entries. Each element contains the following attributes:
    defenseType String
    The protection rule type.
    enableDetails Boolean
    outputFile String
    query String
    ruleType String
    The type of the rule.
    id string
    The provider-assigned unique ID for this managed resource.
    ids string[]
    A list of Defense Rule IDs.
    instanceId string
    rules GetDefenseRulesRule[]
    A list of Defense Rule Entries. Each element contains the following attributes:
    defenseType string
    The protection rule type.
    enableDetails boolean
    outputFile string
    query string
    ruleType string
    The type of the rule.
    id str
    The provider-assigned unique ID for this managed resource.
    ids Sequence[str]
    A list of Defense Rule IDs.
    instance_id str
    rules Sequence[GetDefenseRulesRule]
    A list of Defense Rule Entries. Each element contains the following attributes:
    defense_type str
    The protection rule type.
    enable_details bool
    output_file str
    query str
    rule_type str
    The type of the rule.
    id String
    The provider-assigned unique ID for this managed resource.
    ids List<String>
    A list of Defense Rule IDs.
    instanceId String
    rules List<Property Map>
    A list of Defense Rule Entries. Each element contains the following attributes:
    defenseType String
    The protection rule type.
    enableDetails Boolean
    outputFile String
    query String
    ruleType String
    The type of the rule.

    Supporting Types

    GetDefenseRulesRule

    Configs List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfig>
    Rule configuration content, in JSON format, constructed with a series of parameters.
    DefenseOrigin string
    Sources of protection.
    DefenseScene string
    The WAF protection scenario to be created.
    DefenseType string
    The protection rule type. Value:
    GmtModified string
    The modification time of the protection rule.
    Id string
    The ID of the resource supplied above.
    Resource string
    The protection object corresponding to the rule to be queried.
    RuleId int
    The protection rule ID.
    RuleName string
    The rule name.
    RuleStatus int
    Protection rule status.
    TemplateId int
    The protection template ID of the protection rule to be created.
    Configs []GetDefenseRulesRuleConfig
    Rule configuration content, in JSON format, constructed with a series of parameters.
    DefenseOrigin string
    Sources of protection.
    DefenseScene string
    The WAF protection scenario to be created.
    DefenseType string
    The protection rule type. Value:
    GmtModified string
    The modification time of the protection rule.
    Id string
    The ID of the resource supplied above.
    Resource string
    The protection object corresponding to the rule to be queried.
    RuleId int
    The protection rule ID.
    RuleName string
    The rule name.
    RuleStatus int
    Protection rule status.
    TemplateId int
    The protection template ID of the protection rule to be created.
    configs list(object)
    Rule configuration content, in JSON format, constructed with a series of parameters.
    defense_origin string
    Sources of protection.
    defense_scene string
    The WAF protection scenario to be created.
    defense_type string
    The protection rule type. Value:
    gmt_modified string
    The modification time of the protection rule.
    id string
    The ID of the resource supplied above.
    resource string
    The protection object corresponding to the rule to be queried.
    rule_id number
    The protection rule ID.
    rule_name string
    The rule name.
    rule_status number
    Protection rule status.
    template_id number
    The protection template ID of the protection rule to be created.
    configs List<GetDefenseRulesRuleConfig>
    Rule configuration content, in JSON format, constructed with a series of parameters.
    defenseOrigin String
    Sources of protection.
    defenseScene String
    The WAF protection scenario to be created.
    defenseType String
    The protection rule type. Value:
    gmtModified String
    The modification time of the protection rule.
    id String
    The ID of the resource supplied above.
    resource String
    The protection object corresponding to the rule to be queried.
    ruleId Integer
    The protection rule ID.
    ruleName String
    The rule name.
    ruleStatus Integer
    Protection rule status.
    templateId Integer
    The protection template ID of the protection rule to be created.
    configs GetDefenseRulesRuleConfig[]
    Rule configuration content, in JSON format, constructed with a series of parameters.
    defenseOrigin string
    Sources of protection.
    defenseScene string
    The WAF protection scenario to be created.
    defenseType string
    The protection rule type. Value:
    gmtModified string
    The modification time of the protection rule.
    id string
    The ID of the resource supplied above.
    resource string
    The protection object corresponding to the rule to be queried.
    ruleId number
    The protection rule ID.
    ruleName string
    The rule name.
    ruleStatus number
    Protection rule status.
    templateId number
    The protection template ID of the protection rule to be created.
    configs Sequence[GetDefenseRulesRuleConfig]
    Rule configuration content, in JSON format, constructed with a series of parameters.
    defense_origin str
    Sources of protection.
    defense_scene str
    The WAF protection scenario to be created.
    defense_type str
    The protection rule type. Value:
    gmt_modified str
    The modification time of the protection rule.
    id str
    The ID of the resource supplied above.
    resource str
    The protection object corresponding to the rule to be queried.
    rule_id int
    The protection rule ID.
    rule_name str
    The rule name.
    rule_status int
    Protection rule status.
    template_id int
    The protection template ID of the protection rule to be created.
    configs List<Property Map>
    Rule configuration content, in JSON format, constructed with a series of parameters.
    defenseOrigin String
    Sources of protection.
    defenseScene String
    The WAF protection scenario to be created.
    defenseType String
    The protection rule type. Value:
    gmtModified String
    The modification time of the protection rule.
    id String
    The ID of the resource supplied above.
    resource String
    The protection object corresponding to the rule to be queried.
    ruleId Number
    The protection rule ID.
    ruleName String
    The rule name.
    ruleStatus Number
    Protection rule status.
    templateId Number
    The protection template ID of the protection rule to be created.

    GetDefenseRulesRuleConfig

    AbroadRegions string
    The regions outside China from which you want to block requests.
    AccountIdentifiers List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigAccountIdentifier>
    The policies for account extraction.
    AutoUpdate bool
    Whether the new Web core protection rules are automatically updated.
    BypassRegularRules List<string>
    The list of regular rule IDs that are not detected.
    BypassRegularTypes List<string>
    The regular rule type is not detected.
    BypassTags List<string>
    The modules to which the whitelist applies.
    CcEffect string
    Set the effective range of the speed limit.
    CcStatus int
    Whether to open the speed limit.
    CnRegions string
    The regions in China from which you want to block requests.
    CodecLists List<string>
    The type to enable decoding.
    Conditions List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigCondition>
    The traffic characteristics of ACL, which are described in JSON format.
    GrayConfigs List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigGrayConfig>
    The canary release configuration for the rule.
    GrayStatus int
    Specifies whether to enable canary release for the rule.
    Mode int
    The HTTP flood protection mode.
    Protocol string
    The protocol type of the cached page address.
    RateLimits List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigRateLimit>
    The detailed speed limit configuration, which is described in the JSON string format.
    RemoteAddrs List<string>
    The IP addresses that you want to add to the blacklist.
    RuleAction string
    Web core protection rule action.
    ThrottleThrehold int
    The throttling threshold.
    ThrottleType string
    The throttling method.
    TimeConfigs List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigTimeConfig>
    The scheduled rule configuration.
    Ua string
    The User-Agent string that is allowed for access to the address.
    Url string
    The address of the cached page.
    WafBaseConfigs List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigWafBaseConfig>
    The configuration of the Web core protection rules to be modified.
    AbroadRegions string
    The regions outside China from which you want to block requests.
    AccountIdentifiers []GetDefenseRulesRuleConfigAccountIdentifier
    The policies for account extraction.
    AutoUpdate bool
    Whether the new Web core protection rules are automatically updated.
    BypassRegularRules []string
    The list of regular rule IDs that are not detected.
    BypassRegularTypes []string
    The regular rule type is not detected.
    BypassTags []string
    The modules to which the whitelist applies.
    CcEffect string
    Set the effective range of the speed limit.
    CcStatus int
    Whether to open the speed limit.
    CnRegions string
    The regions in China from which you want to block requests.
    CodecLists []string
    The type to enable decoding.
    Conditions []GetDefenseRulesRuleConfigCondition
    The traffic characteristics of ACL, which are described in JSON format.
    GrayConfigs []GetDefenseRulesRuleConfigGrayConfig
    The canary release configuration for the rule.
    GrayStatus int
    Specifies whether to enable canary release for the rule.
    Mode int
    The HTTP flood protection mode.
    Protocol string
    The protocol type of the cached page address.
    RateLimits []GetDefenseRulesRuleConfigRateLimit
    The detailed speed limit configuration, which is described in the JSON string format.
    RemoteAddrs []string
    The IP addresses that you want to add to the blacklist.
    RuleAction string
    Web core protection rule action.
    ThrottleThrehold int
    The throttling threshold.
    ThrottleType string
    The throttling method.
    TimeConfigs []GetDefenseRulesRuleConfigTimeConfig
    The scheduled rule configuration.
    Ua string
    The User-Agent string that is allowed for access to the address.
    Url string
    The address of the cached page.
    WafBaseConfigs []GetDefenseRulesRuleConfigWafBaseConfig
    The configuration of the Web core protection rules to be modified.
    abroad_regions string
    The regions outside China from which you want to block requests.
    account_identifiers list(object)
    The policies for account extraction.
    auto_update bool
    Whether the new Web core protection rules are automatically updated.
    bypass_regular_rules list(string)
    The list of regular rule IDs that are not detected.
    bypass_regular_types list(string)
    The regular rule type is not detected.
    bypass_tags list(string)
    The modules to which the whitelist applies.
    cc_effect string
    Set the effective range of the speed limit.
    cc_status number
    Whether to open the speed limit.
    cn_regions string
    The regions in China from which you want to block requests.
    codec_lists list(string)
    The type to enable decoding.
    conditions list(object)
    The traffic characteristics of ACL, which are described in JSON format.
    gray_configs list(object)
    The canary release configuration for the rule.
    gray_status number
    Specifies whether to enable canary release for the rule.
    mode number
    The HTTP flood protection mode.
    protocol string
    The protocol type of the cached page address.
    rate_limits list(object)
    The detailed speed limit configuration, which is described in the JSON string format.
    remote_addrs list(string)
    The IP addresses that you want to add to the blacklist.
    rule_action string
    Web core protection rule action.
    throttle_threhold number
    The throttling threshold.
    throttle_type string
    The throttling method.
    time_configs list(object)
    The scheduled rule configuration.
    ua string
    The User-Agent string that is allowed for access to the address.
    url string
    The address of the cached page.
    waf_base_configs list(object)
    The configuration of the Web core protection rules to be modified.
    abroadRegions String
    The regions outside China from which you want to block requests.
    accountIdentifiers List<GetDefenseRulesRuleConfigAccountIdentifier>
    The policies for account extraction.
    autoUpdate Boolean
    Whether the new Web core protection rules are automatically updated.
    bypassRegularRules List<String>
    The list of regular rule IDs that are not detected.
    bypassRegularTypes List<String>
    The regular rule type is not detected.
    bypassTags List<String>
    The modules to which the whitelist applies.
    ccEffect String
    Set the effective range of the speed limit.
    ccStatus Integer
    Whether to open the speed limit.
    cnRegions String
    The regions in China from which you want to block requests.
    codecLists List<String>
    The type to enable decoding.
    conditions List<GetDefenseRulesRuleConfigCondition>
    The traffic characteristics of ACL, which are described in JSON format.
    grayConfigs List<GetDefenseRulesRuleConfigGrayConfig>
    The canary release configuration for the rule.
    grayStatus Integer
    Specifies whether to enable canary release for the rule.
    mode Integer
    The HTTP flood protection mode.
    protocol String
    The protocol type of the cached page address.
    rateLimits List<GetDefenseRulesRuleConfigRateLimit>
    The detailed speed limit configuration, which is described in the JSON string format.
    remoteAddrs List<String>
    The IP addresses that you want to add to the blacklist.
    ruleAction String
    Web core protection rule action.
    throttleThrehold Integer
    The throttling threshold.
    throttleType String
    The throttling method.
    timeConfigs List<GetDefenseRulesRuleConfigTimeConfig>
    The scheduled rule configuration.
    ua String
    The User-Agent string that is allowed for access to the address.
    url String
    The address of the cached page.
    wafBaseConfigs List<GetDefenseRulesRuleConfigWafBaseConfig>
    The configuration of the Web core protection rules to be modified.
    abroadRegions string
    The regions outside China from which you want to block requests.
    accountIdentifiers GetDefenseRulesRuleConfigAccountIdentifier[]
    The policies for account extraction.
    autoUpdate boolean
    Whether the new Web core protection rules are automatically updated.
    bypassRegularRules string[]
    The list of regular rule IDs that are not detected.
    bypassRegularTypes string[]
    The regular rule type is not detected.
    bypassTags string[]
    The modules to which the whitelist applies.
    ccEffect string
    Set the effective range of the speed limit.
    ccStatus number
    Whether to open the speed limit.
    cnRegions string
    The regions in China from which you want to block requests.
    codecLists string[]
    The type to enable decoding.
    conditions GetDefenseRulesRuleConfigCondition[]
    The traffic characteristics of ACL, which are described in JSON format.
    grayConfigs GetDefenseRulesRuleConfigGrayConfig[]
    The canary release configuration for the rule.
    grayStatus number
    Specifies whether to enable canary release for the rule.
    mode number
    The HTTP flood protection mode.
    protocol string
    The protocol type of the cached page address.
    rateLimits GetDefenseRulesRuleConfigRateLimit[]
    The detailed speed limit configuration, which is described in the JSON string format.
    remoteAddrs string[]
    The IP addresses that you want to add to the blacklist.
    ruleAction string
    Web core protection rule action.
    throttleThrehold number
    The throttling threshold.
    throttleType string
    The throttling method.
    timeConfigs GetDefenseRulesRuleConfigTimeConfig[]
    The scheduled rule configuration.
    ua string
    The User-Agent string that is allowed for access to the address.
    url string
    The address of the cached page.
    wafBaseConfigs GetDefenseRulesRuleConfigWafBaseConfig[]
    The configuration of the Web core protection rules to be modified.
    abroad_regions str
    The regions outside China from which you want to block requests.
    account_identifiers Sequence[GetDefenseRulesRuleConfigAccountIdentifier]
    The policies for account extraction.
    auto_update bool
    Whether the new Web core protection rules are automatically updated.
    bypass_regular_rules Sequence[str]
    The list of regular rule IDs that are not detected.
    bypass_regular_types Sequence[str]
    The regular rule type is not detected.
    bypass_tags Sequence[str]
    The modules to which the whitelist applies.
    cc_effect str
    Set the effective range of the speed limit.
    cc_status int
    Whether to open the speed limit.
    cn_regions str
    The regions in China from which you want to block requests.
    codec_lists Sequence[str]
    The type to enable decoding.
    conditions Sequence[GetDefenseRulesRuleConfigCondition]
    The traffic characteristics of ACL, which are described in JSON format.
    gray_configs Sequence[GetDefenseRulesRuleConfigGrayConfig]
    The canary release configuration for the rule.
    gray_status int
    Specifies whether to enable canary release for the rule.
    mode int
    The HTTP flood protection mode.
    protocol str
    The protocol type of the cached page address.
    rate_limits Sequence[GetDefenseRulesRuleConfigRateLimit]
    The detailed speed limit configuration, which is described in the JSON string format.
    remote_addrs Sequence[str]
    The IP addresses that you want to add to the blacklist.
    rule_action str
    Web core protection rule action.
    throttle_threhold int
    The throttling threshold.
    throttle_type str
    The throttling method.
    time_configs Sequence[GetDefenseRulesRuleConfigTimeConfig]
    The scheduled rule configuration.
    ua str
    The User-Agent string that is allowed for access to the address.
    url str
    The address of the cached page.
    waf_base_configs Sequence[GetDefenseRulesRuleConfigWafBaseConfig]
    The configuration of the Web core protection rules to be modified.
    abroadRegions String
    The regions outside China from which you want to block requests.
    accountIdentifiers List<Property Map>
    The policies for account extraction.
    autoUpdate Boolean
    Whether the new Web core protection rules are automatically updated.
    bypassRegularRules List<String>
    The list of regular rule IDs that are not detected.
    bypassRegularTypes List<String>
    The regular rule type is not detected.
    bypassTags List<String>
    The modules to which the whitelist applies.
    ccEffect String
    Set the effective range of the speed limit.
    ccStatus Number
    Whether to open the speed limit.
    cnRegions String
    The regions in China from which you want to block requests.
    codecLists List<String>
    The type to enable decoding.
    conditions List<Property Map>
    The traffic characteristics of ACL, which are described in JSON format.
    grayConfigs List<Property Map>
    The canary release configuration for the rule.
    grayStatus Number
    Specifies whether to enable canary release for the rule.
    mode Number
    The HTTP flood protection mode.
    protocol String
    The protocol type of the cached page address.
    rateLimits List<Property Map>
    The detailed speed limit configuration, which is described in the JSON string format.
    remoteAddrs List<String>
    The IP addresses that you want to add to the blacklist.
    ruleAction String
    Web core protection rule action.
    throttleThrehold Number
    The throttling threshold.
    throttleType String
    The throttling method.
    timeConfigs List<Property Map>
    The scheduled rule configuration.
    ua String
    The User-Agent string that is allowed for access to the address.
    url String
    The address of the cached page.
    wafBaseConfigs List<Property Map>
    The configuration of the Web core protection rules to be modified.

    GetDefenseRulesRuleConfigAccountIdentifier

    DecodeType string
    The authentication mode.
    Key string
    Match field.
    Position string
    The field that stores the decoded account information.
    Priority int
    The priority of the current extraction configuration.
    SubKey string
    The characteristics of the statistical object.
    DecodeType string
    The authentication mode.
    Key string
    Match field.
    Position string
    The field that stores the decoded account information.
    Priority int
    The priority of the current extraction configuration.
    SubKey string
    The characteristics of the statistical object.
    decode_type string
    The authentication mode.
    key string
    Match field.
    position string
    The field that stores the decoded account information.
    priority number
    The priority of the current extraction configuration.
    sub_key string
    The characteristics of the statistical object.
    decodeType String
    The authentication mode.
    key String
    Match field.
    position String
    The field that stores the decoded account information.
    priority Integer
    The priority of the current extraction configuration.
    subKey String
    The characteristics of the statistical object.
    decodeType string
    The authentication mode.
    key string
    Match field.
    position string
    The field that stores the decoded account information.
    priority number
    The priority of the current extraction configuration.
    subKey string
    The characteristics of the statistical object.
    decode_type str
    The authentication mode.
    key str
    Match field.
    position str
    The field that stores the decoded account information.
    priority int
    The priority of the current extraction configuration.
    sub_key str
    The characteristics of the statistical object.
    decodeType String
    The authentication mode.
    key String
    Match field.
    position String
    The field that stores the decoded account information.
    priority Number
    The priority of the current extraction configuration.
    subKey String
    The characteristics of the statistical object.

    GetDefenseRulesRuleConfigCondition

    Key string
    Match field.
    OpValue string
    Logical character.
    SubKey string
    The characteristics of the statistical object.
    Values string
    Match the content and fill in the corresponding content as needed.
    Key string
    Match field.
    OpValue string
    Logical character.
    SubKey string
    The characteristics of the statistical object.
    Values string
    Match the content and fill in the corresponding content as needed.
    key string
    Match field.
    op_value string
    Logical character.
    sub_key string
    The characteristics of the statistical object.
    values string
    Match the content and fill in the corresponding content as needed.
    key String
    Match field.
    opValue String
    Logical character.
    subKey String
    The characteristics of the statistical object.
    values String
    Match the content and fill in the corresponding content as needed.
    key string
    Match field.
    opValue string
    Logical character.
    subKey string
    The characteristics of the statistical object.
    values string
    Match the content and fill in the corresponding content as needed.
    key str
    Match field.
    op_value str
    Logical character.
    sub_key str
    The characteristics of the statistical object.
    values str
    Match the content and fill in the corresponding content as needed.
    key String
    Match field.
    opValue String
    Logical character.
    subKey String
    The characteristics of the statistical object.
    values String
    Match the content and fill in the corresponding content as needed.

    GetDefenseRulesRuleConfigGrayConfig

    GrayRate int
    The percentage of traffic for which the canary release takes effect.
    GraySubKey string
    The sub-feature of the statistical object.
    GrayTarget string
    The type of the canary release object.
    GrayRate int
    The percentage of traffic for which the canary release takes effect.
    GraySubKey string
    The sub-feature of the statistical object.
    GrayTarget string
    The type of the canary release object.
    gray_rate number
    The percentage of traffic for which the canary release takes effect.
    gray_sub_key string
    The sub-feature of the statistical object.
    gray_target string
    The type of the canary release object.
    grayRate Integer
    The percentage of traffic for which the canary release takes effect.
    graySubKey String
    The sub-feature of the statistical object.
    grayTarget String
    The type of the canary release object.
    grayRate number
    The percentage of traffic for which the canary release takes effect.
    graySubKey string
    The sub-feature of the statistical object.
    grayTarget string
    The type of the canary release object.
    gray_rate int
    The percentage of traffic for which the canary release takes effect.
    gray_sub_key str
    The sub-feature of the statistical object.
    gray_target str
    The type of the canary release object.
    grayRate Number
    The percentage of traffic for which the canary release takes effect.
    graySubKey String
    The sub-feature of the statistical object.
    grayTarget String
    The type of the canary release object.

    GetDefenseRulesRuleConfigRateLimit

    Interval int
    The statistical period, in seconds.
    Statuses List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigRateLimitStatus>
    Response code frequency setting.
    SubKey string
    The characteristics of the statistical object.
    Target string
    The type of the statistical object.
    Threshold int
    The maximum number of requests that can be sent from a statistical object.
    Ttl int
    The period of time during which you want the specified action to be valid.
    Interval int
    The statistical period, in seconds.
    Statuses []GetDefenseRulesRuleConfigRateLimitStatus
    Response code frequency setting.
    SubKey string
    The characteristics of the statistical object.
    Target string
    The type of the statistical object.
    Threshold int
    The maximum number of requests that can be sent from a statistical object.
    Ttl int
    The period of time during which you want the specified action to be valid.
    interval number
    The statistical period, in seconds.
    statuses list(object)
    Response code frequency setting.
    sub_key string
    The characteristics of the statistical object.
    target string
    The type of the statistical object.
    threshold number
    The maximum number of requests that can be sent from a statistical object.
    ttl number
    The period of time during which you want the specified action to be valid.
    interval Integer
    The statistical period, in seconds.
    statuses List<GetDefenseRulesRuleConfigRateLimitStatus>
    Response code frequency setting.
    subKey String
    The characteristics of the statistical object.
    target String
    The type of the statistical object.
    threshold Integer
    The maximum number of requests that can be sent from a statistical object.
    ttl Integer
    The period of time during which you want the specified action to be valid.
    interval number
    The statistical period, in seconds.
    statuses GetDefenseRulesRuleConfigRateLimitStatus[]
    Response code frequency setting.
    subKey string
    The characteristics of the statistical object.
    target string
    The type of the statistical object.
    threshold number
    The maximum number of requests that can be sent from a statistical object.
    ttl number
    The period of time during which you want the specified action to be valid.
    interval int
    The statistical period, in seconds.
    statuses Sequence[GetDefenseRulesRuleConfigRateLimitStatus]
    Response code frequency setting.
    sub_key str
    The characteristics of the statistical object.
    target str
    The type of the statistical object.
    threshold int
    The maximum number of requests that can be sent from a statistical object.
    ttl int
    The period of time during which you want the specified action to be valid.
    interval Number
    The statistical period, in seconds.
    statuses List<Property Map>
    Response code frequency setting.
    subKey String
    The characteristics of the statistical object.
    target String
    The type of the statistical object.
    threshold Number
    The maximum number of requests that can be sent from a statistical object.
    ttl Number
    The period of time during which you want the specified action to be valid.

    GetDefenseRulesRuleConfigRateLimitStatus

    Code int
    Required.
    Count int
    The threshold for the number of occurrences.
    Ratio int
    The threshold for the proportion of occurrences (percentage).
    Code int
    Required.
    Count int
    The threshold for the number of occurrences.
    Ratio int
    The threshold for the proportion of occurrences (percentage).
    code number
    Required.
    count number
    The threshold for the number of occurrences.
    ratio number
    The threshold for the proportion of occurrences (percentage).
    code Integer
    Required.
    count Integer
    The threshold for the number of occurrences.
    ratio Integer
    The threshold for the proportion of occurrences (percentage).
    code number
    Required.
    count number
    The threshold for the number of occurrences.
    ratio number
    The threshold for the proportion of occurrences (percentage).
    code int
    Required.
    count int
    The threshold for the number of occurrences.
    ratio int
    The threshold for the proportion of occurrences (percentage).
    code Number
    Required.
    count Number
    The threshold for the number of occurrences.
    ratio Number
    The threshold for the proportion of occurrences (percentage).

    GetDefenseRulesRuleConfigTimeConfig

    TimePeriods List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigTimeConfigTimePeriod>
    The time period during which the rule is effective.
    TimeScope string
    The effective period of the rule.
    TimeZone int
    The time zone in which the rule is effective.
    WeekTimePeriods List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigTimeConfigWeekTimePeriod>
    The periodic time period during which the rule is effective.
    TimePeriods []GetDefenseRulesRuleConfigTimeConfigTimePeriod
    The time period during which the rule is effective.
    TimeScope string
    The effective period of the rule.
    TimeZone int
    The time zone in which the rule is effective.
    WeekTimePeriods []GetDefenseRulesRuleConfigTimeConfigWeekTimePeriod
    The periodic time period during which the rule is effective.
    time_periods list(object)
    The time period during which the rule is effective.
    time_scope string
    The effective period of the rule.
    time_zone number
    The time zone in which the rule is effective.
    week_time_periods list(object)
    The periodic time period during which the rule is effective.
    timePeriods List<GetDefenseRulesRuleConfigTimeConfigTimePeriod>
    The time period during which the rule is effective.
    timeScope String
    The effective period of the rule.
    timeZone Integer
    The time zone in which the rule is effective.
    weekTimePeriods List<GetDefenseRulesRuleConfigTimeConfigWeekTimePeriod>
    The periodic time period during which the rule is effective.
    timePeriods GetDefenseRulesRuleConfigTimeConfigTimePeriod[]
    The time period during which the rule is effective.
    timeScope string
    The effective period of the rule.
    timeZone number
    The time zone in which the rule is effective.
    weekTimePeriods GetDefenseRulesRuleConfigTimeConfigWeekTimePeriod[]
    The periodic time period during which the rule is effective.
    time_periods Sequence[GetDefenseRulesRuleConfigTimeConfigTimePeriod]
    The time period during which the rule is effective.
    time_scope str
    The effective period of the rule.
    time_zone int
    The time zone in which the rule is effective.
    week_time_periods Sequence[GetDefenseRulesRuleConfigTimeConfigWeekTimePeriod]
    The periodic time period during which the rule is effective.
    timePeriods List<Property Map>
    The time period during which the rule is effective.
    timeScope String
    The effective period of the rule.
    timeZone Number
    The time zone in which the rule is effective.
    weekTimePeriods List<Property Map>
    The periodic time period during which the rule is effective.

    GetDefenseRulesRuleConfigTimeConfigTimePeriod

    End int
    The end time of each day when the rule is effective.
    Start int
    The start time of each day when the rule is effective.
    End int
    The end time of each day when the rule is effective.
    Start int
    The start time of each day when the rule is effective.
    end number
    The end time of each day when the rule is effective.
    start number
    The start time of each day when the rule is effective.
    end Integer
    The end time of each day when the rule is effective.
    start Integer
    The start time of each day when the rule is effective.
    end number
    The end time of each day when the rule is effective.
    start number
    The start time of each day when the rule is effective.
    end int
    The end time of each day when the rule is effective.
    start int
    The start time of each day when the rule is effective.
    end Number
    The end time of each day when the rule is effective.
    start Number
    The start time of each day when the rule is effective.

    GetDefenseRulesRuleConfigTimeConfigWeekTimePeriod

    Day string
    The time period of each day when the rule is effective.
    DayPeriods List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigTimeConfigWeekTimePeriodDayPeriod>
    The time period of each day when the rule is effective.
    Day string
    The time period of each day when the rule is effective.
    DayPeriods []GetDefenseRulesRuleConfigTimeConfigWeekTimePeriodDayPeriod
    The time period of each day when the rule is effective.
    day string
    The time period of each day when the rule is effective.
    day_periods list(object)
    The time period of each day when the rule is effective.
    day String
    The time period of each day when the rule is effective.
    dayPeriods List<GetDefenseRulesRuleConfigTimeConfigWeekTimePeriodDayPeriod>
    The time period of each day when the rule is effective.
    day string
    The time period of each day when the rule is effective.
    dayPeriods GetDefenseRulesRuleConfigTimeConfigWeekTimePeriodDayPeriod[]
    The time period of each day when the rule is effective.
    day str
    The time period of each day when the rule is effective.
    day_periods Sequence[GetDefenseRulesRuleConfigTimeConfigWeekTimePeriodDayPeriod]
    The time period of each day when the rule is effective.
    day String
    The time period of each day when the rule is effective.
    dayPeriods List<Property Map>
    The time period of each day when the rule is effective.

    GetDefenseRulesRuleConfigTimeConfigWeekTimePeriodDayPeriod

    End int
    The end time of each day when the rule is effective.
    Start int
    The start time of each day when the rule is effective.
    End int
    The end time of each day when the rule is effective.
    Start int
    The start time of each day when the rule is effective.
    end number
    The end time of each day when the rule is effective.
    start number
    The start time of each day when the rule is effective.
    end Integer
    The end time of each day when the rule is effective.
    start Integer
    The start time of each day when the rule is effective.
    end number
    The end time of each day when the rule is effective.
    start number
    The start time of each day when the rule is effective.
    end int
    The end time of each day when the rule is effective.
    start int
    The start time of each day when the rule is effective.
    end Number
    The end time of each day when the rule is effective.
    start Number
    The start time of each day when the rule is effective.

    GetDefenseRulesRuleConfigWafBaseConfig

    RuleBatchOperationConfig string
    The batch operation on rules.
    RuleDetails List<Pulumi.AliCloud.Wafv3.Inputs.GetDefenseRulesRuleConfigWafBaseConfigRuleDetail>
    The configuration of the Web core protection rules to be modified.
    RuleType string
    The protection rule type. Value:
    RuleBatchOperationConfig string
    The batch operation on rules.
    RuleDetails []GetDefenseRulesRuleConfigWafBaseConfigRuleDetail
    The configuration of the Web core protection rules to be modified.
    RuleType string
    The protection rule type. Value:
    rule_batch_operation_config string
    The batch operation on rules.
    rule_details list(object)
    The configuration of the Web core protection rules to be modified.
    rule_type string
    The protection rule type. Value:
    ruleBatchOperationConfig String
    The batch operation on rules.
    ruleDetails List<GetDefenseRulesRuleConfigWafBaseConfigRuleDetail>
    The configuration of the Web core protection rules to be modified.
    ruleType String
    The protection rule type. Value:
    ruleBatchOperationConfig string
    The batch operation on rules.
    ruleDetails GetDefenseRulesRuleConfigWafBaseConfigRuleDetail[]
    The configuration of the Web core protection rules to be modified.
    ruleType string
    The protection rule type. Value:
    rule_batch_operation_config str
    The batch operation on rules.
    rule_details Sequence[GetDefenseRulesRuleConfigWafBaseConfigRuleDetail]
    The configuration of the Web core protection rules to be modified.
    rule_type str
    The protection rule type. Value:
    ruleBatchOperationConfig String
    The batch operation on rules.
    ruleDetails List<Property Map>
    The configuration of the Web core protection rules to be modified.
    ruleType String
    The protection rule type. Value:

    GetDefenseRulesRuleConfigWafBaseConfigRuleDetail

    RuleAction string
    Web core protection rule action.
    RuleId string
    The protection rule ID.
    RuleStatus int
    Protection rule status.
    RuleAction string
    Web core protection rule action.
    RuleId string
    The protection rule ID.
    RuleStatus int
    Protection rule status.
    rule_action string
    Web core protection rule action.
    rule_id string
    The protection rule ID.
    rule_status number
    Protection rule status.
    ruleAction String
    Web core protection rule action.
    ruleId String
    The protection rule ID.
    ruleStatus Integer
    Protection rule status.
    ruleAction string
    Web core protection rule action.
    ruleId string
    The protection rule ID.
    ruleStatus number
    Protection rule status.
    rule_action str
    Web core protection rule action.
    rule_id str
    The protection rule ID.
    rule_status int
    Protection rule status.
    ruleAction String
    Web core protection rule action.
    ruleId String
    The protection rule ID.
    ruleStatus Number
    Protection rule status.

    Package Details

    Repository
    Alibaba Cloud pulumi/pulumi-alicloud
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the alicloud Terraform Provider.
    alicloud logo
    Viewing docs for Alibaba Cloud v3.105.0
    published on Thursday, Jul 16, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial