@byteplus/pulumi-bytepluscc 0.0.43 → 0.0.45

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.
@@ -0,0 +1,361 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "../types/input";
3
+ import * as outputs from "../types/output";
4
+ /**
5
+ * WAF CC protection rule. Restricts requests based on network access IP, session, and other HTTP request objects. When the specified statistical conditions are met, a protection action is triggered
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 primaryWafCcruleCase2 = new bytepluscc.waf.CcRule("primary_waf_ccrule_case_2", {
14
+ * field: "HEADER:Authorization",
15
+ * ccType: 2,
16
+ * countTime: 300,
17
+ * enable: 1,
18
+ * singleThreshold: 30,
19
+ * host: "www.testwaf.com",
20
+ * pathThreshold: 300,
21
+ * rulePriority: 9,
22
+ * cronEnable: 1,
23
+ * cronConfs: [{
24
+ * single_threshold: 10,
25
+ * path_threshold: 100,
26
+ * crontab: "* 18-20 * * 1,2,3,4,5",
27
+ * }],
28
+ * url: "/admin",
29
+ * name: "test-rule-block",
30
+ * });
31
+ * ```
32
+ *
33
+ * ## Import
34
+ *
35
+ * ```sh
36
+ * $ pulumi import bytepluscc:waf/ccRule:CcRule example "host|rule_id"
37
+ * ```
38
+ */
39
+ export declare class CcRule extends pulumi.CustomResource {
40
+ /**
41
+ * Get an existing CcRule resource's state with the given name, ID, and optional extra
42
+ * properties used to qualify the lookup.
43
+ *
44
+ * @param name The _unique_ name of the resulting resource.
45
+ * @param id The _unique_ provider ID of the resource to lookup.
46
+ * @param state Any extra arguments used during the lookup.
47
+ * @param opts Optional settings to control the behavior of the CustomResource.
48
+ */
49
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: CcRuleState, opts?: pulumi.CustomResourceOptions): CcRule;
50
+ /**
51
+ * Returns true if the given object is an instance of CcRule. This is designed to work even
52
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
53
+ */
54
+ static isInstance(obj: any): obj is CcRule;
55
+ /**
56
+ * Advanced condition group. The current path Url and AccurateGroup are in an AND relationship; the rule takes effect only when both are matched. Do not pass this field if not enabled or the list is empty.
57
+ */
58
+ readonly accurateGroup: pulumi.Output<outputs.waf.CcRuleAccurateGroup>;
59
+ /**
60
+ * Action. 0: Observe; 1: Rate limit; 2: Block; 6: JS challenge; 7: CAPTCHA.
61
+ */
62
+ readonly ccType: pulumi.Output<number>;
63
+ /**
64
+ * Statistical time window, unit: seconds. Range: 5–1800.
65
+ */
66
+ readonly countTime: pulumi.Output<number>;
67
+ /**
68
+ * Scheduled activation configuration list. Required only when CronEnable=1.
69
+ * 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.
70
+ */
71
+ readonly cronConfs: pulumi.Output<outputs.waf.CcRuleCronConf[]>;
72
+ /**
73
+ * Scheduled activation switch. 0: Off (default); 1: On. If enabled, CronConfs must also be configured
74
+ */
75
+ readonly cronEnable: pulumi.Output<number>;
76
+ /**
77
+ * Custom response page ID. An empty string means not configured.
78
+ */
79
+ readonly customResponsePageId: pulumi.Output<string>;
80
+ /**
81
+ * Action duration. Unit: seconds. Range: 1–86400
82
+ */
83
+ readonly effectTime: pulumi.Output<number>;
84
+ /**
85
+ * Rule switch. 0: Off; 1: On
86
+ */
87
+ readonly enable: pulumi.Output<number>;
88
+ /**
89
+ * Exemption time for CAPTCHA or JS challenge. Unit: seconds. Range: 1–3600
90
+ */
91
+ readonly exemptionTime: pulumi.Output<number>;
92
+ /**
93
+ * Statistical object. Supports single or multiple fields, separated by commas. Up to 10 fields allowed. Basic format is DataType:Value, for example HEADER:Authorization, COOKIE:PHPSESSID, ARGS:device_id, CLIENTIP, JA3HASH, SESSION-ID, FP.
94
+ */
95
+ readonly field: pulumi.Output<string>;
96
+ /**
97
+ * Domain name. The website domain to protect. Make sure the domain has been added to the current WAF instance before calling
98
+ */
99
+ readonly host: pulumi.Output<string>;
100
+ /**
101
+ * Rule initial entry time.
102
+ */
103
+ readonly insertTime: pulumi.Output<string>;
104
+ /**
105
+ * Rule name. Must start with a Chinese character, letter, or number. Allows Chinese characters, letters, numbers, English period (.), underscore (_), and hyphen (-). Length: 1–128 characters.
106
+ */
107
+ readonly name: pulumi.Output<string>;
108
+ /**
109
+ * Overall threshold for the current path. Range: 1–300000, unit: times
110
+ */
111
+ readonly pathThreshold: pulumi.Output<number>;
112
+ /**
113
+ * Project name, which is the project associated with the current resource. Only projects with permissions under the current identity can be associated
114
+ */
115
+ readonly projectName: pulumi.Output<string>;
116
+ /**
117
+ * CC rule ID.
118
+ */
119
+ readonly ruleId: pulumi.Output<string>;
120
+ /**
121
+ * Rule priority. Range: 0–9, where 0 is the highest priority
122
+ */
123
+ readonly rulePriority: pulumi.Output<number>;
124
+ /**
125
+ * Rule display ID. The RuleTag prefix for CC rules is always E, for example E000000003624
126
+ */
127
+ readonly ruleTag: pulumi.Output<string>;
128
+ /**
129
+ * Threshold for a single statistical object. Range: 1–300000, unit: times.
130
+ */
131
+ readonly singleThreshold: pulumi.Output<number>;
132
+ /**
133
+ * Last rule update time.
134
+ */
135
+ readonly updateTime: pulumi.Output<string>;
136
+ /**
137
+ * URL match path. Supports wildcards * and ?, where * matches zero or more characters and ? matches a single character. When AccurateGroup exists, Url and AccurateGroup are in an AND relationship.
138
+ */
139
+ readonly url: pulumi.Output<string>;
140
+ /**
141
+ * Websocket traffic threshold. Unit specified by WSCdnUnit. Required only when WSCdnEnable=1
142
+ */
143
+ readonly wsCdnByteThreshold: pulumi.Output<number>;
144
+ /**
145
+ * Websocket traffic statistics switch. 0: Off (default); 1: On. If enabled, WSCdnByteThreshold/WSCdnFrameThreshold/WSCdnUnit must also be configured
146
+ */
147
+ readonly wsCdnEnable: pulumi.Output<number>;
148
+ /**
149
+ * Websocket connection frame threshold. Required only when WSCdnEnable=1.
150
+ */
151
+ readonly wsCdnFrameThreshold: pulumi.Output<number>;
152
+ /**
153
+ * Websocket traffic threshold unit. KB: kilobytes; MB: megabytes. Required only when WSCdnEnable=1
154
+ */
155
+ readonly wsCdnUnit: pulumi.Output<string>;
156
+ /**
157
+ * Create a CcRule resource with the given unique name, arguments, and options.
158
+ *
159
+ * @param name The _unique_ name of the resource.
160
+ * @param args The arguments to use to populate this resource's properties.
161
+ * @param opts A bag of options that control this resource's behavior.
162
+ */
163
+ constructor(name: string, args: CcRuleArgs, opts?: pulumi.CustomResourceOptions);
164
+ }
165
+ /**
166
+ * Input properties used for looking up and filtering CcRule resources.
167
+ */
168
+ export interface CcRuleState {
169
+ /**
170
+ * Advanced condition group. The current path Url and AccurateGroup are in an AND relationship; the rule takes effect only when both are matched. Do not pass this field if not enabled or the list is empty.
171
+ */
172
+ accurateGroup?: pulumi.Input<inputs.waf.CcRuleAccurateGroup | undefined>;
173
+ /**
174
+ * Action. 0: Observe; 1: Rate limit; 2: Block; 6: JS challenge; 7: CAPTCHA.
175
+ */
176
+ ccType?: pulumi.Input<number | undefined>;
177
+ /**
178
+ * Statistical time window, unit: seconds. Range: 5–1800.
179
+ */
180
+ countTime?: pulumi.Input<number | undefined>;
181
+ /**
182
+ * Scheduled activation configuration list. Required only when CronEnable=1.
183
+ * 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.
184
+ */
185
+ cronConfs?: pulumi.Input<pulumi.Input<inputs.waf.CcRuleCronConf>[] | undefined>;
186
+ /**
187
+ * Scheduled activation switch. 0: Off (default); 1: On. If enabled, CronConfs must also be configured
188
+ */
189
+ cronEnable?: pulumi.Input<number | undefined>;
190
+ /**
191
+ * Custom response page ID. An empty string means not configured.
192
+ */
193
+ customResponsePageId?: pulumi.Input<string | undefined>;
194
+ /**
195
+ * Action duration. Unit: seconds. Range: 1–86400
196
+ */
197
+ effectTime?: pulumi.Input<number | undefined>;
198
+ /**
199
+ * Rule switch. 0: Off; 1: On
200
+ */
201
+ enable?: pulumi.Input<number | undefined>;
202
+ /**
203
+ * Exemption time for CAPTCHA or JS challenge. Unit: seconds. Range: 1–3600
204
+ */
205
+ exemptionTime?: pulumi.Input<number | undefined>;
206
+ /**
207
+ * Statistical object. Supports single or multiple fields, separated by commas. Up to 10 fields allowed. Basic format is DataType:Value, for example HEADER:Authorization, COOKIE:PHPSESSID, ARGS:device_id, CLIENTIP, JA3HASH, SESSION-ID, FP.
208
+ */
209
+ field?: pulumi.Input<string | undefined>;
210
+ /**
211
+ * Domain name. The website domain to protect. Make sure the domain has been added to the current WAF instance before calling
212
+ */
213
+ host?: pulumi.Input<string | undefined>;
214
+ /**
215
+ * Rule initial entry time.
216
+ */
217
+ insertTime?: pulumi.Input<string | undefined>;
218
+ /**
219
+ * Rule name. Must start with a Chinese character, letter, or number. Allows Chinese characters, letters, numbers, English period (.), underscore (_), and hyphen (-). Length: 1–128 characters.
220
+ */
221
+ name?: pulumi.Input<string | undefined>;
222
+ /**
223
+ * Overall threshold for the current path. Range: 1–300000, unit: times
224
+ */
225
+ pathThreshold?: pulumi.Input<number | undefined>;
226
+ /**
227
+ * Project name, which is the project associated with the current resource. Only projects with permissions under the current identity can be associated
228
+ */
229
+ projectName?: pulumi.Input<string | undefined>;
230
+ /**
231
+ * CC rule ID.
232
+ */
233
+ ruleId?: pulumi.Input<string | undefined>;
234
+ /**
235
+ * Rule priority. Range: 0–9, where 0 is the highest priority
236
+ */
237
+ rulePriority?: pulumi.Input<number | undefined>;
238
+ /**
239
+ * Rule display ID. The RuleTag prefix for CC rules is always E, for example E000000003624
240
+ */
241
+ ruleTag?: pulumi.Input<string | undefined>;
242
+ /**
243
+ * Threshold for a single statistical object. Range: 1–300000, unit: times.
244
+ */
245
+ singleThreshold?: pulumi.Input<number | undefined>;
246
+ /**
247
+ * Last rule update time.
248
+ */
249
+ updateTime?: pulumi.Input<string | undefined>;
250
+ /**
251
+ * URL match path. Supports wildcards * and ?, where * matches zero or more characters and ? matches a single character. When AccurateGroup exists, Url and AccurateGroup are in an AND relationship.
252
+ */
253
+ url?: pulumi.Input<string | undefined>;
254
+ /**
255
+ * Websocket traffic threshold. Unit specified by WSCdnUnit. Required only when WSCdnEnable=1
256
+ */
257
+ wsCdnByteThreshold?: pulumi.Input<number | undefined>;
258
+ /**
259
+ * Websocket traffic statistics switch. 0: Off (default); 1: On. If enabled, WSCdnByteThreshold/WSCdnFrameThreshold/WSCdnUnit must also be configured
260
+ */
261
+ wsCdnEnable?: pulumi.Input<number | undefined>;
262
+ /**
263
+ * Websocket connection frame threshold. Required only when WSCdnEnable=1.
264
+ */
265
+ wsCdnFrameThreshold?: pulumi.Input<number | undefined>;
266
+ /**
267
+ * Websocket traffic threshold unit. KB: kilobytes; MB: megabytes. Required only when WSCdnEnable=1
268
+ */
269
+ wsCdnUnit?: pulumi.Input<string | undefined>;
270
+ }
271
+ /**
272
+ * The set of arguments for constructing a CcRule resource.
273
+ */
274
+ export interface CcRuleArgs {
275
+ /**
276
+ * Advanced condition group. The current path Url and AccurateGroup are in an AND relationship; the rule takes effect only when both are matched. Do not pass this field if not enabled or the list is empty.
277
+ */
278
+ accurateGroup?: pulumi.Input<inputs.waf.CcRuleAccurateGroup | undefined>;
279
+ /**
280
+ * Action. 0: Observe; 1: Rate limit; 2: Block; 6: JS challenge; 7: CAPTCHA.
281
+ */
282
+ ccType: pulumi.Input<number>;
283
+ /**
284
+ * Statistical time window, unit: seconds. Range: 5–1800.
285
+ */
286
+ countTime: pulumi.Input<number>;
287
+ /**
288
+ * Scheduled activation configuration list. Required only when CronEnable=1.
289
+ * 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.
290
+ */
291
+ cronConfs?: pulumi.Input<pulumi.Input<inputs.waf.CcRuleCronConf>[] | undefined>;
292
+ /**
293
+ * Scheduled activation switch. 0: Off (default); 1: On. If enabled, CronConfs must also be configured
294
+ */
295
+ cronEnable?: pulumi.Input<number | undefined>;
296
+ /**
297
+ * Custom response page ID. An empty string means not configured.
298
+ */
299
+ customResponsePageId?: pulumi.Input<string | undefined>;
300
+ /**
301
+ * Action duration. Unit: seconds. Range: 1–86400
302
+ */
303
+ effectTime?: pulumi.Input<number | undefined>;
304
+ /**
305
+ * Rule switch. 0: Off; 1: On
306
+ */
307
+ enable: pulumi.Input<number>;
308
+ /**
309
+ * Exemption time for CAPTCHA or JS challenge. Unit: seconds. Range: 1–3600
310
+ */
311
+ exemptionTime?: pulumi.Input<number | undefined>;
312
+ /**
313
+ * Statistical object. Supports single or multiple fields, separated by commas. Up to 10 fields allowed. Basic format is DataType:Value, for example HEADER:Authorization, COOKIE:PHPSESSID, ARGS:device_id, CLIENTIP, JA3HASH, SESSION-ID, FP.
314
+ */
315
+ field: pulumi.Input<string>;
316
+ /**
317
+ * Domain name. The website domain to protect. Make sure the domain has been added to the current WAF instance before calling
318
+ */
319
+ host: pulumi.Input<string>;
320
+ /**
321
+ * Rule name. Must start with a Chinese character, letter, or number. Allows Chinese characters, letters, numbers, English period (.), underscore (_), and hyphen (-). Length: 1–128 characters.
322
+ */
323
+ name: pulumi.Input<string>;
324
+ /**
325
+ * Overall threshold for the current path. Range: 1–300000, unit: times
326
+ */
327
+ pathThreshold: pulumi.Input<number>;
328
+ /**
329
+ * Project name, which is the project associated with the current resource. Only projects with permissions under the current identity can be associated
330
+ */
331
+ projectName?: pulumi.Input<string | undefined>;
332
+ /**
333
+ * Rule priority. Range: 0–9, where 0 is the highest priority
334
+ */
335
+ rulePriority: pulumi.Input<number>;
336
+ /**
337
+ * Threshold for a single statistical object. Range: 1–300000, unit: times.
338
+ */
339
+ singleThreshold: pulumi.Input<number>;
340
+ /**
341
+ * URL match path. Supports wildcards * and ?, where * matches zero or more characters and ? matches a single character. When AccurateGroup exists, Url and AccurateGroup are in an AND relationship.
342
+ */
343
+ url: pulumi.Input<string>;
344
+ /**
345
+ * Websocket traffic threshold. Unit specified by WSCdnUnit. Required only when WSCdnEnable=1
346
+ */
347
+ wsCdnByteThreshold?: pulumi.Input<number | undefined>;
348
+ /**
349
+ * Websocket traffic statistics switch. 0: Off (default); 1: On. If enabled, WSCdnByteThreshold/WSCdnFrameThreshold/WSCdnUnit must also be configured
350
+ */
351
+ wsCdnEnable?: pulumi.Input<number | undefined>;
352
+ /**
353
+ * Websocket connection frame threshold. Required only when WSCdnEnable=1.
354
+ */
355
+ wsCdnFrameThreshold?: pulumi.Input<number | undefined>;
356
+ /**
357
+ * Websocket traffic threshold unit. KB: kilobytes; MB: megabytes. Required only when WSCdnEnable=1
358
+ */
359
+ wsCdnUnit?: pulumi.Input<string | undefined>;
360
+ }
361
+ //# sourceMappingURL=ccRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccRule.d.ts","sourceRoot":"","sources":["../../waf/ccRule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,MAAO,SAAQ,MAAM,CAAC,cAAc;IAC7C;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,MAAM;IAO9H;;;OAGG;WACW,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM;IAOjD;;OAEG;IACH,SAAwB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACtF;;OAEG;IACH,SAAwB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD;;OAEG;IACH,SAAwB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD;;;OAGG;IACH,SAAwB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/E;;OAEG;IACH,SAAwB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D;;OAEG;IACH,SAAwB,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpE;;OAEG;IACH,SAAwB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D;;OAEG;IACH,SAAwB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD;;OAEG;IACH,SAAwB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D;;OAEG;IACH,SAAwB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD;;OAEG;IACH,SAAwB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD;;OAEG;IACH,SAAgC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE;;OAEG;IACH,SAAwB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD;;OAEG;IACH,SAAwB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D;;OAEG;IACH,SAAwB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D;;OAEG;IACH,SAAgC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D;;OAEG;IACH,SAAwB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D;;OAEG;IACH,SAAgC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D;;OAEG;IACH,SAAwB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D;;OAEG;IACH,SAAgC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE;;OAEG;IACH,SAAwB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD;;OAEG;IACH,SAAwB,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClE;;OAEG;IACH,SAAwB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D;;OAEG;IACH,SAAwB,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnE;;OAEG;IACH,SAAwB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzD;;;;;;OAMG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB;CA4FlF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IACzE;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAChF;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IACzE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAChF;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChD"}
package/waf/ccRule.js ADDED
@@ -0,0 +1,185 @@
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.CcRule = void 0;
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("../utilities"));
31
+ /**
32
+ * WAF CC protection rule. Restricts requests based on network access IP, session, and other HTTP request objects. When the specified statistical conditions are met, a protection action is triggered
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 primaryWafCcruleCase2 = new bytepluscc.waf.CcRule("primary_waf_ccrule_case_2", {
41
+ * field: "HEADER:Authorization",
42
+ * ccType: 2,
43
+ * countTime: 300,
44
+ * enable: 1,
45
+ * singleThreshold: 30,
46
+ * host: "www.testwaf.com",
47
+ * pathThreshold: 300,
48
+ * rulePriority: 9,
49
+ * cronEnable: 1,
50
+ * cronConfs: [{
51
+ * single_threshold: 10,
52
+ * path_threshold: 100,
53
+ * crontab: "* 18-20 * * 1,2,3,4,5",
54
+ * }],
55
+ * url: "/admin",
56
+ * name: "test-rule-block",
57
+ * });
58
+ * ```
59
+ *
60
+ * ## Import
61
+ *
62
+ * ```sh
63
+ * $ pulumi import bytepluscc:waf/ccRule:CcRule example "host|rule_id"
64
+ * ```
65
+ */
66
+ class CcRule extends pulumi.CustomResource {
67
+ /**
68
+ * Get an existing CcRule resource's state with the given name, ID, and optional extra
69
+ * properties used to qualify the lookup.
70
+ *
71
+ * @param name The _unique_ name of the resulting resource.
72
+ * @param id The _unique_ provider ID of the resource to lookup.
73
+ * @param state Any extra arguments used during the lookup.
74
+ * @param opts Optional settings to control the behavior of the CustomResource.
75
+ */
76
+ static get(name, id, state, opts) {
77
+ return new CcRule(name, state, { ...opts, id: id });
78
+ }
79
+ /** @internal */
80
+ static __pulumiType = 'bytepluscc:waf/ccRule:CcRule';
81
+ /**
82
+ * Returns true if the given object is an instance of CcRule. This is designed to work even
83
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
84
+ */
85
+ static isInstance(obj) {
86
+ if (obj === undefined || obj === null) {
87
+ return false;
88
+ }
89
+ return obj['__pulumiType'] === CcRule.__pulumiType;
90
+ }
91
+ constructor(name, argsOrState, opts) {
92
+ let resourceInputs = {};
93
+ opts = opts || {};
94
+ if (opts.id) {
95
+ const state = argsOrState;
96
+ resourceInputs["accurateGroup"] = state?.accurateGroup;
97
+ resourceInputs["ccType"] = state?.ccType;
98
+ resourceInputs["countTime"] = state?.countTime;
99
+ resourceInputs["cronConfs"] = state?.cronConfs;
100
+ resourceInputs["cronEnable"] = state?.cronEnable;
101
+ resourceInputs["customResponsePageId"] = state?.customResponsePageId;
102
+ resourceInputs["effectTime"] = state?.effectTime;
103
+ resourceInputs["enable"] = state?.enable;
104
+ resourceInputs["exemptionTime"] = state?.exemptionTime;
105
+ resourceInputs["field"] = state?.field;
106
+ resourceInputs["host"] = state?.host;
107
+ resourceInputs["insertTime"] = state?.insertTime;
108
+ resourceInputs["name"] = state?.name;
109
+ resourceInputs["pathThreshold"] = state?.pathThreshold;
110
+ resourceInputs["projectName"] = state?.projectName;
111
+ resourceInputs["ruleId"] = state?.ruleId;
112
+ resourceInputs["rulePriority"] = state?.rulePriority;
113
+ resourceInputs["ruleTag"] = state?.ruleTag;
114
+ resourceInputs["singleThreshold"] = state?.singleThreshold;
115
+ resourceInputs["updateTime"] = state?.updateTime;
116
+ resourceInputs["url"] = state?.url;
117
+ resourceInputs["wsCdnByteThreshold"] = state?.wsCdnByteThreshold;
118
+ resourceInputs["wsCdnEnable"] = state?.wsCdnEnable;
119
+ resourceInputs["wsCdnFrameThreshold"] = state?.wsCdnFrameThreshold;
120
+ resourceInputs["wsCdnUnit"] = state?.wsCdnUnit;
121
+ }
122
+ else {
123
+ const args = argsOrState;
124
+ if (args?.ccType === undefined && !opts.urn) {
125
+ throw new Error("Missing required property 'ccType'");
126
+ }
127
+ if (args?.countTime === undefined && !opts.urn) {
128
+ throw new Error("Missing required property 'countTime'");
129
+ }
130
+ if (args?.enable === undefined && !opts.urn) {
131
+ throw new Error("Missing required property 'enable'");
132
+ }
133
+ if (args?.field === undefined && !opts.urn) {
134
+ throw new Error("Missing required property 'field'");
135
+ }
136
+ if (args?.host === undefined && !opts.urn) {
137
+ throw new Error("Missing required property 'host'");
138
+ }
139
+ if (args?.name === undefined && !opts.urn) {
140
+ throw new Error("Missing required property 'name'");
141
+ }
142
+ if (args?.pathThreshold === undefined && !opts.urn) {
143
+ throw new Error("Missing required property 'pathThreshold'");
144
+ }
145
+ if (args?.rulePriority === undefined && !opts.urn) {
146
+ throw new Error("Missing required property 'rulePriority'");
147
+ }
148
+ if (args?.singleThreshold === undefined && !opts.urn) {
149
+ throw new Error("Missing required property 'singleThreshold'");
150
+ }
151
+ if (args?.url === undefined && !opts.urn) {
152
+ throw new Error("Missing required property 'url'");
153
+ }
154
+ resourceInputs["accurateGroup"] = args?.accurateGroup;
155
+ resourceInputs["ccType"] = args?.ccType;
156
+ resourceInputs["countTime"] = args?.countTime;
157
+ resourceInputs["cronConfs"] = args?.cronConfs;
158
+ resourceInputs["cronEnable"] = args?.cronEnable;
159
+ resourceInputs["customResponsePageId"] = args?.customResponsePageId;
160
+ resourceInputs["effectTime"] = args?.effectTime;
161
+ resourceInputs["enable"] = args?.enable;
162
+ resourceInputs["exemptionTime"] = args?.exemptionTime;
163
+ resourceInputs["field"] = args?.field;
164
+ resourceInputs["host"] = args?.host;
165
+ resourceInputs["name"] = args?.name;
166
+ resourceInputs["pathThreshold"] = args?.pathThreshold;
167
+ resourceInputs["projectName"] = args?.projectName;
168
+ resourceInputs["rulePriority"] = args?.rulePriority;
169
+ resourceInputs["singleThreshold"] = args?.singleThreshold;
170
+ resourceInputs["url"] = args?.url;
171
+ resourceInputs["wsCdnByteThreshold"] = args?.wsCdnByteThreshold;
172
+ resourceInputs["wsCdnEnable"] = args?.wsCdnEnable;
173
+ resourceInputs["wsCdnFrameThreshold"] = args?.wsCdnFrameThreshold;
174
+ resourceInputs["wsCdnUnit"] = args?.wsCdnUnit;
175
+ resourceInputs["insertTime"] = undefined /*out*/;
176
+ resourceInputs["ruleId"] = undefined /*out*/;
177
+ resourceInputs["ruleTag"] = undefined /*out*/;
178
+ resourceInputs["updateTime"] = undefined /*out*/;
179
+ }
180
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
181
+ super(CcRule.__pulumiType, name, resourceInputs, opts);
182
+ }
183
+ }
184
+ exports.CcRule = CcRule;
185
+ //# sourceMappingURL=ccRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccRule.js","sourceRoot":"","sources":["../../waf/ccRule.ts"],"names":[],"mappings":"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"}