@byteplus/pulumi-bytepluscc 0.0.53 → 0.0.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/billing/financialRelation.d.ts +211 -0
- package/billing/financialRelation.d.ts.map +1 -0
- package/billing/financialRelation.js +130 -0
- package/billing/financialRelation.js.map +1 -0
- package/billing/getFinancialRelation.d.ts +102 -0
- package/billing/getFinancialRelation.d.ts.map +1 -0
- package/billing/getFinancialRelation.js +51 -0
- package/billing/getFinancialRelation.js.map +1 -0
- package/billing/getFinancialRelations.d.ts +23 -0
- package/billing/getFinancialRelations.d.ts.map +1 -0
- package/billing/getFinancialRelations.js +47 -0
- package/billing/getFinancialRelations.js.map +1 -0
- package/billing/index.d.ts +10 -0
- package/billing/index.d.ts.map +1 -0
- package/billing/index.js +51 -0
- package/billing/index.js.map +1 -0
- package/cloudmonitor/alertTemplate.d.ts +252 -0
- package/cloudmonitor/alertTemplate.d.ts.map +1 -0
- package/cloudmonitor/alertTemplate.js +172 -0
- package/cloudmonitor/alertTemplate.js.map +1 -0
- package/cloudmonitor/getAlertTemplate.d.ts +90 -0
- package/cloudmonitor/getAlertTemplate.d.ts.map +1 -0
- package/cloudmonitor/getAlertTemplate.js +51 -0
- package/cloudmonitor/getAlertTemplate.js.map +1 -0
- package/cloudmonitor/getAlertTemplates.d.ts +23 -0
- package/cloudmonitor/getAlertTemplates.d.ts.map +1 -0
- package/cloudmonitor/getAlertTemplates.js +47 -0
- package/cloudmonitor/getAlertTemplates.js.map +1 -0
- package/cloudmonitor/getObjectGroup.d.ts +66 -0
- package/cloudmonitor/getObjectGroup.d.ts.map +1 -0
- package/cloudmonitor/getObjectGroup.js +51 -0
- package/cloudmonitor/getObjectGroup.js.map +1 -0
- package/cloudmonitor/getObjectGroups.d.ts +23 -0
- package/cloudmonitor/getObjectGroups.d.ts.map +1 -0
- package/cloudmonitor/getObjectGroups.js +47 -0
- package/cloudmonitor/getObjectGroups.js.map +1 -0
- package/cloudmonitor/index.d.ts +18 -0
- package/cloudmonitor/index.d.ts.map +1 -1
- package/cloudmonitor/index.js +23 -1
- package/cloudmonitor/index.js.map +1 -1
- package/cloudmonitor/objectGroup.d.ts +143 -0
- package/cloudmonitor/objectGroup.d.ts.map +1 -0
- package/cloudmonitor/objectGroup.js +124 -0
- package/cloudmonitor/objectGroup.js.map +1 -0
- package/ecs/getInstance.d.ts +1 -0
- package/ecs/getInstance.d.ts.map +1 -1
- package/ecs/getInstance.js.map +1 -1
- package/ecs/instance.d.ts +8 -0
- package/ecs/instance.d.ts.map +1 -1
- package/ecs/instance.js +2 -0
- package/ecs/instance.js.map +1 -1
- package/hbase/instance.d.ts +0 -5
- package/hbase/instance.d.ts.map +1 -1
- package/hbase/instance.js +1 -1
- package/hbase/instance.js.map +1 -1
- package/index.d.ts +3 -1
- package/index.d.ts.map +1 -1
- package/index.js +6 -1
- package/index.js.map +1 -1
- package/mongodb/getInstance.d.ts +24 -0
- package/mongodb/getInstance.d.ts.map +1 -1
- package/mongodb/getInstance.js.map +1 -1
- package/mongodb/instance.d.ts +68 -0
- package/mongodb/instance.d.ts.map +1 -1
- package/mongodb/instance.js +12 -0
- package/mongodb/instance.js.map +1 -1
- package/package.json +1 -1
- package/rdsmssql/getInstance.d.ts +12 -0
- package/rdsmssql/getInstance.d.ts.map +1 -1
- package/rdsmssql/getInstance.js.map +1 -1
- package/rdsmssql/instance.d.ts +32 -0
- package/rdsmssql/instance.d.ts.map +1 -1
- package/rdsmssql/instance.js +6 -0
- package/rdsmssql/instance.js.map +1 -1
- package/rdspostgresql/getInstance.d.ts +4 -0
- package/rdspostgresql/getInstance.d.ts.map +1 -1
- package/rdspostgresql/getInstance.js.map +1 -1
- package/rdspostgresql/instance.d.ts +12 -0
- package/rdspostgresql/instance.d.ts.map +1 -1
- package/rdspostgresql/instance.js +2 -0
- package/rdspostgresql/instance.js.map +1 -1
- package/redis/getInstance.d.ts +4 -0
- package/redis/getInstance.d.ts.map +1 -1
- package/redis/getInstance.js.map +1 -1
- package/redis/instance.d.ts +12 -0
- package/redis/instance.d.ts.map +1 -1
- package/redis/instance.js +2 -0
- package/redis/instance.js.map +1 -1
- package/securitycenter/agent.d.ts +221 -0
- package/securitycenter/agent.d.ts.map +1 -0
- package/securitycenter/agent.js +131 -0
- package/securitycenter/agent.js.map +1 -0
- package/securitycenter/getAgent.d.ts +118 -0
- package/securitycenter/getAgent.d.ts.map +1 -0
- package/securitycenter/getAgent.js +51 -0
- package/securitycenter/getAgent.js.map +1 -0
- package/securitycenter/getAgents.d.ts +23 -0
- package/securitycenter/getAgents.d.ts.map +1 -0
- package/securitycenter/getAgents.js +47 -0
- package/securitycenter/getAgents.js.map +1 -0
- package/securitycenter/index.d.ts +10 -0
- package/securitycenter/index.d.ts.map +1 -0
- package/securitycenter/index.js +51 -0
- package/securitycenter/index.js.map +1 -0
- package/transitrouter/getTransitRouterForwardPolicyEntries.d.ts +23 -0
- package/transitrouter/getTransitRouterForwardPolicyEntries.d.ts.map +1 -0
- package/transitrouter/getTransitRouterForwardPolicyEntries.js +47 -0
- package/transitrouter/getTransitRouterForwardPolicyEntries.js.map +1 -0
- package/transitrouter/getTransitRouterForwardPolicyEntry.d.ts +77 -0
- package/transitrouter/getTransitRouterForwardPolicyEntry.d.ts.map +1 -0
- package/transitrouter/getTransitRouterForwardPolicyEntry.js +51 -0
- package/transitrouter/getTransitRouterForwardPolicyEntry.js.map +1 -0
- package/transitrouter/getTransitRouterRoutePolicyTable.d.ts +73 -0
- package/transitrouter/getTransitRouterRoutePolicyTable.d.ts.map +1 -0
- package/transitrouter/getTransitRouterRoutePolicyTable.js +51 -0
- package/transitrouter/getTransitRouterRoutePolicyTable.js.map +1 -0
- package/transitrouter/getTransitRouterRoutePolicyTables.d.ts +23 -0
- package/transitrouter/getTransitRouterRoutePolicyTables.d.ts.map +1 -0
- package/transitrouter/getTransitRouterRoutePolicyTables.js +47 -0
- package/transitrouter/getTransitRouterRoutePolicyTables.js.map +1 -0
- package/transitrouter/index.d.ts +18 -0
- package/transitrouter/index.d.ts.map +1 -1
- package/transitrouter/index.js +24 -2
- package/transitrouter/index.js.map +1 -1
- package/transitrouter/transitRouterForwardPolicyEntry.d.ts +166 -0
- package/transitrouter/transitRouterForwardPolicyEntry.d.ts.map +1 -0
- package/transitrouter/transitRouterForwardPolicyEntry.js +127 -0
- package/transitrouter/transitRouterForwardPolicyEntry.js.map +1 -0
- package/transitrouter/transitRouterRoutePolicyTable.d.ts +148 -0
- package/transitrouter/transitRouterRoutePolicyTable.d.ts.map +1 -0
- package/transitrouter/transitRouterRoutePolicyTable.js +117 -0
- package/transitrouter/transitRouterRoutePolicyTable.js.map +1 -0
- package/types/input.d.ts +774 -81
- package/types/input.d.ts.map +1 -1
- package/types/output.d.ts +1594 -221
- package/types/output.d.ts.map +1 -1
- package/vke/getNodePool.d.ts +3 -3
- package/vke/getNodepoolScalingPolicies.d.ts +23 -0
- package/vke/getNodepoolScalingPolicies.d.ts.map +1 -0
- package/vke/getNodepoolScalingPolicies.js +47 -0
- package/vke/getNodepoolScalingPolicies.js.map +1 -0
- package/vke/getNodepoolScalingPolicy.d.ts +82 -0
- package/vke/getNodepoolScalingPolicy.d.ts.map +1 -0
- package/vke/getNodepoolScalingPolicy.js +51 -0
- package/vke/getNodepoolScalingPolicy.js.map +1 -0
- package/vke/index.d.ts +9 -0
- package/vke/index.d.ts.map +1 -1
- package/vke/index.js +12 -1
- package/vke/index.js.map +1 -1
- package/vke/nodePool.d.ts +9 -9
- package/vke/nodepoolScalingPolicy.d.ts +191 -0
- package/vke/nodepoolScalingPolicy.d.ts.map +1 -0
- package/vke/nodepoolScalingPolicy.js +140 -0
- package/vke/nodepoolScalingPolicy.js.map +1 -0
- package/vpc/getIpamResourceDiscoveries.d.ts +23 -0
- package/vpc/getIpamResourceDiscoveries.d.ts.map +1 -0
- package/vpc/getIpamResourceDiscoveries.js +47 -0
- package/vpc/getIpamResourceDiscoveries.js.map +1 -0
- package/vpc/getIpamResourceDiscovery.d.ts +90 -0
- package/vpc/getIpamResourceDiscovery.d.ts.map +1 -0
- package/vpc/getIpamResourceDiscovery.js +51 -0
- package/vpc/getIpamResourceDiscovery.js.map +1 -0
- package/vpc/index.d.ts +9 -0
- package/vpc/index.d.ts.map +1 -1
- package/vpc/index.js +14 -3
- package/vpc/index.js.map +1 -1
- package/vpc/ipamResourceDiscovery.d.ts +194 -0
- package/vpc/ipamResourceDiscovery.d.ts.map +1 -0
- package/vpc/ipamResourceDiscovery.js +128 -0
- package/vpc/ipamResourceDiscovery.js.map +1 -0
- package/waf/botAnalyseProtectRule.d.ts +316 -0
- package/waf/botAnalyseProtectRule.d.ts.map +1 -0
- package/waf/botAnalyseProtectRule.js +171 -0
- package/waf/botAnalyseProtectRule.js.map +1 -0
- package/waf/customBot.d.ts +207 -0
- package/waf/customBot.d.ts.map +1 -0
- package/waf/customBot.js +150 -0
- package/waf/customBot.js.map +1 -0
- package/waf/getBotAnalyseProtectRule.d.ts +126 -0
- package/waf/getBotAnalyseProtectRule.d.ts.map +1 -0
- package/waf/getBotAnalyseProtectRule.js +51 -0
- package/waf/getBotAnalyseProtectRule.js.map +1 -0
- package/waf/getBotAnalyseProtectRules.d.ts +23 -0
- package/waf/getBotAnalyseProtectRules.d.ts.map +1 -0
- package/waf/getBotAnalyseProtectRules.js +47 -0
- package/waf/getBotAnalyseProtectRules.js.map +1 -0
- package/waf/getCustomBot.d.ts +86 -0
- package/waf/getCustomBot.d.ts.map +1 -0
- package/waf/getCustomBot.js +51 -0
- package/waf/getCustomBot.js.map +1 -0
- package/waf/getCustomBots.d.ts +23 -0
- package/waf/getCustomBots.d.ts.map +1 -0
- package/waf/getCustomBots.js +47 -0
- package/waf/getCustomBots.js.map +1 -0
- package/waf/index.d.ts +18 -0
- package/waf/index.d.ts.map +1 -1
- package/waf/index.js +23 -1
- package/waf/index.js.map +1 -1
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import * as inputs from "../types/input";
|
|
3
|
+
import * as outputs from "../types/output";
|
|
4
|
+
/**
|
|
5
|
+
* WAF Bot statistical protection rule. Applies to Bot frequency limit (StatisticalType=1) and Bot repeat statistics (StatisticalType=2/3) scenarios. Restricts requests based on objects such as request IP, Session, Header, etc.
|
|
6
|
+
*
|
|
7
|
+
* ## Example Usage
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
11
|
+
* import * as bytepluscc from "@byteplus/pulumi-bytepluscc";
|
|
12
|
+
*
|
|
13
|
+
* const example = new bytepluscc.waf.BotAnalyseProtectRule("example", {
|
|
14
|
+
* actionType: 1,
|
|
15
|
+
* enable: 1,
|
|
16
|
+
* field: "CLIENTIP",
|
|
17
|
+
* host: "www.testwaf.com",
|
|
18
|
+
* name: "ccapi-bot-analyse-required",
|
|
19
|
+
* path: "/ccapi-required",
|
|
20
|
+
* pathThreshold: 10,
|
|
21
|
+
* rulePriority: 0,
|
|
22
|
+
* singleThreshold: 3,
|
|
23
|
+
* statisticalDuration: 30,
|
|
24
|
+
* statisticalType: "1",
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* ## Import
|
|
29
|
+
*
|
|
30
|
+
* ```sh
|
|
31
|
+
* $ pulumi import bytepluscc:waf/botAnalyseProtectRule:BotAnalyseProtectRule example "host|rule_id|statistical_type"
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare class BotAnalyseProtectRule extends pulumi.CustomResource {
|
|
35
|
+
/**
|
|
36
|
+
* Get an existing BotAnalyseProtectRule resource's state with the given name, ID, and optional extra
|
|
37
|
+
* properties used to qualify the lookup.
|
|
38
|
+
*
|
|
39
|
+
* @param name The _unique_ name of the resulting resource.
|
|
40
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
41
|
+
* @param state Any extra arguments used during the lookup.
|
|
42
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
43
|
+
*/
|
|
44
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: BotAnalyseProtectRuleState, opts?: pulumi.CustomResourceOptions): BotAnalyseProtectRule;
|
|
45
|
+
/**
|
|
46
|
+
* Returns true if the given object is an instance of BotAnalyseProtectRule. This is designed to work even
|
|
47
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
48
|
+
*/
|
|
49
|
+
static isInstance(obj: any): obj is BotAnalyseProtectRule;
|
|
50
|
+
/**
|
|
51
|
+
* Advanced condition group. Do not include this field if not enabled or if the list is empty.
|
|
52
|
+
*/
|
|
53
|
+
readonly accurateGroup: pulumi.Output<outputs.waf.BotAnalyseProtectRuleAccurateGroup>;
|
|
54
|
+
/**
|
|
55
|
+
* Follow-up actions after challenge verification succeeds. Applies only when ActionType is 6 (JS challenge), 7 (human verification), or 10 (proof of work). 1: Block; 2: Monitor.
|
|
56
|
+
*/
|
|
57
|
+
readonly actionAfterVerification: pulumi.Output<number>;
|
|
58
|
+
/**
|
|
59
|
+
* Action to execute. 0: Observe; 1: Rate limit (supported only in frequency limit scenario, i.e., StatisticalType=1); 2: Block; 6: JS challenge; 7: CAPTCHA; 10: Proof of work; 11: Drop.
|
|
60
|
+
*/
|
|
61
|
+
readonly actionType: pulumi.Output<number>;
|
|
62
|
+
/**
|
|
63
|
+
* Periodic cycle configuration list. Supported only for frequency limit rules with StatisticalType=1. Threshold switching is specified by crontab.
|
|
64
|
+
* Important Note: When using SetNestedAttribute, you must fully define all attributes of its nested structure. Incomplete definitions may cause Terraform to detect unexpected differences during plan comparison, triggering unnecessary resource updates and affecting resource stability and predictability.
|
|
65
|
+
*/
|
|
66
|
+
readonly cronConfs: pulumi.Output<outputs.waf.BotAnalyseProtectRuleCronConf[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Action effective duration in seconds, range 30~86400. Required when creating or updating rules except for ActionType=1 (rate limiting).
|
|
69
|
+
*/
|
|
70
|
+
readonly effectTime: pulumi.Output<number>;
|
|
71
|
+
/**
|
|
72
|
+
* Rule switch. 0: Off; 1: On.
|
|
73
|
+
*/
|
|
74
|
+
readonly enable: pulumi.Output<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Exemption time for human verification, JS challenge, or proof of work, in seconds. Range 30~3600. Applies only when ActionType is 6/7/10.
|
|
77
|
+
*/
|
|
78
|
+
readonly exemptionTime: pulumi.Output<number>;
|
|
79
|
+
/**
|
|
80
|
+
* Statistical object. Supports single or multiple fields, separated by commas. Maximum of 10 fields. Basic format is DataType:Value, for example HEADER:X-Forwarded-For, CLIENTIP, COOKIE:token, ARGS:device_id, JA3HASH.
|
|
81
|
+
*/
|
|
82
|
+
readonly field: pulumi.Output<string>;
|
|
83
|
+
/**
|
|
84
|
+
* Domain name. The website domain to be protected. Make sure the domain has been added to the current WAF instance before calling.
|
|
85
|
+
*/
|
|
86
|
+
readonly host: pulumi.Output<string>;
|
|
87
|
+
/**
|
|
88
|
+
* Rule name. Must start with Chinese/letter/number. Allows Chinese/letters/numbers/period (.)/underscore (_)/hyphen (-). Length 1~128 characters.
|
|
89
|
+
*/
|
|
90
|
+
readonly name: pulumi.Output<string>;
|
|
91
|
+
/**
|
|
92
|
+
* JS challenge or CAPTCHA pass rate. Returned only when ActionType is 6/7/10.
|
|
93
|
+
*/
|
|
94
|
+
readonly passRatio: pulumi.Output<number>;
|
|
95
|
+
/**
|
|
96
|
+
* Request path to which the rule applies. You can specify an exact page path, match the entire site, or all paths under a directory (using wildcard *). The wildcard * can only appear at the end of the path.
|
|
97
|
+
*/
|
|
98
|
+
readonly path: pulumi.Output<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Overall threshold for the current path. Effective only when StatisticalType=1. Range 1~300000.
|
|
101
|
+
*/
|
|
102
|
+
readonly pathThreshold: pulumi.Output<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Project name, which is the project associated with the current resource. Only projects with permissions under the current identity can be associated.
|
|
105
|
+
*/
|
|
106
|
+
readonly projectName: pulumi.Output<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Bot statistical protection rule ID.
|
|
109
|
+
*/
|
|
110
|
+
readonly ruleId: pulumi.Output<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Rule priority under the same path and advanced condition. Range 0~9, with 0 being the highest priority.
|
|
113
|
+
*/
|
|
114
|
+
readonly rulePriority: pulumi.Output<number>;
|
|
115
|
+
/**
|
|
116
|
+
* Rule display ID. Frequency limit rule prefix is R (e.g., R000000018673); repeated statistics rule prefix is S (e.g., S000000018674).
|
|
117
|
+
*/
|
|
118
|
+
readonly ruleTag: pulumi.Output<string>;
|
|
119
|
+
/**
|
|
120
|
+
* Ratio threshold for a single statistical object. Enabled only when StatisticalType=3 (repeat ratio). Value range: [0, 1).
|
|
121
|
+
*/
|
|
122
|
+
readonly singleProportion: pulumi.Output<number>;
|
|
123
|
+
/**
|
|
124
|
+
* Threshold for the number of times per statistical object. Used only when StatisticalType=1. Range 1~300000.
|
|
125
|
+
*/
|
|
126
|
+
readonly singleThreshold: pulumi.Output<number>;
|
|
127
|
+
/**
|
|
128
|
+
* Statistical time window, in seconds. Frequency limit scenario (StatisticalType=1): 5~1800; repeat statistics scenario (StatisticalType=2/3): 1~60.
|
|
129
|
+
*/
|
|
130
|
+
readonly statisticalDuration: pulumi.Output<number>;
|
|
131
|
+
/**
|
|
132
|
+
* Statistical method. "1": access frequency; "2": repeat count; "3": repeat ratio.
|
|
133
|
+
*/
|
|
134
|
+
readonly statisticalType: pulumi.Output<string>;
|
|
135
|
+
/**
|
|
136
|
+
* Last update time of the rule.
|
|
137
|
+
*/
|
|
138
|
+
readonly updateTime: pulumi.Output<string>;
|
|
139
|
+
/**
|
|
140
|
+
* Create a BotAnalyseProtectRule resource with the given unique name, arguments, and options.
|
|
141
|
+
*
|
|
142
|
+
* @param name The _unique_ name of the resource.
|
|
143
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
144
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
145
|
+
*/
|
|
146
|
+
constructor(name: string, args: BotAnalyseProtectRuleArgs, opts?: pulumi.CustomResourceOptions);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Input properties used for looking up and filtering BotAnalyseProtectRule resources.
|
|
150
|
+
*/
|
|
151
|
+
export interface BotAnalyseProtectRuleState {
|
|
152
|
+
/**
|
|
153
|
+
* Advanced condition group. Do not include this field if not enabled or if the list is empty.
|
|
154
|
+
*/
|
|
155
|
+
accurateGroup?: pulumi.Input<inputs.waf.BotAnalyseProtectRuleAccurateGroup | undefined>;
|
|
156
|
+
/**
|
|
157
|
+
* Follow-up actions after challenge verification succeeds. Applies only when ActionType is 6 (JS challenge), 7 (human verification), or 10 (proof of work). 1: Block; 2: Monitor.
|
|
158
|
+
*/
|
|
159
|
+
actionAfterVerification?: pulumi.Input<number | undefined>;
|
|
160
|
+
/**
|
|
161
|
+
* Action to execute. 0: Observe; 1: Rate limit (supported only in frequency limit scenario, i.e., StatisticalType=1); 2: Block; 6: JS challenge; 7: CAPTCHA; 10: Proof of work; 11: Drop.
|
|
162
|
+
*/
|
|
163
|
+
actionType?: pulumi.Input<number | undefined>;
|
|
164
|
+
/**
|
|
165
|
+
* Periodic cycle configuration list. Supported only for frequency limit rules with StatisticalType=1. Threshold switching is specified by crontab.
|
|
166
|
+
* Important Note: When using SetNestedAttribute, you must fully define all attributes of its nested structure. Incomplete definitions may cause Terraform to detect unexpected differences during plan comparison, triggering unnecessary resource updates and affecting resource stability and predictability.
|
|
167
|
+
*/
|
|
168
|
+
cronConfs?: pulumi.Input<pulumi.Input<inputs.waf.BotAnalyseProtectRuleCronConf>[] | undefined>;
|
|
169
|
+
/**
|
|
170
|
+
* Action effective duration in seconds, range 30~86400. Required when creating or updating rules except for ActionType=1 (rate limiting).
|
|
171
|
+
*/
|
|
172
|
+
effectTime?: pulumi.Input<number | undefined>;
|
|
173
|
+
/**
|
|
174
|
+
* Rule switch. 0: Off; 1: On.
|
|
175
|
+
*/
|
|
176
|
+
enable?: pulumi.Input<number | undefined>;
|
|
177
|
+
/**
|
|
178
|
+
* Exemption time for human verification, JS challenge, or proof of work, in seconds. Range 30~3600. Applies only when ActionType is 6/7/10.
|
|
179
|
+
*/
|
|
180
|
+
exemptionTime?: pulumi.Input<number | undefined>;
|
|
181
|
+
/**
|
|
182
|
+
* Statistical object. Supports single or multiple fields, separated by commas. Maximum of 10 fields. Basic format is DataType:Value, for example HEADER:X-Forwarded-For, CLIENTIP, COOKIE:token, ARGS:device_id, JA3HASH.
|
|
183
|
+
*/
|
|
184
|
+
field?: pulumi.Input<string | undefined>;
|
|
185
|
+
/**
|
|
186
|
+
* Domain name. The website domain to be protected. Make sure the domain has been added to the current WAF instance before calling.
|
|
187
|
+
*/
|
|
188
|
+
host?: pulumi.Input<string | undefined>;
|
|
189
|
+
/**
|
|
190
|
+
* Rule name. Must start with Chinese/letter/number. Allows Chinese/letters/numbers/period (.)/underscore (_)/hyphen (-). Length 1~128 characters.
|
|
191
|
+
*/
|
|
192
|
+
name?: pulumi.Input<string | undefined>;
|
|
193
|
+
/**
|
|
194
|
+
* JS challenge or CAPTCHA pass rate. Returned only when ActionType is 6/7/10.
|
|
195
|
+
*/
|
|
196
|
+
passRatio?: pulumi.Input<number | undefined>;
|
|
197
|
+
/**
|
|
198
|
+
* Request path to which the rule applies. You can specify an exact page path, match the entire site, or all paths under a directory (using wildcard *). The wildcard * can only appear at the end of the path.
|
|
199
|
+
*/
|
|
200
|
+
path?: pulumi.Input<string | undefined>;
|
|
201
|
+
/**
|
|
202
|
+
* Overall threshold for the current path. Effective only when StatisticalType=1. Range 1~300000.
|
|
203
|
+
*/
|
|
204
|
+
pathThreshold?: pulumi.Input<number | undefined>;
|
|
205
|
+
/**
|
|
206
|
+
* Project name, which is the project associated with the current resource. Only projects with permissions under the current identity can be associated.
|
|
207
|
+
*/
|
|
208
|
+
projectName?: pulumi.Input<string | undefined>;
|
|
209
|
+
/**
|
|
210
|
+
* Bot statistical protection rule ID.
|
|
211
|
+
*/
|
|
212
|
+
ruleId?: pulumi.Input<string | undefined>;
|
|
213
|
+
/**
|
|
214
|
+
* Rule priority under the same path and advanced condition. Range 0~9, with 0 being the highest priority.
|
|
215
|
+
*/
|
|
216
|
+
rulePriority?: pulumi.Input<number | undefined>;
|
|
217
|
+
/**
|
|
218
|
+
* Rule display ID. Frequency limit rule prefix is R (e.g., R000000018673); repeated statistics rule prefix is S (e.g., S000000018674).
|
|
219
|
+
*/
|
|
220
|
+
ruleTag?: pulumi.Input<string | undefined>;
|
|
221
|
+
/**
|
|
222
|
+
* Ratio threshold for a single statistical object. Enabled only when StatisticalType=3 (repeat ratio). Value range: [0, 1).
|
|
223
|
+
*/
|
|
224
|
+
singleProportion?: pulumi.Input<number | undefined>;
|
|
225
|
+
/**
|
|
226
|
+
* Threshold for the number of times per statistical object. Used only when StatisticalType=1. Range 1~300000.
|
|
227
|
+
*/
|
|
228
|
+
singleThreshold?: pulumi.Input<number | undefined>;
|
|
229
|
+
/**
|
|
230
|
+
* Statistical time window, in seconds. Frequency limit scenario (StatisticalType=1): 5~1800; repeat statistics scenario (StatisticalType=2/3): 1~60.
|
|
231
|
+
*/
|
|
232
|
+
statisticalDuration?: pulumi.Input<number | undefined>;
|
|
233
|
+
/**
|
|
234
|
+
* Statistical method. "1": access frequency; "2": repeat count; "3": repeat ratio.
|
|
235
|
+
*/
|
|
236
|
+
statisticalType?: pulumi.Input<string | undefined>;
|
|
237
|
+
/**
|
|
238
|
+
* Last update time of the rule.
|
|
239
|
+
*/
|
|
240
|
+
updateTime?: pulumi.Input<string | undefined>;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* The set of arguments for constructing a BotAnalyseProtectRule resource.
|
|
244
|
+
*/
|
|
245
|
+
export interface BotAnalyseProtectRuleArgs {
|
|
246
|
+
/**
|
|
247
|
+
* Advanced condition group. Do not include this field if not enabled or if the list is empty.
|
|
248
|
+
*/
|
|
249
|
+
accurateGroup?: pulumi.Input<inputs.waf.BotAnalyseProtectRuleAccurateGroup | undefined>;
|
|
250
|
+
/**
|
|
251
|
+
* Action to execute. 0: Observe; 1: Rate limit (supported only in frequency limit scenario, i.e., StatisticalType=1); 2: Block; 6: JS challenge; 7: CAPTCHA; 10: Proof of work; 11: Drop.
|
|
252
|
+
*/
|
|
253
|
+
actionType: pulumi.Input<number>;
|
|
254
|
+
/**
|
|
255
|
+
* Periodic cycle configuration list. Supported only for frequency limit rules with StatisticalType=1. Threshold switching is specified by crontab.
|
|
256
|
+
* Important Note: When using SetNestedAttribute, you must fully define all attributes of its nested structure. Incomplete definitions may cause Terraform to detect unexpected differences during plan comparison, triggering unnecessary resource updates and affecting resource stability and predictability.
|
|
257
|
+
*/
|
|
258
|
+
cronConfs?: pulumi.Input<pulumi.Input<inputs.waf.BotAnalyseProtectRuleCronConf>[] | undefined>;
|
|
259
|
+
/**
|
|
260
|
+
* Action effective duration in seconds, range 30~86400. Required when creating or updating rules except for ActionType=1 (rate limiting).
|
|
261
|
+
*/
|
|
262
|
+
effectTime?: pulumi.Input<number | undefined>;
|
|
263
|
+
/**
|
|
264
|
+
* Rule switch. 0: Off; 1: On.
|
|
265
|
+
*/
|
|
266
|
+
enable: pulumi.Input<number>;
|
|
267
|
+
/**
|
|
268
|
+
* Exemption time for human verification, JS challenge, or proof of work, in seconds. Range 30~3600. Applies only when ActionType is 6/7/10.
|
|
269
|
+
*/
|
|
270
|
+
exemptionTime?: pulumi.Input<number | undefined>;
|
|
271
|
+
/**
|
|
272
|
+
* Statistical object. Supports single or multiple fields, separated by commas. Maximum of 10 fields. Basic format is DataType:Value, for example HEADER:X-Forwarded-For, CLIENTIP, COOKIE:token, ARGS:device_id, JA3HASH.
|
|
273
|
+
*/
|
|
274
|
+
field: pulumi.Input<string>;
|
|
275
|
+
/**
|
|
276
|
+
* Domain name. The website domain to be protected. Make sure the domain has been added to the current WAF instance before calling.
|
|
277
|
+
*/
|
|
278
|
+
host: pulumi.Input<string>;
|
|
279
|
+
/**
|
|
280
|
+
* Rule name. Must start with Chinese/letter/number. Allows Chinese/letters/numbers/period (.)/underscore (_)/hyphen (-). Length 1~128 characters.
|
|
281
|
+
*/
|
|
282
|
+
name: pulumi.Input<string>;
|
|
283
|
+
/**
|
|
284
|
+
* Request path to which the rule applies. You can specify an exact page path, match the entire site, or all paths under a directory (using wildcard *). The wildcard * can only appear at the end of the path.
|
|
285
|
+
*/
|
|
286
|
+
path: pulumi.Input<string>;
|
|
287
|
+
/**
|
|
288
|
+
* Overall threshold for the current path. Effective only when StatisticalType=1. Range 1~300000.
|
|
289
|
+
*/
|
|
290
|
+
pathThreshold?: pulumi.Input<number | undefined>;
|
|
291
|
+
/**
|
|
292
|
+
* Project name, which is the project associated with the current resource. Only projects with permissions under the current identity can be associated.
|
|
293
|
+
*/
|
|
294
|
+
projectName?: pulumi.Input<string | undefined>;
|
|
295
|
+
/**
|
|
296
|
+
* Rule priority under the same path and advanced condition. Range 0~9, with 0 being the highest priority.
|
|
297
|
+
*/
|
|
298
|
+
rulePriority: pulumi.Input<number>;
|
|
299
|
+
/**
|
|
300
|
+
* Ratio threshold for a single statistical object. Enabled only when StatisticalType=3 (repeat ratio). Value range: [0, 1).
|
|
301
|
+
*/
|
|
302
|
+
singleProportion?: pulumi.Input<number | undefined>;
|
|
303
|
+
/**
|
|
304
|
+
* Threshold for the number of times per statistical object. Used only when StatisticalType=1. Range 1~300000.
|
|
305
|
+
*/
|
|
306
|
+
singleThreshold?: pulumi.Input<number | undefined>;
|
|
307
|
+
/**
|
|
308
|
+
* Statistical time window, in seconds. Frequency limit scenario (StatisticalType=1): 5~1800; repeat statistics scenario (StatisticalType=2/3): 1~60.
|
|
309
|
+
*/
|
|
310
|
+
statisticalDuration: pulumi.Input<number>;
|
|
311
|
+
/**
|
|
312
|
+
* Statistical method. "1": access frequency; "2": repeat count; "3": repeat ratio.
|
|
313
|
+
*/
|
|
314
|
+
statisticalType: pulumi.Input<string>;
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=botAnalyseProtectRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botAnalyseProtectRule.d.ts","sourceRoot":"","sources":["../../waf/botAnalyseProtectRule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.BotAnalyseProtectRule = void 0;
|
|
29
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
30
|
+
const utilities = __importStar(require("../utilities"));
|
|
31
|
+
/**
|
|
32
|
+
* WAF Bot statistical protection rule. Applies to Bot frequency limit (StatisticalType=1) and Bot repeat statistics (StatisticalType=2/3) scenarios. Restricts requests based on objects such as request IP, Session, Header, etc.
|
|
33
|
+
*
|
|
34
|
+
* ## Example Usage
|
|
35
|
+
*
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
38
|
+
* import * as bytepluscc from "@byteplus/pulumi-bytepluscc";
|
|
39
|
+
*
|
|
40
|
+
* const example = new bytepluscc.waf.BotAnalyseProtectRule("example", {
|
|
41
|
+
* actionType: 1,
|
|
42
|
+
* enable: 1,
|
|
43
|
+
* field: "CLIENTIP",
|
|
44
|
+
* host: "www.testwaf.com",
|
|
45
|
+
* name: "ccapi-bot-analyse-required",
|
|
46
|
+
* path: "/ccapi-required",
|
|
47
|
+
* pathThreshold: 10,
|
|
48
|
+
* rulePriority: 0,
|
|
49
|
+
* singleThreshold: 3,
|
|
50
|
+
* statisticalDuration: 30,
|
|
51
|
+
* statisticalType: "1",
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ## Import
|
|
56
|
+
*
|
|
57
|
+
* ```sh
|
|
58
|
+
* $ pulumi import bytepluscc:waf/botAnalyseProtectRule:BotAnalyseProtectRule example "host|rule_id|statistical_type"
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
class BotAnalyseProtectRule extends pulumi.CustomResource {
|
|
62
|
+
/**
|
|
63
|
+
* Get an existing BotAnalyseProtectRule resource's state with the given name, ID, and optional extra
|
|
64
|
+
* properties used to qualify the lookup.
|
|
65
|
+
*
|
|
66
|
+
* @param name The _unique_ name of the resulting resource.
|
|
67
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
68
|
+
* @param state Any extra arguments used during the lookup.
|
|
69
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
70
|
+
*/
|
|
71
|
+
static get(name, id, state, opts) {
|
|
72
|
+
return new BotAnalyseProtectRule(name, state, { ...opts, id: id });
|
|
73
|
+
}
|
|
74
|
+
/** @internal */
|
|
75
|
+
static __pulumiType = 'bytepluscc:waf/botAnalyseProtectRule:BotAnalyseProtectRule';
|
|
76
|
+
/**
|
|
77
|
+
* Returns true if the given object is an instance of BotAnalyseProtectRule. This is designed to work even
|
|
78
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
79
|
+
*/
|
|
80
|
+
static isInstance(obj) {
|
|
81
|
+
if (obj === undefined || obj === null) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return obj['__pulumiType'] === BotAnalyseProtectRule.__pulumiType;
|
|
85
|
+
}
|
|
86
|
+
constructor(name, argsOrState, opts) {
|
|
87
|
+
let resourceInputs = {};
|
|
88
|
+
opts = opts || {};
|
|
89
|
+
if (opts.id) {
|
|
90
|
+
const state = argsOrState;
|
|
91
|
+
resourceInputs["accurateGroup"] = state?.accurateGroup;
|
|
92
|
+
resourceInputs["actionAfterVerification"] = state?.actionAfterVerification;
|
|
93
|
+
resourceInputs["actionType"] = state?.actionType;
|
|
94
|
+
resourceInputs["cronConfs"] = state?.cronConfs;
|
|
95
|
+
resourceInputs["effectTime"] = state?.effectTime;
|
|
96
|
+
resourceInputs["enable"] = state?.enable;
|
|
97
|
+
resourceInputs["exemptionTime"] = state?.exemptionTime;
|
|
98
|
+
resourceInputs["field"] = state?.field;
|
|
99
|
+
resourceInputs["host"] = state?.host;
|
|
100
|
+
resourceInputs["name"] = state?.name;
|
|
101
|
+
resourceInputs["passRatio"] = state?.passRatio;
|
|
102
|
+
resourceInputs["path"] = state?.path;
|
|
103
|
+
resourceInputs["pathThreshold"] = state?.pathThreshold;
|
|
104
|
+
resourceInputs["projectName"] = state?.projectName;
|
|
105
|
+
resourceInputs["ruleId"] = state?.ruleId;
|
|
106
|
+
resourceInputs["rulePriority"] = state?.rulePriority;
|
|
107
|
+
resourceInputs["ruleTag"] = state?.ruleTag;
|
|
108
|
+
resourceInputs["singleProportion"] = state?.singleProportion;
|
|
109
|
+
resourceInputs["singleThreshold"] = state?.singleThreshold;
|
|
110
|
+
resourceInputs["statisticalDuration"] = state?.statisticalDuration;
|
|
111
|
+
resourceInputs["statisticalType"] = state?.statisticalType;
|
|
112
|
+
resourceInputs["updateTime"] = state?.updateTime;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const args = argsOrState;
|
|
116
|
+
if (args?.actionType === undefined && !opts.urn) {
|
|
117
|
+
throw new Error("Missing required property 'actionType'");
|
|
118
|
+
}
|
|
119
|
+
if (args?.enable === undefined && !opts.urn) {
|
|
120
|
+
throw new Error("Missing required property 'enable'");
|
|
121
|
+
}
|
|
122
|
+
if (args?.field === undefined && !opts.urn) {
|
|
123
|
+
throw new Error("Missing required property 'field'");
|
|
124
|
+
}
|
|
125
|
+
if (args?.host === undefined && !opts.urn) {
|
|
126
|
+
throw new Error("Missing required property 'host'");
|
|
127
|
+
}
|
|
128
|
+
if (args?.name === undefined && !opts.urn) {
|
|
129
|
+
throw new Error("Missing required property 'name'");
|
|
130
|
+
}
|
|
131
|
+
if (args?.path === undefined && !opts.urn) {
|
|
132
|
+
throw new Error("Missing required property 'path'");
|
|
133
|
+
}
|
|
134
|
+
if (args?.rulePriority === undefined && !opts.urn) {
|
|
135
|
+
throw new Error("Missing required property 'rulePriority'");
|
|
136
|
+
}
|
|
137
|
+
if (args?.statisticalDuration === undefined && !opts.urn) {
|
|
138
|
+
throw new Error("Missing required property 'statisticalDuration'");
|
|
139
|
+
}
|
|
140
|
+
if (args?.statisticalType === undefined && !opts.urn) {
|
|
141
|
+
throw new Error("Missing required property 'statisticalType'");
|
|
142
|
+
}
|
|
143
|
+
resourceInputs["accurateGroup"] = args?.accurateGroup;
|
|
144
|
+
resourceInputs["actionType"] = args?.actionType;
|
|
145
|
+
resourceInputs["cronConfs"] = args?.cronConfs;
|
|
146
|
+
resourceInputs["effectTime"] = args?.effectTime;
|
|
147
|
+
resourceInputs["enable"] = args?.enable;
|
|
148
|
+
resourceInputs["exemptionTime"] = args?.exemptionTime;
|
|
149
|
+
resourceInputs["field"] = args?.field;
|
|
150
|
+
resourceInputs["host"] = args?.host;
|
|
151
|
+
resourceInputs["name"] = args?.name;
|
|
152
|
+
resourceInputs["path"] = args?.path;
|
|
153
|
+
resourceInputs["pathThreshold"] = args?.pathThreshold;
|
|
154
|
+
resourceInputs["projectName"] = args?.projectName;
|
|
155
|
+
resourceInputs["rulePriority"] = args?.rulePriority;
|
|
156
|
+
resourceInputs["singleProportion"] = args?.singleProportion;
|
|
157
|
+
resourceInputs["singleThreshold"] = args?.singleThreshold;
|
|
158
|
+
resourceInputs["statisticalDuration"] = args?.statisticalDuration;
|
|
159
|
+
resourceInputs["statisticalType"] = args?.statisticalType;
|
|
160
|
+
resourceInputs["actionAfterVerification"] = undefined /*out*/;
|
|
161
|
+
resourceInputs["passRatio"] = undefined /*out*/;
|
|
162
|
+
resourceInputs["ruleId"] = undefined /*out*/;
|
|
163
|
+
resourceInputs["ruleTag"] = undefined /*out*/;
|
|
164
|
+
resourceInputs["updateTime"] = undefined /*out*/;
|
|
165
|
+
}
|
|
166
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
167
|
+
super(BotAnalyseProtectRule.__pulumiType, name, resourceInputs, opts);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.BotAnalyseProtectRule = BotAnalyseProtectRule;
|
|
171
|
+
//# sourceMappingURL=botAnalyseProtectRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"botAnalyseProtectRule.js","sourceRoot":"","sources":["../../waf/botAnalyseProtectRule.ts"],"names":[],"mappings":"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"}
|