pulumi-alicloud 3.87.0a1760678219__py3-none-any.whl → 3.88.0__py3-none-any.whl

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.

Potentially problematic release.


This version of pulumi-alicloud might be problematic. Click here for more details.

Files changed (92) hide show
  1. pulumi_alicloud/__init__.py +83 -0
  2. pulumi_alicloud/adb/resource_group.py +463 -3
  3. pulumi_alicloud/cfg/_inputs.py +27 -24
  4. pulumi_alicloud/cfg/aggregator.py +142 -53
  5. pulumi_alicloud/cfg/outputs.py +18 -15
  6. pulumi_alicloud/cloudfirewall/__init__.py +1 -0
  7. pulumi_alicloud/cloudfirewall/get_tls_inspect_ca_certificates.py +214 -0
  8. pulumi_alicloud/cloudfirewall/outputs.py +30 -0
  9. pulumi_alicloud/cloudsso/__init__.py +1 -0
  10. pulumi_alicloud/cloudsso/get_user_provisioning_events.py +226 -0
  11. pulumi_alicloud/cloudsso/outputs.py +228 -0
  12. pulumi_alicloud/cms/_inputs.py +870 -10
  13. pulumi_alicloud/cms/get_site_monitors.py +2 -2
  14. pulumi_alicloud/cms/outputs.py +606 -6
  15. pulumi_alicloud/cms/site_monitor.py +360 -89
  16. pulumi_alicloud/cr/registry_enterprise_instance.py +63 -0
  17. pulumi_alicloud/cs/managed_kubernetes.py +6 -2
  18. pulumi_alicloud/ddos/domain_resource.py +89 -0
  19. pulumi_alicloud/dts/instance.py +14 -14
  20. pulumi_alicloud/eci/container_group.py +47 -0
  21. pulumi_alicloud/ecs/elasticity_assurance.py +279 -20
  22. pulumi_alicloud/ecs/security_group_rule.py +7 -7
  23. pulumi_alicloud/eflo/node.py +153 -15
  24. pulumi_alicloud/ens/load_balancer.py +8 -4
  25. pulumi_alicloud/esa/__init__.py +2 -0
  26. pulumi_alicloud/esa/_inputs.py +3759 -996
  27. pulumi_alicloud/esa/cache_rule.py +47 -0
  28. pulumi_alicloud/esa/certificate.py +21 -54
  29. pulumi_alicloud/esa/compression_rule.py +47 -0
  30. pulumi_alicloud/esa/load_balancer.py +999 -0
  31. pulumi_alicloud/esa/outputs.py +2068 -0
  32. pulumi_alicloud/esa/waf_rule.py +510 -0
  33. pulumi_alicloud/ess/__init__.py +1 -0
  34. pulumi_alicloud/ess/_inputs.py +256 -0
  35. pulumi_alicloud/ess/instance_refresh.py +760 -0
  36. pulumi_alicloud/ess/outputs.py +203 -0
  37. pulumi_alicloud/eventbridge/event_source.py +57 -57
  38. pulumi_alicloud/expressconnect/traffic_qos.py +137 -31
  39. pulumi_alicloud/expressconnect/traffic_qos_queue.py +91 -66
  40. pulumi_alicloud/expressconnect/traffic_qos_rule.py +307 -261
  41. pulumi_alicloud/expressconnect/vbr_pconn_association.py +105 -59
  42. pulumi_alicloud/ga/_inputs.py +56 -16
  43. pulumi_alicloud/ga/outputs.py +39 -11
  44. pulumi_alicloud/kvstore/account.py +14 -14
  45. pulumi_alicloud/lindorm/instance_v2.py +358 -70
  46. pulumi_alicloud/log/_inputs.py +29 -9
  47. pulumi_alicloud/log/etl.py +56 -9
  48. pulumi_alicloud/log/outputs.py +18 -6
  49. pulumi_alicloud/oss/_inputs.py +53 -0
  50. pulumi_alicloud/oss/bucket_logging.py +80 -29
  51. pulumi_alicloud/oss/bucket_replication.py +55 -8
  52. pulumi_alicloud/oss/outputs.py +31 -0
  53. pulumi_alicloud/polardb/__init__.py +3 -0
  54. pulumi_alicloud/polardb/cluster.py +14 -14
  55. pulumi_alicloud/polardb/zonal_account.py +449 -0
  56. pulumi_alicloud/polardb/zonal_db_cluster.py +1255 -0
  57. pulumi_alicloud/polardb/zonal_endpoint.py +865 -0
  58. pulumi_alicloud/pulumi-plugin.json +1 -1
  59. pulumi_alicloud/ram/policy.py +2 -2
  60. pulumi_alicloud/resourcemanager/__init__.py +2 -0
  61. pulumi_alicloud/resourcemanager/_inputs.py +799 -0
  62. pulumi_alicloud/resourcemanager/delivery_channel.py +449 -0
  63. pulumi_alicloud/resourcemanager/multi_account_delivery_channel.py +470 -0
  64. pulumi_alicloud/resourcemanager/outputs.py +694 -0
  65. pulumi_alicloud/resourcemanager/resource_share.py +341 -11
  66. pulumi_alicloud/sae/_inputs.py +60 -0
  67. pulumi_alicloud/sae/application.py +1 -1
  68. pulumi_alicloud/sae/outputs.py +42 -0
  69. pulumi_alicloud/sls/__init__.py +1 -0
  70. pulumi_alicloud/sls/get_indexs.py +304 -0
  71. pulumi_alicloud/sls/outputs.py +148 -0
  72. pulumi_alicloud/star_rocks_instance.py +8 -2
  73. pulumi_alicloud/starrocks/__init__.py +12 -0
  74. pulumi_alicloud/starrocks/_inputs.py +656 -0
  75. pulumi_alicloud/starrocks/instance.py +1427 -0
  76. pulumi_alicloud/starrocks/node_group.py +1298 -0
  77. pulumi_alicloud/starrocks/outputs.py +508 -0
  78. pulumi_alicloud/vpc/_inputs.py +84 -0
  79. pulumi_alicloud/vpc/bgp_group.py +250 -53
  80. pulumi_alicloud/vpc/common_bandwith_package_attachment.py +30 -14
  81. pulumi_alicloud/vpc/gateway_endpoint.py +8 -8
  82. pulumi_alicloud/vpc/get_enhanced_nat_available_zones.py +3 -3
  83. pulumi_alicloud/vpc/network_acl_entries.py +16 -20
  84. pulumi_alicloud/vpc/outputs.py +48 -0
  85. pulumi_alicloud/vpc/vbr_ha.py +127 -46
  86. pulumi_alicloud/wafv3/_inputs.py +396 -0
  87. pulumi_alicloud/wafv3/defense_rule.py +40 -110
  88. pulumi_alicloud/wafv3/outputs.py +303 -0
  89. {pulumi_alicloud-3.87.0a1760678219.dist-info → pulumi_alicloud-3.88.0.dist-info}/METADATA +1 -1
  90. {pulumi_alicloud-3.87.0a1760678219.dist-info → pulumi_alicloud-3.88.0.dist-info}/RECORD +92 -76
  91. {pulumi_alicloud-3.87.0a1760678219.dist-info → pulumi_alicloud-3.88.0.dist-info}/WHEEL +0 -0
  92. {pulumi_alicloud-3.87.0a1760678219.dist-info → pulumi_alicloud-3.88.0.dist-info}/top_level.txt +0 -0
@@ -18,6 +18,11 @@ from . import outputs
18
18
  __all__ = [
19
19
  'HttpRequestHeaderModificationRuleRequestHeaderModification',
20
20
  'HttpResponseHeaderModificationRuleResponseHeaderModification',
21
+ 'LoadBalancerAdaptiveRouting',
22
+ 'LoadBalancerMonitor',
23
+ 'LoadBalancerRandomSteering',
24
+ 'LoadBalancerRule',
25
+ 'LoadBalancerRuleFixedResponse',
21
26
  'OriginPoolOrigin',
22
27
  'OriginPoolOriginAuthConf',
23
28
  'RecordAuthConf',
@@ -29,6 +34,35 @@ __all__ = [
29
34
  'SiteDeliveryTaskS3Delivery',
30
35
  'SiteDeliveryTaskSlsDelivery',
31
36
  'TransportLayerApplicationRule',
37
+ 'WafRuleConfig',
38
+ 'WafRuleConfigActions',
39
+ 'WafRuleConfigActionsBypass',
40
+ 'WafRuleConfigActionsResponse',
41
+ 'WafRuleConfigAppPackage',
42
+ 'WafRuleConfigAppPackagePackageSign',
43
+ 'WafRuleConfigAppSdk',
44
+ 'WafRuleConfigAppSdkCustomSign',
45
+ 'WafRuleConfigManagedRuleset',
46
+ 'WafRuleConfigManagedRulesetManagedRule',
47
+ 'WafRuleConfigRateLimit',
48
+ 'WafRuleConfigRateLimitCharacteristics',
49
+ 'WafRuleConfigRateLimitCharacteristicsCriteria',
50
+ 'WafRuleConfigRateLimitCharacteristicsCriteriaCriteria',
51
+ 'WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria',
52
+ 'WafRuleConfigRateLimitThreshold',
53
+ 'WafRuleConfigRateLimitThresholdResponseStatus',
54
+ 'WafRuleConfigSecurityLevel',
55
+ 'WafRuleConfigTimer',
56
+ 'WafRuleConfigTimerPeriod',
57
+ 'WafRuleConfigTimerWeeklyPeriod',
58
+ 'WafRuleConfigTimerWeeklyPeriodDailyPeriod',
59
+ 'WafRuleShared',
60
+ 'WafRuleSharedActions',
61
+ 'WafRuleSharedActionsResponse',
62
+ 'WafRuleSharedMatch',
63
+ 'WafRuleSharedMatchCriteria',
64
+ 'WafRuleSharedMatchCriteriaCriteria',
65
+ 'WafRuleSharedMatchCriteriaCriteriaCriteria',
32
66
  'WaitingRoomHostNameAndPath',
33
67
  'GetSitesSiteResult',
34
68
  ]
@@ -115,6 +149,470 @@ class HttpResponseHeaderModificationRuleResponseHeaderModification(dict):
115
149
  return pulumi.get(self, "value")
116
150
 
117
151
 
152
+ @pulumi.output_type
153
+ class LoadBalancerAdaptiveRouting(dict):
154
+ @staticmethod
155
+ def __key_warning(key: str):
156
+ suggest = None
157
+ if key == "failoverAcrossPools":
158
+ suggest = "failover_across_pools"
159
+
160
+ if suggest:
161
+ pulumi.log.warn(f"Key '{key}' not found in LoadBalancerAdaptiveRouting. Access the value via the '{suggest}' property getter instead.")
162
+
163
+ def __getitem__(self, key: str) -> Any:
164
+ LoadBalancerAdaptiveRouting.__key_warning(key)
165
+ return super().__getitem__(key)
166
+
167
+ def get(self, key: str, default = None) -> Any:
168
+ LoadBalancerAdaptiveRouting.__key_warning(key)
169
+ return super().get(key, default)
170
+
171
+ def __init__(__self__, *,
172
+ failover_across_pools: Optional[_builtins.bool] = None):
173
+ """
174
+ :param _builtins.bool failover_across_pools: Whether to failover across pools.
175
+ """
176
+ if failover_across_pools is not None:
177
+ pulumi.set(__self__, "failover_across_pools", failover_across_pools)
178
+
179
+ @_builtins.property
180
+ @pulumi.getter(name="failoverAcrossPools")
181
+ def failover_across_pools(self) -> Optional[_builtins.bool]:
182
+ """
183
+ Whether to failover across pools.
184
+ """
185
+ return pulumi.get(self, "failover_across_pools")
186
+
187
+
188
+ @pulumi.output_type
189
+ class LoadBalancerMonitor(dict):
190
+ @staticmethod
191
+ def __key_warning(key: str):
192
+ suggest = None
193
+ if key == "consecutiveDown":
194
+ suggest = "consecutive_down"
195
+ elif key == "consecutiveUp":
196
+ suggest = "consecutive_up"
197
+ elif key == "expectedCodes":
198
+ suggest = "expected_codes"
199
+ elif key == "followRedirects":
200
+ suggest = "follow_redirects"
201
+ elif key == "monitoringRegion":
202
+ suggest = "monitoring_region"
203
+
204
+ if suggest:
205
+ pulumi.log.warn(f"Key '{key}' not found in LoadBalancerMonitor. Access the value via the '{suggest}' property getter instead.")
206
+
207
+ def __getitem__(self, key: str) -> Any:
208
+ LoadBalancerMonitor.__key_warning(key)
209
+ return super().__getitem__(key)
210
+
211
+ def get(self, key: str, default = None) -> Any:
212
+ LoadBalancerMonitor.__key_warning(key)
213
+ return super().get(key, default)
214
+
215
+ def __init__(__self__, *,
216
+ consecutive_down: Optional[_builtins.int] = None,
217
+ consecutive_up: Optional[_builtins.int] = None,
218
+ expected_codes: Optional[_builtins.str] = None,
219
+ follow_redirects: Optional[_builtins.bool] = None,
220
+ header: Optional[_builtins.str] = None,
221
+ interval: Optional[_builtins.int] = None,
222
+ method: Optional[_builtins.str] = None,
223
+ monitoring_region: Optional[_builtins.str] = None,
224
+ path: Optional[_builtins.str] = None,
225
+ port: Optional[_builtins.int] = None,
226
+ timeout: Optional[_builtins.int] = None,
227
+ type: Optional[_builtins.str] = None):
228
+ """
229
+ :param _builtins.int consecutive_down: The number of consecutive failed health checks before the backend is considered down, for example, 5.
230
+ :param _builtins.int consecutive_up: The number of consecutive successful probes required to consider the target as up, e.g., 3.
231
+ :param _builtins.str expected_codes: Expected status code, such as 200,202, successful HTTP response.
232
+ :param _builtins.bool follow_redirects: Whether to follow the redirect.
233
+ :param _builtins.str header: The HTTP headers to be included in the health check request.
234
+ :param _builtins.int interval: The monitoring interval, such as 60 seconds, checks the frequency.
235
+ :param _builtins.str method: Monitor request methods, such as GET, methods in the HTTP protocol.
236
+ :param _builtins.str monitoring_region: Probe Point Region, default to Global
237
+ - `Global`: Global.
238
+ - `ChineseMainland`: Chinese mainland.
239
+ - `OutsideChineseMainland`: Global (excluding the Chinese mainland).
240
+ :param _builtins.str path: The monitor checks the path, such as/healthcheck, the HTTP request path.
241
+ :param _builtins.int port: The target port.
242
+ :param _builtins.int timeout: The timeout for the health check, in seconds. The value range is 1-10.
243
+ :param _builtins.str type: The type of monitor protocol, such as HTTP, used for health checks. When the value is off, it indicates that no check is performed.
244
+ """
245
+ if consecutive_down is not None:
246
+ pulumi.set(__self__, "consecutive_down", consecutive_down)
247
+ if consecutive_up is not None:
248
+ pulumi.set(__self__, "consecutive_up", consecutive_up)
249
+ if expected_codes is not None:
250
+ pulumi.set(__self__, "expected_codes", expected_codes)
251
+ if follow_redirects is not None:
252
+ pulumi.set(__self__, "follow_redirects", follow_redirects)
253
+ if header is not None:
254
+ pulumi.set(__self__, "header", header)
255
+ if interval is not None:
256
+ pulumi.set(__self__, "interval", interval)
257
+ if method is not None:
258
+ pulumi.set(__self__, "method", method)
259
+ if monitoring_region is not None:
260
+ pulumi.set(__self__, "monitoring_region", monitoring_region)
261
+ if path is not None:
262
+ pulumi.set(__self__, "path", path)
263
+ if port is not None:
264
+ pulumi.set(__self__, "port", port)
265
+ if timeout is not None:
266
+ pulumi.set(__self__, "timeout", timeout)
267
+ if type is not None:
268
+ pulumi.set(__self__, "type", type)
269
+
270
+ @_builtins.property
271
+ @pulumi.getter(name="consecutiveDown")
272
+ def consecutive_down(self) -> Optional[_builtins.int]:
273
+ """
274
+ The number of consecutive failed health checks before the backend is considered down, for example, 5.
275
+ """
276
+ return pulumi.get(self, "consecutive_down")
277
+
278
+ @_builtins.property
279
+ @pulumi.getter(name="consecutiveUp")
280
+ def consecutive_up(self) -> Optional[_builtins.int]:
281
+ """
282
+ The number of consecutive successful probes required to consider the target as up, e.g., 3.
283
+ """
284
+ return pulumi.get(self, "consecutive_up")
285
+
286
+ @_builtins.property
287
+ @pulumi.getter(name="expectedCodes")
288
+ def expected_codes(self) -> Optional[_builtins.str]:
289
+ """
290
+ Expected status code, such as 200,202, successful HTTP response.
291
+ """
292
+ return pulumi.get(self, "expected_codes")
293
+
294
+ @_builtins.property
295
+ @pulumi.getter(name="followRedirects")
296
+ def follow_redirects(self) -> Optional[_builtins.bool]:
297
+ """
298
+ Whether to follow the redirect.
299
+ """
300
+ return pulumi.get(self, "follow_redirects")
301
+
302
+ @_builtins.property
303
+ @pulumi.getter
304
+ def header(self) -> Optional[_builtins.str]:
305
+ """
306
+ The HTTP headers to be included in the health check request.
307
+ """
308
+ return pulumi.get(self, "header")
309
+
310
+ @_builtins.property
311
+ @pulumi.getter
312
+ def interval(self) -> Optional[_builtins.int]:
313
+ """
314
+ The monitoring interval, such as 60 seconds, checks the frequency.
315
+ """
316
+ return pulumi.get(self, "interval")
317
+
318
+ @_builtins.property
319
+ @pulumi.getter
320
+ def method(self) -> Optional[_builtins.str]:
321
+ """
322
+ Monitor request methods, such as GET, methods in the HTTP protocol.
323
+ """
324
+ return pulumi.get(self, "method")
325
+
326
+ @_builtins.property
327
+ @pulumi.getter(name="monitoringRegion")
328
+ def monitoring_region(self) -> Optional[_builtins.str]:
329
+ """
330
+ Probe Point Region, default to Global
331
+ - `Global`: Global.
332
+ - `ChineseMainland`: Chinese mainland.
333
+ - `OutsideChineseMainland`: Global (excluding the Chinese mainland).
334
+ """
335
+ return pulumi.get(self, "monitoring_region")
336
+
337
+ @_builtins.property
338
+ @pulumi.getter
339
+ def path(self) -> Optional[_builtins.str]:
340
+ """
341
+ The monitor checks the path, such as/healthcheck, the HTTP request path.
342
+ """
343
+ return pulumi.get(self, "path")
344
+
345
+ @_builtins.property
346
+ @pulumi.getter
347
+ def port(self) -> Optional[_builtins.int]:
348
+ """
349
+ The target port.
350
+ """
351
+ return pulumi.get(self, "port")
352
+
353
+ @_builtins.property
354
+ @pulumi.getter
355
+ def timeout(self) -> Optional[_builtins.int]:
356
+ """
357
+ The timeout for the health check, in seconds. The value range is 1-10.
358
+ """
359
+ return pulumi.get(self, "timeout")
360
+
361
+ @_builtins.property
362
+ @pulumi.getter
363
+ def type(self) -> Optional[_builtins.str]:
364
+ """
365
+ The type of monitor protocol, such as HTTP, used for health checks. When the value is off, it indicates that no check is performed.
366
+ """
367
+ return pulumi.get(self, "type")
368
+
369
+
370
+ @pulumi.output_type
371
+ class LoadBalancerRandomSteering(dict):
372
+ @staticmethod
373
+ def __key_warning(key: str):
374
+ suggest = None
375
+ if key == "defaultWeight":
376
+ suggest = "default_weight"
377
+ elif key == "poolWeights":
378
+ suggest = "pool_weights"
379
+
380
+ if suggest:
381
+ pulumi.log.warn(f"Key '{key}' not found in LoadBalancerRandomSteering. Access the value via the '{suggest}' property getter instead.")
382
+
383
+ def __getitem__(self, key: str) -> Any:
384
+ LoadBalancerRandomSteering.__key_warning(key)
385
+ return super().__getitem__(key)
386
+
387
+ def get(self, key: str, default = None) -> Any:
388
+ LoadBalancerRandomSteering.__key_warning(key)
389
+ return super().get(key, default)
390
+
391
+ def __init__(__self__, *,
392
+ default_weight: Optional[_builtins.int] = None,
393
+ pool_weights: Optional[Mapping[str, _builtins.str]] = None):
394
+ """
395
+ :param _builtins.int default_weight: The default round-robin weight, used for all pools that do not have individually specified weights. The value range is 0-100.
396
+ :param Mapping[str, _builtins.str] pool_weights: Weight configuration for each backend server pool, where the key is the pool ID and the value is the weight coefficient. The weight coefficient represents the proportion of relative traffic distribution.
397
+ """
398
+ if default_weight is not None:
399
+ pulumi.set(__self__, "default_weight", default_weight)
400
+ if pool_weights is not None:
401
+ pulumi.set(__self__, "pool_weights", pool_weights)
402
+
403
+ @_builtins.property
404
+ @pulumi.getter(name="defaultWeight")
405
+ def default_weight(self) -> Optional[_builtins.int]:
406
+ """
407
+ The default round-robin weight, used for all pools that do not have individually specified weights. The value range is 0-100.
408
+ """
409
+ return pulumi.get(self, "default_weight")
410
+
411
+ @_builtins.property
412
+ @pulumi.getter(name="poolWeights")
413
+ def pool_weights(self) -> Optional[Mapping[str, _builtins.str]]:
414
+ """
415
+ Weight configuration for each backend server pool, where the key is the pool ID and the value is the weight coefficient. The weight coefficient represents the proportion of relative traffic distribution.
416
+ """
417
+ return pulumi.get(self, "pool_weights")
418
+
419
+
420
+ @pulumi.output_type
421
+ class LoadBalancerRule(dict):
422
+ @staticmethod
423
+ def __key_warning(key: str):
424
+ suggest = None
425
+ if key == "fixedResponse":
426
+ suggest = "fixed_response"
427
+ elif key == "ruleEnable":
428
+ suggest = "rule_enable"
429
+ elif key == "ruleName":
430
+ suggest = "rule_name"
431
+
432
+ if suggest:
433
+ pulumi.log.warn(f"Key '{key}' not found in LoadBalancerRule. Access the value via the '{suggest}' property getter instead.")
434
+
435
+ def __getitem__(self, key: str) -> Any:
436
+ LoadBalancerRule.__key_warning(key)
437
+ return super().__getitem__(key)
438
+
439
+ def get(self, key: str, default = None) -> Any:
440
+ LoadBalancerRule.__key_warning(key)
441
+ return super().get(key, default)
442
+
443
+ def __init__(__self__, *,
444
+ fixed_response: Optional['outputs.LoadBalancerRuleFixedResponse'] = None,
445
+ overrides: Optional[_builtins.str] = None,
446
+ rule: Optional[_builtins.str] = None,
447
+ rule_enable: Optional[_builtins.str] = None,
448
+ rule_name: Optional[_builtins.str] = None,
449
+ sequence: Optional[_builtins.int] = None,
450
+ terminates: Optional[_builtins.bool] = None):
451
+ """
452
+ :param 'LoadBalancerRuleFixedResponseArgs' fixed_response: Executes a specified response after matching the rule. See `fixed_response` below.
453
+ :param _builtins.str overrides: Modifies the load balancer configuration for the corresponding request after matching the rule. The fields in this configuration will override the corresponding fields in the load balancer configuration.
454
+ :param _builtins.str rule: Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:
455
+ - Match all incoming requests: value set to true
456
+ - Match specified request: Set the value to a custom expression, for example: (http.host eq \\"video.example.com\\")
457
+ :param _builtins.str rule_enable: Rule switch. When adding global configuration, this parameter does not need to be set. Value range:
458
+ - on: open.
459
+ - off: close.
460
+ :param _builtins.str rule_name: Rule name. When adding global configuration, this parameter does not need to be set.
461
+ :param _builtins.int sequence: Order of rule execution. The smaller the value, the higher the priority for execution.
462
+ :param _builtins.bool terminates: Whether to terminate the execution of subsequent rules.
463
+ """
464
+ if fixed_response is not None:
465
+ pulumi.set(__self__, "fixed_response", fixed_response)
466
+ if overrides is not None:
467
+ pulumi.set(__self__, "overrides", overrides)
468
+ if rule is not None:
469
+ pulumi.set(__self__, "rule", rule)
470
+ if rule_enable is not None:
471
+ pulumi.set(__self__, "rule_enable", rule_enable)
472
+ if rule_name is not None:
473
+ pulumi.set(__self__, "rule_name", rule_name)
474
+ if sequence is not None:
475
+ pulumi.set(__self__, "sequence", sequence)
476
+ if terminates is not None:
477
+ pulumi.set(__self__, "terminates", terminates)
478
+
479
+ @_builtins.property
480
+ @pulumi.getter(name="fixedResponse")
481
+ def fixed_response(self) -> Optional['outputs.LoadBalancerRuleFixedResponse']:
482
+ """
483
+ Executes a specified response after matching the rule. See `fixed_response` below.
484
+ """
485
+ return pulumi.get(self, "fixed_response")
486
+
487
+ @_builtins.property
488
+ @pulumi.getter
489
+ def overrides(self) -> Optional[_builtins.str]:
490
+ """
491
+ Modifies the load balancer configuration for the corresponding request after matching the rule. The fields in this configuration will override the corresponding fields in the load balancer configuration.
492
+ """
493
+ return pulumi.get(self, "overrides")
494
+
495
+ @_builtins.property
496
+ @pulumi.getter
497
+ def rule(self) -> Optional[_builtins.str]:
498
+ """
499
+ Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:
500
+ - Match all incoming requests: value set to true
501
+ - Match specified request: Set the value to a custom expression, for example: (http.host eq \\"video.example.com\\")
502
+ """
503
+ return pulumi.get(self, "rule")
504
+
505
+ @_builtins.property
506
+ @pulumi.getter(name="ruleEnable")
507
+ def rule_enable(self) -> Optional[_builtins.str]:
508
+ """
509
+ Rule switch. When adding global configuration, this parameter does not need to be set. Value range:
510
+ - on: open.
511
+ - off: close.
512
+ """
513
+ return pulumi.get(self, "rule_enable")
514
+
515
+ @_builtins.property
516
+ @pulumi.getter(name="ruleName")
517
+ def rule_name(self) -> Optional[_builtins.str]:
518
+ """
519
+ Rule name. When adding global configuration, this parameter does not need to be set.
520
+ """
521
+ return pulumi.get(self, "rule_name")
522
+
523
+ @_builtins.property
524
+ @pulumi.getter
525
+ def sequence(self) -> Optional[_builtins.int]:
526
+ """
527
+ Order of rule execution. The smaller the value, the higher the priority for execution.
528
+ """
529
+ return pulumi.get(self, "sequence")
530
+
531
+ @_builtins.property
532
+ @pulumi.getter
533
+ def terminates(self) -> Optional[_builtins.bool]:
534
+ """
535
+ Whether to terminate the execution of subsequent rules.
536
+ """
537
+ return pulumi.get(self, "terminates")
538
+
539
+
540
+ @pulumi.output_type
541
+ class LoadBalancerRuleFixedResponse(dict):
542
+ @staticmethod
543
+ def __key_warning(key: str):
544
+ suggest = None
545
+ if key == "contentType":
546
+ suggest = "content_type"
547
+ elif key == "messageBody":
548
+ suggest = "message_body"
549
+ elif key == "statusCode":
550
+ suggest = "status_code"
551
+
552
+ if suggest:
553
+ pulumi.log.warn(f"Key '{key}' not found in LoadBalancerRuleFixedResponse. Access the value via the '{suggest}' property getter instead.")
554
+
555
+ def __getitem__(self, key: str) -> Any:
556
+ LoadBalancerRuleFixedResponse.__key_warning(key)
557
+ return super().__getitem__(key)
558
+
559
+ def get(self, key: str, default = None) -> Any:
560
+ LoadBalancerRuleFixedResponse.__key_warning(key)
561
+ return super().get(key, default)
562
+
563
+ def __init__(__self__, *,
564
+ content_type: Optional[_builtins.str] = None,
565
+ location: Optional[_builtins.str] = None,
566
+ message_body: Optional[_builtins.str] = None,
567
+ status_code: Optional[_builtins.int] = None):
568
+ """
569
+ :param _builtins.str content_type: The Content-Type field in the HTTP Header.
570
+ :param _builtins.str location: The location field in the http return.
571
+ :param _builtins.str message_body: The body value of the response.
572
+ :param _builtins.int status_code: Status Code.
573
+ """
574
+ if content_type is not None:
575
+ pulumi.set(__self__, "content_type", content_type)
576
+ if location is not None:
577
+ pulumi.set(__self__, "location", location)
578
+ if message_body is not None:
579
+ pulumi.set(__self__, "message_body", message_body)
580
+ if status_code is not None:
581
+ pulumi.set(__self__, "status_code", status_code)
582
+
583
+ @_builtins.property
584
+ @pulumi.getter(name="contentType")
585
+ def content_type(self) -> Optional[_builtins.str]:
586
+ """
587
+ The Content-Type field in the HTTP Header.
588
+ """
589
+ return pulumi.get(self, "content_type")
590
+
591
+ @_builtins.property
592
+ @pulumi.getter
593
+ def location(self) -> Optional[_builtins.str]:
594
+ """
595
+ The location field in the http return.
596
+ """
597
+ return pulumi.get(self, "location")
598
+
599
+ @_builtins.property
600
+ @pulumi.getter(name="messageBody")
601
+ def message_body(self) -> Optional[_builtins.str]:
602
+ """
603
+ The body value of the response.
604
+ """
605
+ return pulumi.get(self, "message_body")
606
+
607
+ @_builtins.property
608
+ @pulumi.getter(name="statusCode")
609
+ def status_code(self) -> Optional[_builtins.int]:
610
+ """
611
+ Status Code.
612
+ """
613
+ return pulumi.get(self, "status_code")
614
+
615
+
118
616
  @pulumi.output_type
119
617
  class OriginPoolOrigin(dict):
120
618
  @staticmethod
@@ -1285,6 +1783,1576 @@ class TransportLayerApplicationRule(dict):
1285
1783
  return pulumi.get(self, "rule_id")
1286
1784
 
1287
1785
 
1786
+ @pulumi.output_type
1787
+ class WafRuleConfig(dict):
1788
+ @staticmethod
1789
+ def __key_warning(key: str):
1790
+ suggest = None
1791
+ if key == "appPackage":
1792
+ suggest = "app_package"
1793
+ elif key == "appSdk":
1794
+ suggest = "app_sdk"
1795
+ elif key == "managedGroupId":
1796
+ suggest = "managed_group_id"
1797
+ elif key == "managedList":
1798
+ suggest = "managed_list"
1799
+ elif key == "managedRulesets":
1800
+ suggest = "managed_rulesets"
1801
+ elif key == "rateLimit":
1802
+ suggest = "rate_limit"
1803
+ elif key == "securityLevel":
1804
+ suggest = "security_level"
1805
+
1806
+ if suggest:
1807
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfig. Access the value via the '{suggest}' property getter instead.")
1808
+
1809
+ def __getitem__(self, key: str) -> Any:
1810
+ WafRuleConfig.__key_warning(key)
1811
+ return super().__getitem__(key)
1812
+
1813
+ def get(self, key: str, default = None) -> Any:
1814
+ WafRuleConfig.__key_warning(key)
1815
+ return super().get(key, default)
1816
+
1817
+ def __init__(__self__, *,
1818
+ action: Optional[_builtins.str] = None,
1819
+ actions: Optional['outputs.WafRuleConfigActions'] = None,
1820
+ app_package: Optional['outputs.WafRuleConfigAppPackage'] = None,
1821
+ app_sdk: Optional['outputs.WafRuleConfigAppSdk'] = None,
1822
+ expression: Optional[_builtins.str] = None,
1823
+ id: Optional[_builtins.int] = None,
1824
+ managed_group_id: Optional[_builtins.int] = None,
1825
+ managed_list: Optional[_builtins.str] = None,
1826
+ managed_rulesets: Optional[Sequence['outputs.WafRuleConfigManagedRuleset']] = None,
1827
+ name: Optional[_builtins.str] = None,
1828
+ notes: Optional[_builtins.str] = None,
1829
+ rate_limit: Optional['outputs.WafRuleConfigRateLimit'] = None,
1830
+ security_level: Optional['outputs.WafRuleConfigSecurityLevel'] = None,
1831
+ sigchls: Optional[Sequence[_builtins.str]] = None,
1832
+ status: Optional[_builtins.str] = None,
1833
+ timer: Optional['outputs.WafRuleConfigTimer'] = None,
1834
+ type: Optional[_builtins.str] = None,
1835
+ value: Optional[_builtins.str] = None):
1836
+ """
1837
+ :param _builtins.str action: The action performed on requests that match the managed rule.
1838
+ :param 'WafRuleConfigActionsArgs' actions: Extended action configurations, including custom responses and bypass settings. See `actions` below.
1839
+ :param 'WafRuleConfigAppPackageArgs' app_package: Security mechanism to prevent apps from being repackaged. See `app_package` below.
1840
+ :param 'WafRuleConfigAppSdkArgs' app_sdk: Mobile app SDK-related configurations. See `app_sdk` below.
1841
+ :param _builtins.str expression: The match expression used to evaluate incoming requests.
1842
+ :param _builtins.int id: The ID of the custom error page, which can be obtained by calling the ListPages operation.
1843
+ :param _builtins.int managed_group_id: The ID of the managed rule group (deprecated).
1844
+ :param _builtins.str managed_list: The name of the managed list applied to this rule.
1845
+ :param Sequence['WafRuleConfigManagedRulesetArgs'] managed_rulesets: The managed rulesets referenced by this rule and their configurations. See `managed_rulesets` below.
1846
+ :param _builtins.str name: The package name of an authorized application.
1847
+ :param _builtins.str notes: Additional notes about this rule.
1848
+ :param 'WafRuleConfigRateLimitArgs' rate_limit: Configuration of the rate limiting rule. See `rate_limit` below.
1849
+ :param 'WafRuleConfigSecurityLevelArgs' security_level: The overall security protection level of WAF. See `security_level` below.
1850
+ :param Sequence[_builtins.str] sigchls: Configuration items for token verification mechanisms.
1851
+ :param _builtins.str status: The status of the managed rule: whether it is enabled or disabled.
1852
+ :param 'WafRuleConfigTimerArgs' timer: Configuration for the time schedule when the rule takes effect. See `timer` below.
1853
+ :param _builtins.str type: The type category of the WAF rule.
1854
+ :param _builtins.str value: The value of the custom signature field used for validation.
1855
+ """
1856
+ if action is not None:
1857
+ pulumi.set(__self__, "action", action)
1858
+ if actions is not None:
1859
+ pulumi.set(__self__, "actions", actions)
1860
+ if app_package is not None:
1861
+ pulumi.set(__self__, "app_package", app_package)
1862
+ if app_sdk is not None:
1863
+ pulumi.set(__self__, "app_sdk", app_sdk)
1864
+ if expression is not None:
1865
+ pulumi.set(__self__, "expression", expression)
1866
+ if id is not None:
1867
+ pulumi.set(__self__, "id", id)
1868
+ if managed_group_id is not None:
1869
+ pulumi.set(__self__, "managed_group_id", managed_group_id)
1870
+ if managed_list is not None:
1871
+ pulumi.set(__self__, "managed_list", managed_list)
1872
+ if managed_rulesets is not None:
1873
+ pulumi.set(__self__, "managed_rulesets", managed_rulesets)
1874
+ if name is not None:
1875
+ pulumi.set(__self__, "name", name)
1876
+ if notes is not None:
1877
+ pulumi.set(__self__, "notes", notes)
1878
+ if rate_limit is not None:
1879
+ pulumi.set(__self__, "rate_limit", rate_limit)
1880
+ if security_level is not None:
1881
+ pulumi.set(__self__, "security_level", security_level)
1882
+ if sigchls is not None:
1883
+ pulumi.set(__self__, "sigchls", sigchls)
1884
+ if status is not None:
1885
+ pulumi.set(__self__, "status", status)
1886
+ if timer is not None:
1887
+ pulumi.set(__self__, "timer", timer)
1888
+ if type is not None:
1889
+ pulumi.set(__self__, "type", type)
1890
+ if value is not None:
1891
+ pulumi.set(__self__, "value", value)
1892
+
1893
+ @_builtins.property
1894
+ @pulumi.getter
1895
+ def action(self) -> Optional[_builtins.str]:
1896
+ """
1897
+ The action performed on requests that match the managed rule.
1898
+ """
1899
+ return pulumi.get(self, "action")
1900
+
1901
+ @_builtins.property
1902
+ @pulumi.getter
1903
+ def actions(self) -> Optional['outputs.WafRuleConfigActions']:
1904
+ """
1905
+ Extended action configurations, including custom responses and bypass settings. See `actions` below.
1906
+ """
1907
+ return pulumi.get(self, "actions")
1908
+
1909
+ @_builtins.property
1910
+ @pulumi.getter(name="appPackage")
1911
+ def app_package(self) -> Optional['outputs.WafRuleConfigAppPackage']:
1912
+ """
1913
+ Security mechanism to prevent apps from being repackaged. See `app_package` below.
1914
+ """
1915
+ return pulumi.get(self, "app_package")
1916
+
1917
+ @_builtins.property
1918
+ @pulumi.getter(name="appSdk")
1919
+ def app_sdk(self) -> Optional['outputs.WafRuleConfigAppSdk']:
1920
+ """
1921
+ Mobile app SDK-related configurations. See `app_sdk` below.
1922
+ """
1923
+ return pulumi.get(self, "app_sdk")
1924
+
1925
+ @_builtins.property
1926
+ @pulumi.getter
1927
+ def expression(self) -> Optional[_builtins.str]:
1928
+ """
1929
+ The match expression used to evaluate incoming requests.
1930
+ """
1931
+ return pulumi.get(self, "expression")
1932
+
1933
+ @_builtins.property
1934
+ @pulumi.getter
1935
+ def id(self) -> Optional[_builtins.int]:
1936
+ """
1937
+ The ID of the custom error page, which can be obtained by calling the ListPages operation.
1938
+ """
1939
+ return pulumi.get(self, "id")
1940
+
1941
+ @_builtins.property
1942
+ @pulumi.getter(name="managedGroupId")
1943
+ def managed_group_id(self) -> Optional[_builtins.int]:
1944
+ """
1945
+ The ID of the managed rule group (deprecated).
1946
+ """
1947
+ return pulumi.get(self, "managed_group_id")
1948
+
1949
+ @_builtins.property
1950
+ @pulumi.getter(name="managedList")
1951
+ def managed_list(self) -> Optional[_builtins.str]:
1952
+ """
1953
+ The name of the managed list applied to this rule.
1954
+ """
1955
+ return pulumi.get(self, "managed_list")
1956
+
1957
+ @_builtins.property
1958
+ @pulumi.getter(name="managedRulesets")
1959
+ def managed_rulesets(self) -> Optional[Sequence['outputs.WafRuleConfigManagedRuleset']]:
1960
+ """
1961
+ The managed rulesets referenced by this rule and their configurations. See `managed_rulesets` below.
1962
+ """
1963
+ return pulumi.get(self, "managed_rulesets")
1964
+
1965
+ @_builtins.property
1966
+ @pulumi.getter
1967
+ def name(self) -> Optional[_builtins.str]:
1968
+ """
1969
+ The package name of an authorized application.
1970
+ """
1971
+ return pulumi.get(self, "name")
1972
+
1973
+ @_builtins.property
1974
+ @pulumi.getter
1975
+ def notes(self) -> Optional[_builtins.str]:
1976
+ """
1977
+ Additional notes about this rule.
1978
+ """
1979
+ return pulumi.get(self, "notes")
1980
+
1981
+ @_builtins.property
1982
+ @pulumi.getter(name="rateLimit")
1983
+ def rate_limit(self) -> Optional['outputs.WafRuleConfigRateLimit']:
1984
+ """
1985
+ Configuration of the rate limiting rule. See `rate_limit` below.
1986
+ """
1987
+ return pulumi.get(self, "rate_limit")
1988
+
1989
+ @_builtins.property
1990
+ @pulumi.getter(name="securityLevel")
1991
+ def security_level(self) -> Optional['outputs.WafRuleConfigSecurityLevel']:
1992
+ """
1993
+ The overall security protection level of WAF. See `security_level` below.
1994
+ """
1995
+ return pulumi.get(self, "security_level")
1996
+
1997
+ @_builtins.property
1998
+ @pulumi.getter
1999
+ def sigchls(self) -> Optional[Sequence[_builtins.str]]:
2000
+ """
2001
+ Configuration items for token verification mechanisms.
2002
+ """
2003
+ return pulumi.get(self, "sigchls")
2004
+
2005
+ @_builtins.property
2006
+ @pulumi.getter
2007
+ def status(self) -> Optional[_builtins.str]:
2008
+ """
2009
+ The status of the managed rule: whether it is enabled or disabled.
2010
+ """
2011
+ return pulumi.get(self, "status")
2012
+
2013
+ @_builtins.property
2014
+ @pulumi.getter
2015
+ def timer(self) -> Optional['outputs.WafRuleConfigTimer']:
2016
+ """
2017
+ Configuration for the time schedule when the rule takes effect. See `timer` below.
2018
+ """
2019
+ return pulumi.get(self, "timer")
2020
+
2021
+ @_builtins.property
2022
+ @pulumi.getter
2023
+ def type(self) -> Optional[_builtins.str]:
2024
+ """
2025
+ The type category of the WAF rule.
2026
+ """
2027
+ return pulumi.get(self, "type")
2028
+
2029
+ @_builtins.property
2030
+ @pulumi.getter
2031
+ def value(self) -> Optional[_builtins.str]:
2032
+ """
2033
+ The value of the custom signature field used for validation.
2034
+ """
2035
+ return pulumi.get(self, "value")
2036
+
2037
+
2038
+ @pulumi.output_type
2039
+ class WafRuleConfigActions(dict):
2040
+ def __init__(__self__, *,
2041
+ bypass: Optional['outputs.WafRuleConfigActionsBypass'] = None,
2042
+ response: Optional['outputs.WafRuleConfigActionsResponse'] = None):
2043
+ """
2044
+ :param 'WafRuleConfigActionsBypassArgs' bypass: The skip configuration specified by the whitelist rule. See `bypass` below.
2045
+ """
2046
+ if bypass is not None:
2047
+ pulumi.set(__self__, "bypass", bypass)
2048
+ if response is not None:
2049
+ pulumi.set(__self__, "response", response)
2050
+
2051
+ @_builtins.property
2052
+ @pulumi.getter
2053
+ def bypass(self) -> Optional['outputs.WafRuleConfigActionsBypass']:
2054
+ """
2055
+ The skip configuration specified by the whitelist rule. See `bypass` below.
2056
+ """
2057
+ return pulumi.get(self, "bypass")
2058
+
2059
+ @_builtins.property
2060
+ @pulumi.getter
2061
+ def response(self) -> Optional['outputs.WafRuleConfigActionsResponse']:
2062
+ return pulumi.get(self, "response")
2063
+
2064
+
2065
+ @pulumi.output_type
2066
+ class WafRuleConfigActionsBypass(dict):
2067
+ @staticmethod
2068
+ def __key_warning(key: str):
2069
+ suggest = None
2070
+ if key == "customRules":
2071
+ suggest = "custom_rules"
2072
+ elif key == "regularRules":
2073
+ suggest = "regular_rules"
2074
+ elif key == "regularTypes":
2075
+ suggest = "regular_types"
2076
+
2077
+ if suggest:
2078
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigActionsBypass. Access the value via the '{suggest}' property getter instead.")
2079
+
2080
+ def __getitem__(self, key: str) -> Any:
2081
+ WafRuleConfigActionsBypass.__key_warning(key)
2082
+ return super().__getitem__(key)
2083
+
2084
+ def get(self, key: str, default = None) -> Any:
2085
+ WafRuleConfigActionsBypass.__key_warning(key)
2086
+ return super().get(key, default)
2087
+
2088
+ def __init__(__self__, *,
2089
+ custom_rules: Optional[Sequence[_builtins.int]] = None,
2090
+ regular_rules: Optional[Sequence[_builtins.int]] = None,
2091
+ regular_types: Optional[Sequence[_builtins.str]] = None,
2092
+ skip: Optional[_builtins.str] = None,
2093
+ tags: Optional[Sequence[_builtins.str]] = None):
2094
+ """
2095
+ :param Sequence[_builtins.int] custom_rules: The IDs of custom rules to skip.
2096
+ :param Sequence[_builtins.int] regular_rules: The IDs of specific managed rules to skip.
2097
+ :param Sequence[_builtins.str] regular_types: The types of managed rules to skip.
2098
+ :param _builtins.str skip: The scope that is skipped when requests match conditions defined in the whitelist rule.
2099
+ :param Sequence[_builtins.str] tags: The rule categories that are skipped when requests match conditions defined in the whitelist rule.
2100
+ """
2101
+ if custom_rules is not None:
2102
+ pulumi.set(__self__, "custom_rules", custom_rules)
2103
+ if regular_rules is not None:
2104
+ pulumi.set(__self__, "regular_rules", regular_rules)
2105
+ if regular_types is not None:
2106
+ pulumi.set(__self__, "regular_types", regular_types)
2107
+ if skip is not None:
2108
+ pulumi.set(__self__, "skip", skip)
2109
+ if tags is not None:
2110
+ pulumi.set(__self__, "tags", tags)
2111
+
2112
+ @_builtins.property
2113
+ @pulumi.getter(name="customRules")
2114
+ def custom_rules(self) -> Optional[Sequence[_builtins.int]]:
2115
+ """
2116
+ The IDs of custom rules to skip.
2117
+ """
2118
+ return pulumi.get(self, "custom_rules")
2119
+
2120
+ @_builtins.property
2121
+ @pulumi.getter(name="regularRules")
2122
+ def regular_rules(self) -> Optional[Sequence[_builtins.int]]:
2123
+ """
2124
+ The IDs of specific managed rules to skip.
2125
+ """
2126
+ return pulumi.get(self, "regular_rules")
2127
+
2128
+ @_builtins.property
2129
+ @pulumi.getter(name="regularTypes")
2130
+ def regular_types(self) -> Optional[Sequence[_builtins.str]]:
2131
+ """
2132
+ The types of managed rules to skip.
2133
+ """
2134
+ return pulumi.get(self, "regular_types")
2135
+
2136
+ @_builtins.property
2137
+ @pulumi.getter
2138
+ def skip(self) -> Optional[_builtins.str]:
2139
+ """
2140
+ The scope that is skipped when requests match conditions defined in the whitelist rule.
2141
+ """
2142
+ return pulumi.get(self, "skip")
2143
+
2144
+ @_builtins.property
2145
+ @pulumi.getter
2146
+ def tags(self) -> Optional[Sequence[_builtins.str]]:
2147
+ """
2148
+ The rule categories that are skipped when requests match conditions defined in the whitelist rule.
2149
+ """
2150
+ return pulumi.get(self, "tags")
2151
+
2152
+
2153
+ @pulumi.output_type
2154
+ class WafRuleConfigActionsResponse(dict):
2155
+ def __init__(__self__, *,
2156
+ code: Optional[_builtins.int] = None,
2157
+ id: Optional[_builtins.int] = None):
2158
+ """
2159
+ :param _builtins.int id: The internal unique ID of the WAF rule.
2160
+ """
2161
+ if code is not None:
2162
+ pulumi.set(__self__, "code", code)
2163
+ if id is not None:
2164
+ pulumi.set(__self__, "id", id)
2165
+
2166
+ @_builtins.property
2167
+ @pulumi.getter
2168
+ def code(self) -> Optional[_builtins.int]:
2169
+ return pulumi.get(self, "code")
2170
+
2171
+ @_builtins.property
2172
+ @pulumi.getter
2173
+ def id(self) -> Optional[_builtins.int]:
2174
+ """
2175
+ The internal unique ID of the WAF rule.
2176
+ """
2177
+ return pulumi.get(self, "id")
2178
+
2179
+
2180
+ @pulumi.output_type
2181
+ class WafRuleConfigAppPackage(dict):
2182
+ @staticmethod
2183
+ def __key_warning(key: str):
2184
+ suggest = None
2185
+ if key == "packageSigns":
2186
+ suggest = "package_signs"
2187
+
2188
+ if suggest:
2189
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigAppPackage. Access the value via the '{suggest}' property getter instead.")
2190
+
2191
+ def __getitem__(self, key: str) -> Any:
2192
+ WafRuleConfigAppPackage.__key_warning(key)
2193
+ return super().__getitem__(key)
2194
+
2195
+ def get(self, key: str, default = None) -> Any:
2196
+ WafRuleConfigAppPackage.__key_warning(key)
2197
+ return super().get(key, default)
2198
+
2199
+ def __init__(__self__, *,
2200
+ package_signs: Optional[Sequence['outputs.WafRuleConfigAppPackagePackageSign']] = None):
2201
+ """
2202
+ :param Sequence['WafRuleConfigAppPackagePackageSignArgs'] package_signs: Security mechanism to prevent apps from being repackaged. See `package_signs` below.
2203
+ """
2204
+ if package_signs is not None:
2205
+ pulumi.set(__self__, "package_signs", package_signs)
2206
+
2207
+ @_builtins.property
2208
+ @pulumi.getter(name="packageSigns")
2209
+ def package_signs(self) -> Optional[Sequence['outputs.WafRuleConfigAppPackagePackageSign']]:
2210
+ """
2211
+ Security mechanism to prevent apps from being repackaged. See `package_signs` below.
2212
+ """
2213
+ return pulumi.get(self, "package_signs")
2214
+
2215
+
2216
+ @pulumi.output_type
2217
+ class WafRuleConfigAppPackagePackageSign(dict):
2218
+ def __init__(__self__, *,
2219
+ name: Optional[_builtins.str] = None,
2220
+ sign: Optional[_builtins.str] = None):
2221
+ """
2222
+ :param _builtins.str sign: The digital signature of a legitimate app package.
2223
+ """
2224
+ if name is not None:
2225
+ pulumi.set(__self__, "name", name)
2226
+ if sign is not None:
2227
+ pulumi.set(__self__, "sign", sign)
2228
+
2229
+ @_builtins.property
2230
+ @pulumi.getter
2231
+ def name(self) -> Optional[_builtins.str]:
2232
+ return pulumi.get(self, "name")
2233
+
2234
+ @_builtins.property
2235
+ @pulumi.getter
2236
+ def sign(self) -> Optional[_builtins.str]:
2237
+ """
2238
+ The digital signature of a legitimate app package.
2239
+ """
2240
+ return pulumi.get(self, "sign")
2241
+
2242
+
2243
+ @pulumi.output_type
2244
+ class WafRuleConfigAppSdk(dict):
2245
+ @staticmethod
2246
+ def __key_warning(key: str):
2247
+ suggest = None
2248
+ if key == "customSign":
2249
+ suggest = "custom_sign"
2250
+ elif key == "customSignStatus":
2251
+ suggest = "custom_sign_status"
2252
+ elif key == "featureAbnormals":
2253
+ suggest = "feature_abnormals"
2254
+
2255
+ if suggest:
2256
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigAppSdk. Access the value via the '{suggest}' property getter instead.")
2257
+
2258
+ def __getitem__(self, key: str) -> Any:
2259
+ WafRuleConfigAppSdk.__key_warning(key)
2260
+ return super().__getitem__(key)
2261
+
2262
+ def get(self, key: str, default = None) -> Any:
2263
+ WafRuleConfigAppSdk.__key_warning(key)
2264
+ return super().get(key, default)
2265
+
2266
+ def __init__(__self__, *,
2267
+ custom_sign: Optional['outputs.WafRuleConfigAppSdkCustomSign'] = None,
2268
+ custom_sign_status: Optional[_builtins.str] = None,
2269
+ feature_abnormals: Optional[Sequence[_builtins.str]] = None):
2270
+ """
2271
+ :param 'WafRuleConfigAppSdkCustomSignArgs' custom_sign: Custom fields used for mobile app signature validation. See `custom_sign` below.
2272
+ :param _builtins.str custom_sign_status: Indicates whether the custom signature field validation is enabled.
2273
+ :param Sequence[_builtins.str] feature_abnormals: Detected abnormal behaviors of the application.
2274
+ """
2275
+ if custom_sign is not None:
2276
+ pulumi.set(__self__, "custom_sign", custom_sign)
2277
+ if custom_sign_status is not None:
2278
+ pulumi.set(__self__, "custom_sign_status", custom_sign_status)
2279
+ if feature_abnormals is not None:
2280
+ pulumi.set(__self__, "feature_abnormals", feature_abnormals)
2281
+
2282
+ @_builtins.property
2283
+ @pulumi.getter(name="customSign")
2284
+ def custom_sign(self) -> Optional['outputs.WafRuleConfigAppSdkCustomSign']:
2285
+ """
2286
+ Custom fields used for mobile app signature validation. See `custom_sign` below.
2287
+ """
2288
+ return pulumi.get(self, "custom_sign")
2289
+
2290
+ @_builtins.property
2291
+ @pulumi.getter(name="customSignStatus")
2292
+ def custom_sign_status(self) -> Optional[_builtins.str]:
2293
+ """
2294
+ Indicates whether the custom signature field validation is enabled.
2295
+ """
2296
+ return pulumi.get(self, "custom_sign_status")
2297
+
2298
+ @_builtins.property
2299
+ @pulumi.getter(name="featureAbnormals")
2300
+ def feature_abnormals(self) -> Optional[Sequence[_builtins.str]]:
2301
+ """
2302
+ Detected abnormal behaviors of the application.
2303
+ """
2304
+ return pulumi.get(self, "feature_abnormals")
2305
+
2306
+
2307
+ @pulumi.output_type
2308
+ class WafRuleConfigAppSdkCustomSign(dict):
2309
+ def __init__(__self__, *,
2310
+ key: Optional[_builtins.str] = None,
2311
+ value: Optional[_builtins.str] = None):
2312
+ """
2313
+ :param _builtins.str key: The name of the custom signature field used for validation.
2314
+ :param _builtins.str value: The value of the custom signature field used for validation.
2315
+ """
2316
+ if key is not None:
2317
+ pulumi.set(__self__, "key", key)
2318
+ if value is not None:
2319
+ pulumi.set(__self__, "value", value)
2320
+
2321
+ @_builtins.property
2322
+ @pulumi.getter
2323
+ def key(self) -> Optional[_builtins.str]:
2324
+ """
2325
+ The name of the custom signature field used for validation.
2326
+ """
2327
+ return pulumi.get(self, "key")
2328
+
2329
+ @_builtins.property
2330
+ @pulumi.getter
2331
+ def value(self) -> Optional[_builtins.str]:
2332
+ """
2333
+ The value of the custom signature field used for validation.
2334
+ """
2335
+ return pulumi.get(self, "value")
2336
+
2337
+
2338
+ @pulumi.output_type
2339
+ class WafRuleConfigManagedRuleset(dict):
2340
+ @staticmethod
2341
+ def __key_warning(key: str):
2342
+ suggest = None
2343
+ if key == "attackType":
2344
+ suggest = "attack_type"
2345
+ elif key == "managedRules":
2346
+ suggest = "managed_rules"
2347
+ elif key == "numberEnabled":
2348
+ suggest = "number_enabled"
2349
+ elif key == "numberTotal":
2350
+ suggest = "number_total"
2351
+ elif key == "protectionLevel":
2352
+ suggest = "protection_level"
2353
+
2354
+ if suggest:
2355
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigManagedRuleset. Access the value via the '{suggest}' property getter instead.")
2356
+
2357
+ def __getitem__(self, key: str) -> Any:
2358
+ WafRuleConfigManagedRuleset.__key_warning(key)
2359
+ return super().__getitem__(key)
2360
+
2361
+ def get(self, key: str, default = None) -> Any:
2362
+ WafRuleConfigManagedRuleset.__key_warning(key)
2363
+ return super().get(key, default)
2364
+
2365
+ def __init__(__self__, *,
2366
+ action: Optional[_builtins.str] = None,
2367
+ attack_type: Optional[_builtins.int] = None,
2368
+ managed_rules: Optional[Sequence['outputs.WafRuleConfigManagedRulesetManagedRule']] = None,
2369
+ number_enabled: Optional[_builtins.int] = None,
2370
+ number_total: Optional[_builtins.int] = None,
2371
+ protection_level: Optional[_builtins.int] = None):
2372
+ """
2373
+ :param _builtins.int attack_type: The primary attack type targeted by this ruleset.
2374
+ :param Sequence['WafRuleConfigManagedRulesetManagedRuleArgs'] managed_rules: The individual managed rules included in this ruleset. See `managed_rules` below.
2375
+ :param _builtins.int number_enabled: Number of rules currently enabled.
2376
+ :param _builtins.int number_total: Total number of rules in this ruleset.
2377
+ :param _builtins.int protection_level: The protection strength level assigned to this ruleset.
2378
+ """
2379
+ if action is not None:
2380
+ pulumi.set(__self__, "action", action)
2381
+ if attack_type is not None:
2382
+ pulumi.set(__self__, "attack_type", attack_type)
2383
+ if managed_rules is not None:
2384
+ pulumi.set(__self__, "managed_rules", managed_rules)
2385
+ if number_enabled is not None:
2386
+ pulumi.set(__self__, "number_enabled", number_enabled)
2387
+ if number_total is not None:
2388
+ pulumi.set(__self__, "number_total", number_total)
2389
+ if protection_level is not None:
2390
+ pulumi.set(__self__, "protection_level", protection_level)
2391
+
2392
+ @_builtins.property
2393
+ @pulumi.getter
2394
+ def action(self) -> Optional[_builtins.str]:
2395
+ return pulumi.get(self, "action")
2396
+
2397
+ @_builtins.property
2398
+ @pulumi.getter(name="attackType")
2399
+ def attack_type(self) -> Optional[_builtins.int]:
2400
+ """
2401
+ The primary attack type targeted by this ruleset.
2402
+ """
2403
+ return pulumi.get(self, "attack_type")
2404
+
2405
+ @_builtins.property
2406
+ @pulumi.getter(name="managedRules")
2407
+ def managed_rules(self) -> Optional[Sequence['outputs.WafRuleConfigManagedRulesetManagedRule']]:
2408
+ """
2409
+ The individual managed rules included in this ruleset. See `managed_rules` below.
2410
+ """
2411
+ return pulumi.get(self, "managed_rules")
2412
+
2413
+ @_builtins.property
2414
+ @pulumi.getter(name="numberEnabled")
2415
+ def number_enabled(self) -> Optional[_builtins.int]:
2416
+ """
2417
+ Number of rules currently enabled.
2418
+ """
2419
+ return pulumi.get(self, "number_enabled")
2420
+
2421
+ @_builtins.property
2422
+ @pulumi.getter(name="numberTotal")
2423
+ def number_total(self) -> Optional[_builtins.int]:
2424
+ """
2425
+ Total number of rules in this ruleset.
2426
+ """
2427
+ return pulumi.get(self, "number_total")
2428
+
2429
+ @_builtins.property
2430
+ @pulumi.getter(name="protectionLevel")
2431
+ def protection_level(self) -> Optional[_builtins.int]:
2432
+ """
2433
+ The protection strength level assigned to this ruleset.
2434
+ """
2435
+ return pulumi.get(self, "protection_level")
2436
+
2437
+
2438
+ @pulumi.output_type
2439
+ class WafRuleConfigManagedRulesetManagedRule(dict):
2440
+ def __init__(__self__, *,
2441
+ action: Optional[_builtins.str] = None,
2442
+ id: Optional[_builtins.int] = None,
2443
+ status: Optional[_builtins.str] = None):
2444
+ """
2445
+ :param _builtins.int id: The internal unique ID of the WAF rule.
2446
+ :param _builtins.str status: The status of the managed rule: whether it is enabled or disabled.
2447
+ """
2448
+ if action is not None:
2449
+ pulumi.set(__self__, "action", action)
2450
+ if id is not None:
2451
+ pulumi.set(__self__, "id", id)
2452
+ if status is not None:
2453
+ pulumi.set(__self__, "status", status)
2454
+
2455
+ @_builtins.property
2456
+ @pulumi.getter
2457
+ def action(self) -> Optional[_builtins.str]:
2458
+ return pulumi.get(self, "action")
2459
+
2460
+ @_builtins.property
2461
+ @pulumi.getter
2462
+ def id(self) -> Optional[_builtins.int]:
2463
+ """
2464
+ The internal unique ID of the WAF rule.
2465
+ """
2466
+ return pulumi.get(self, "id")
2467
+
2468
+ @_builtins.property
2469
+ @pulumi.getter
2470
+ def status(self) -> Optional[_builtins.str]:
2471
+ """
2472
+ The status of the managed rule: whether it is enabled or disabled.
2473
+ """
2474
+ return pulumi.get(self, "status")
2475
+
2476
+
2477
+ @pulumi.output_type
2478
+ class WafRuleConfigRateLimit(dict):
2479
+ @staticmethod
2480
+ def __key_warning(key: str):
2481
+ suggest = None
2482
+ if key == "onHit":
2483
+ suggest = "on_hit"
2484
+
2485
+ if suggest:
2486
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigRateLimit. Access the value via the '{suggest}' property getter instead.")
2487
+
2488
+ def __getitem__(self, key: str) -> Any:
2489
+ WafRuleConfigRateLimit.__key_warning(key)
2490
+ return super().__getitem__(key)
2491
+
2492
+ def get(self, key: str, default = None) -> Any:
2493
+ WafRuleConfigRateLimit.__key_warning(key)
2494
+ return super().get(key, default)
2495
+
2496
+ def __init__(__self__, *,
2497
+ characteristics: Optional['outputs.WafRuleConfigRateLimitCharacteristics'] = None,
2498
+ interval: Optional[_builtins.int] = None,
2499
+ on_hit: Optional[_builtins.bool] = None,
2500
+ threshold: Optional['outputs.WafRuleConfigRateLimitThreshold'] = None,
2501
+ ttl: Optional[_builtins.int] = None):
2502
+ """
2503
+ :param 'WafRuleConfigRateLimitCharacteristicsArgs' characteristics: The statistical dimensions to which the rate limiting rule applies. See `characteristics` below.
2504
+ :param _builtins.int interval: The statistical interval.
2505
+ :param _builtins.bool on_hit: Indicates whether the rule applies to requests that hit the cache.
2506
+ :param 'WafRuleConfigRateLimitThresholdArgs' threshold: Threshold settings for the rate limiting rule. See `threshold` below.
2507
+ :param _builtins.int ttl: The timeout period for creating the stack used in rate limiting.
2508
+ """
2509
+ if characteristics is not None:
2510
+ pulumi.set(__self__, "characteristics", characteristics)
2511
+ if interval is not None:
2512
+ pulumi.set(__self__, "interval", interval)
2513
+ if on_hit is not None:
2514
+ pulumi.set(__self__, "on_hit", on_hit)
2515
+ if threshold is not None:
2516
+ pulumi.set(__self__, "threshold", threshold)
2517
+ if ttl is not None:
2518
+ pulumi.set(__self__, "ttl", ttl)
2519
+
2520
+ @_builtins.property
2521
+ @pulumi.getter
2522
+ def characteristics(self) -> Optional['outputs.WafRuleConfigRateLimitCharacteristics']:
2523
+ """
2524
+ The statistical dimensions to which the rate limiting rule applies. See `characteristics` below.
2525
+ """
2526
+ return pulumi.get(self, "characteristics")
2527
+
2528
+ @_builtins.property
2529
+ @pulumi.getter
2530
+ def interval(self) -> Optional[_builtins.int]:
2531
+ """
2532
+ The statistical interval.
2533
+ """
2534
+ return pulumi.get(self, "interval")
2535
+
2536
+ @_builtins.property
2537
+ @pulumi.getter(name="onHit")
2538
+ def on_hit(self) -> Optional[_builtins.bool]:
2539
+ """
2540
+ Indicates whether the rule applies to requests that hit the cache.
2541
+ """
2542
+ return pulumi.get(self, "on_hit")
2543
+
2544
+ @_builtins.property
2545
+ @pulumi.getter
2546
+ def threshold(self) -> Optional['outputs.WafRuleConfigRateLimitThreshold']:
2547
+ """
2548
+ Threshold settings for the rate limiting rule. See `threshold` below.
2549
+ """
2550
+ return pulumi.get(self, "threshold")
2551
+
2552
+ @_builtins.property
2553
+ @pulumi.getter
2554
+ def ttl(self) -> Optional[_builtins.int]:
2555
+ """
2556
+ The timeout period for creating the stack used in rate limiting.
2557
+ """
2558
+ return pulumi.get(self, "ttl")
2559
+
2560
+
2561
+ @pulumi.output_type
2562
+ class WafRuleConfigRateLimitCharacteristics(dict):
2563
+ def __init__(__self__, *,
2564
+ criterias: Optional[Sequence['outputs.WafRuleConfigRateLimitCharacteristicsCriteria']] = None,
2565
+ logic: Optional[_builtins.str] = None):
2566
+ if criterias is not None:
2567
+ pulumi.set(__self__, "criterias", criterias)
2568
+ if logic is not None:
2569
+ pulumi.set(__self__, "logic", logic)
2570
+
2571
+ @_builtins.property
2572
+ @pulumi.getter
2573
+ def criterias(self) -> Optional[Sequence['outputs.WafRuleConfigRateLimitCharacteristicsCriteria']]:
2574
+ return pulumi.get(self, "criterias")
2575
+
2576
+ @_builtins.property
2577
+ @pulumi.getter
2578
+ def logic(self) -> Optional[_builtins.str]:
2579
+ return pulumi.get(self, "logic")
2580
+
2581
+
2582
+ @pulumi.output_type
2583
+ class WafRuleConfigRateLimitCharacteristicsCriteria(dict):
2584
+ @staticmethod
2585
+ def __key_warning(key: str):
2586
+ suggest = None
2587
+ if key == "matchType":
2588
+ suggest = "match_type"
2589
+
2590
+ if suggest:
2591
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigRateLimitCharacteristicsCriteria. Access the value via the '{suggest}' property getter instead.")
2592
+
2593
+ def __getitem__(self, key: str) -> Any:
2594
+ WafRuleConfigRateLimitCharacteristicsCriteria.__key_warning(key)
2595
+ return super().__getitem__(key)
2596
+
2597
+ def get(self, key: str, default = None) -> Any:
2598
+ WafRuleConfigRateLimitCharacteristicsCriteria.__key_warning(key)
2599
+ return super().get(key, default)
2600
+
2601
+ def __init__(__self__, *,
2602
+ criterias: Optional[Sequence['outputs.WafRuleConfigRateLimitCharacteristicsCriteriaCriteria']] = None,
2603
+ logic: Optional[_builtins.str] = None,
2604
+ match_type: Optional[_builtins.str] = None):
2605
+ if criterias is not None:
2606
+ pulumi.set(__self__, "criterias", criterias)
2607
+ if logic is not None:
2608
+ pulumi.set(__self__, "logic", logic)
2609
+ if match_type is not None:
2610
+ pulumi.set(__self__, "match_type", match_type)
2611
+
2612
+ @_builtins.property
2613
+ @pulumi.getter
2614
+ def criterias(self) -> Optional[Sequence['outputs.WafRuleConfigRateLimitCharacteristicsCriteriaCriteria']]:
2615
+ return pulumi.get(self, "criterias")
2616
+
2617
+ @_builtins.property
2618
+ @pulumi.getter
2619
+ def logic(self) -> Optional[_builtins.str]:
2620
+ return pulumi.get(self, "logic")
2621
+
2622
+ @_builtins.property
2623
+ @pulumi.getter(name="matchType")
2624
+ def match_type(self) -> Optional[_builtins.str]:
2625
+ return pulumi.get(self, "match_type")
2626
+
2627
+
2628
+ @pulumi.output_type
2629
+ class WafRuleConfigRateLimitCharacteristicsCriteriaCriteria(dict):
2630
+ @staticmethod
2631
+ def __key_warning(key: str):
2632
+ suggest = None
2633
+ if key == "matchType":
2634
+ suggest = "match_type"
2635
+
2636
+ if suggest:
2637
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigRateLimitCharacteristicsCriteriaCriteria. Access the value via the '{suggest}' property getter instead.")
2638
+
2639
+ def __getitem__(self, key: str) -> Any:
2640
+ WafRuleConfigRateLimitCharacteristicsCriteriaCriteria.__key_warning(key)
2641
+ return super().__getitem__(key)
2642
+
2643
+ def get(self, key: str, default = None) -> Any:
2644
+ WafRuleConfigRateLimitCharacteristicsCriteriaCriteria.__key_warning(key)
2645
+ return super().get(key, default)
2646
+
2647
+ def __init__(__self__, *,
2648
+ criterias: Optional[Sequence['outputs.WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria']] = None,
2649
+ logic: Optional[_builtins.str] = None,
2650
+ match_type: Optional[_builtins.str] = None):
2651
+ if criterias is not None:
2652
+ pulumi.set(__self__, "criterias", criterias)
2653
+ if logic is not None:
2654
+ pulumi.set(__self__, "logic", logic)
2655
+ if match_type is not None:
2656
+ pulumi.set(__self__, "match_type", match_type)
2657
+
2658
+ @_builtins.property
2659
+ @pulumi.getter
2660
+ def criterias(self) -> Optional[Sequence['outputs.WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria']]:
2661
+ return pulumi.get(self, "criterias")
2662
+
2663
+ @_builtins.property
2664
+ @pulumi.getter
2665
+ def logic(self) -> Optional[_builtins.str]:
2666
+ return pulumi.get(self, "logic")
2667
+
2668
+ @_builtins.property
2669
+ @pulumi.getter(name="matchType")
2670
+ def match_type(self) -> Optional[_builtins.str]:
2671
+ return pulumi.get(self, "match_type")
2672
+
2673
+
2674
+ @pulumi.output_type
2675
+ class WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria(dict):
2676
+ @staticmethod
2677
+ def __key_warning(key: str):
2678
+ suggest = None
2679
+ if key == "matchType":
2680
+ suggest = "match_type"
2681
+
2682
+ if suggest:
2683
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria. Access the value via the '{suggest}' property getter instead.")
2684
+
2685
+ def __getitem__(self, key: str) -> Any:
2686
+ WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria.__key_warning(key)
2687
+ return super().__getitem__(key)
2688
+
2689
+ def get(self, key: str, default = None) -> Any:
2690
+ WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria.__key_warning(key)
2691
+ return super().get(key, default)
2692
+
2693
+ def __init__(__self__, *,
2694
+ match_type: Optional[_builtins.str] = None):
2695
+ if match_type is not None:
2696
+ pulumi.set(__self__, "match_type", match_type)
2697
+
2698
+ @_builtins.property
2699
+ @pulumi.getter(name="matchType")
2700
+ def match_type(self) -> Optional[_builtins.str]:
2701
+ return pulumi.get(self, "match_type")
2702
+
2703
+
2704
+ @pulumi.output_type
2705
+ class WafRuleConfigRateLimitThreshold(dict):
2706
+ @staticmethod
2707
+ def __key_warning(key: str):
2708
+ suggest = None
2709
+ if key == "distinctManagedRules":
2710
+ suggest = "distinct_managed_rules"
2711
+ elif key == "managedRulesBlocked":
2712
+ suggest = "managed_rules_blocked"
2713
+ elif key == "responseStatus":
2714
+ suggest = "response_status"
2715
+
2716
+ if suggest:
2717
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigRateLimitThreshold. Access the value via the '{suggest}' property getter instead.")
2718
+
2719
+ def __getitem__(self, key: str) -> Any:
2720
+ WafRuleConfigRateLimitThreshold.__key_warning(key)
2721
+ return super().__getitem__(key)
2722
+
2723
+ def get(self, key: str, default = None) -> Any:
2724
+ WafRuleConfigRateLimitThreshold.__key_warning(key)
2725
+ return super().get(key, default)
2726
+
2727
+ def __init__(__self__, *,
2728
+ distinct_managed_rules: Optional[_builtins.int] = None,
2729
+ managed_rules_blocked: Optional[_builtins.int] = None,
2730
+ request: Optional[_builtins.int] = None,
2731
+ response_status: Optional['outputs.WafRuleConfigRateLimitThresholdResponseStatus'] = None,
2732
+ traffic: Optional[_builtins.str] = None):
2733
+ """
2734
+ :param _builtins.int distinct_managed_rules: The maximum number of distinct managed rules that can be triggered.
2735
+ :param _builtins.int managed_rules_blocked: The maximum number of times that managed rules can be triggered.
2736
+ :param _builtins.int request: The maximum number of allowed requests within a time interval.
2737
+ :param 'WafRuleConfigRateLimitThresholdResponseStatusArgs' response_status: Limits on the frequency of returning specific HTTP status codes. See `response_status` below.
2738
+ :param _builtins.str traffic: The maximum allowed traffic within a time interval (deprecated).
2739
+ """
2740
+ if distinct_managed_rules is not None:
2741
+ pulumi.set(__self__, "distinct_managed_rules", distinct_managed_rules)
2742
+ if managed_rules_blocked is not None:
2743
+ pulumi.set(__self__, "managed_rules_blocked", managed_rules_blocked)
2744
+ if request is not None:
2745
+ pulumi.set(__self__, "request", request)
2746
+ if response_status is not None:
2747
+ pulumi.set(__self__, "response_status", response_status)
2748
+ if traffic is not None:
2749
+ pulumi.set(__self__, "traffic", traffic)
2750
+
2751
+ @_builtins.property
2752
+ @pulumi.getter(name="distinctManagedRules")
2753
+ def distinct_managed_rules(self) -> Optional[_builtins.int]:
2754
+ """
2755
+ The maximum number of distinct managed rules that can be triggered.
2756
+ """
2757
+ return pulumi.get(self, "distinct_managed_rules")
2758
+
2759
+ @_builtins.property
2760
+ @pulumi.getter(name="managedRulesBlocked")
2761
+ def managed_rules_blocked(self) -> Optional[_builtins.int]:
2762
+ """
2763
+ The maximum number of times that managed rules can be triggered.
2764
+ """
2765
+ return pulumi.get(self, "managed_rules_blocked")
2766
+
2767
+ @_builtins.property
2768
+ @pulumi.getter
2769
+ def request(self) -> Optional[_builtins.int]:
2770
+ """
2771
+ The maximum number of allowed requests within a time interval.
2772
+ """
2773
+ return pulumi.get(self, "request")
2774
+
2775
+ @_builtins.property
2776
+ @pulumi.getter(name="responseStatus")
2777
+ def response_status(self) -> Optional['outputs.WafRuleConfigRateLimitThresholdResponseStatus']:
2778
+ """
2779
+ Limits on the frequency of returning specific HTTP status codes. See `response_status` below.
2780
+ """
2781
+ return pulumi.get(self, "response_status")
2782
+
2783
+ @_builtins.property
2784
+ @pulumi.getter
2785
+ def traffic(self) -> Optional[_builtins.str]:
2786
+ """
2787
+ The maximum allowed traffic within a time interval (deprecated).
2788
+ """
2789
+ return pulumi.get(self, "traffic")
2790
+
2791
+
2792
+ @pulumi.output_type
2793
+ class WafRuleConfigRateLimitThresholdResponseStatus(dict):
2794
+ def __init__(__self__, *,
2795
+ code: Optional[_builtins.int] = None,
2796
+ count: Optional[_builtins.int] = None,
2797
+ ratio: Optional[_builtins.int] = None):
2798
+ """
2799
+ :param _builtins.int count: The maximum number of times the specified status code can be returned.
2800
+ :param _builtins.int ratio: The upper limit of the percentage of occurrences of the specified status code among all responses.
2801
+ """
2802
+ if code is not None:
2803
+ pulumi.set(__self__, "code", code)
2804
+ if count is not None:
2805
+ pulumi.set(__self__, "count", count)
2806
+ if ratio is not None:
2807
+ pulumi.set(__self__, "ratio", ratio)
2808
+
2809
+ @_builtins.property
2810
+ @pulumi.getter
2811
+ def code(self) -> Optional[_builtins.int]:
2812
+ return pulumi.get(self, "code")
2813
+
2814
+ @_builtins.property
2815
+ @pulumi.getter
2816
+ def count(self) -> Optional[_builtins.int]:
2817
+ """
2818
+ The maximum number of times the specified status code can be returned.
2819
+ """
2820
+ return pulumi.get(self, "count")
2821
+
2822
+ @_builtins.property
2823
+ @pulumi.getter
2824
+ def ratio(self) -> Optional[_builtins.int]:
2825
+ """
2826
+ The upper limit of the percentage of occurrences of the specified status code among all responses.
2827
+ """
2828
+ return pulumi.get(self, "ratio")
2829
+
2830
+
2831
+ @pulumi.output_type
2832
+ class WafRuleConfigSecurityLevel(dict):
2833
+ def __init__(__self__, *,
2834
+ value: Optional[_builtins.str] = None):
2835
+ """
2836
+ :param _builtins.str value: The value of the custom signature field used for validation.
2837
+ """
2838
+ if value is not None:
2839
+ pulumi.set(__self__, "value", value)
2840
+
2841
+ @_builtins.property
2842
+ @pulumi.getter
2843
+ def value(self) -> Optional[_builtins.str]:
2844
+ """
2845
+ The value of the custom signature field used for validation.
2846
+ """
2847
+ return pulumi.get(self, "value")
2848
+
2849
+
2850
+ @pulumi.output_type
2851
+ class WafRuleConfigTimer(dict):
2852
+ @staticmethod
2853
+ def __key_warning(key: str):
2854
+ suggest = None
2855
+ if key == "weeklyPeriods":
2856
+ suggest = "weekly_periods"
2857
+
2858
+ if suggest:
2859
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigTimer. Access the value via the '{suggest}' property getter instead.")
2860
+
2861
+ def __getitem__(self, key: str) -> Any:
2862
+ WafRuleConfigTimer.__key_warning(key)
2863
+ return super().__getitem__(key)
2864
+
2865
+ def get(self, key: str, default = None) -> Any:
2866
+ WafRuleConfigTimer.__key_warning(key)
2867
+ return super().get(key, default)
2868
+
2869
+ def __init__(__self__, *,
2870
+ periods: Optional[Sequence['outputs.WafRuleConfigTimerPeriod']] = None,
2871
+ scopes: Optional[_builtins.str] = None,
2872
+ weekly_periods: Optional[Sequence['outputs.WafRuleConfigTimerWeeklyPeriod']] = None,
2873
+ zone: Optional[_builtins.int] = None):
2874
+ """
2875
+ :param _builtins.str scopes: Timing type:
2876
+ :param Sequence['WafRuleConfigTimerWeeklyPeriodArgs'] weekly_periods: Weekly recurring time schedules. See `weekly_periods` below.
2877
+ :param _builtins.int zone: The time zone. If it is not specified, the default value is UTC +00:00. Example: 8 means East Zone 8,-8 means West Zone 8 Range:-12 -+14
2878
+ """
2879
+ if periods is not None:
2880
+ pulumi.set(__self__, "periods", periods)
2881
+ if scopes is not None:
2882
+ pulumi.set(__self__, "scopes", scopes)
2883
+ if weekly_periods is not None:
2884
+ pulumi.set(__self__, "weekly_periods", weekly_periods)
2885
+ if zone is not None:
2886
+ pulumi.set(__self__, "zone", zone)
2887
+
2888
+ @_builtins.property
2889
+ @pulumi.getter
2890
+ def periods(self) -> Optional[Sequence['outputs.WafRuleConfigTimerPeriod']]:
2891
+ return pulumi.get(self, "periods")
2892
+
2893
+ @_builtins.property
2894
+ @pulumi.getter
2895
+ def scopes(self) -> Optional[_builtins.str]:
2896
+ """
2897
+ Timing type:
2898
+ """
2899
+ return pulumi.get(self, "scopes")
2900
+
2901
+ @_builtins.property
2902
+ @pulumi.getter(name="weeklyPeriods")
2903
+ def weekly_periods(self) -> Optional[Sequence['outputs.WafRuleConfigTimerWeeklyPeriod']]:
2904
+ """
2905
+ Weekly recurring time schedules. See `weekly_periods` below.
2906
+ """
2907
+ return pulumi.get(self, "weekly_periods")
2908
+
2909
+ @_builtins.property
2910
+ @pulumi.getter
2911
+ def zone(self) -> Optional[_builtins.int]:
2912
+ """
2913
+ The time zone. If it is not specified, the default value is UTC +00:00. Example: 8 means East Zone 8,-8 means West Zone 8 Range:-12 -+14
2914
+ """
2915
+ return pulumi.get(self, "zone")
2916
+
2917
+
2918
+ @pulumi.output_type
2919
+ class WafRuleConfigTimerPeriod(dict):
2920
+ def __init__(__self__, *,
2921
+ end: Optional[_builtins.str] = None,
2922
+ start: Optional[_builtins.str] = None):
2923
+ """
2924
+ :param _builtins.str end: End time in HH:mm:ss format
2925
+ :param _builtins.str start: Start time in HH:mm:ss format
2926
+ """
2927
+ if end is not None:
2928
+ pulumi.set(__self__, "end", end)
2929
+ if start is not None:
2930
+ pulumi.set(__self__, "start", start)
2931
+
2932
+ @_builtins.property
2933
+ @pulumi.getter
2934
+ def end(self) -> Optional[_builtins.str]:
2935
+ """
2936
+ End time in HH:mm:ss format
2937
+ """
2938
+ return pulumi.get(self, "end")
2939
+
2940
+ @_builtins.property
2941
+ @pulumi.getter
2942
+ def start(self) -> Optional[_builtins.str]:
2943
+ """
2944
+ Start time in HH:mm:ss format
2945
+ """
2946
+ return pulumi.get(self, "start")
2947
+
2948
+
2949
+ @pulumi.output_type
2950
+ class WafRuleConfigTimerWeeklyPeriod(dict):
2951
+ @staticmethod
2952
+ def __key_warning(key: str):
2953
+ suggest = None
2954
+ if key == "dailyPeriods":
2955
+ suggest = "daily_periods"
2956
+
2957
+ if suggest:
2958
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleConfigTimerWeeklyPeriod. Access the value via the '{suggest}' property getter instead.")
2959
+
2960
+ def __getitem__(self, key: str) -> Any:
2961
+ WafRuleConfigTimerWeeklyPeriod.__key_warning(key)
2962
+ return super().__getitem__(key)
2963
+
2964
+ def get(self, key: str, default = None) -> Any:
2965
+ WafRuleConfigTimerWeeklyPeriod.__key_warning(key)
2966
+ return super().get(key, default)
2967
+
2968
+ def __init__(__self__, *,
2969
+ daily_periods: Optional[Sequence['outputs.WafRuleConfigTimerWeeklyPeriodDailyPeriod']] = None,
2970
+ days: Optional[_builtins.str] = None):
2971
+ """
2972
+ :param Sequence['WafRuleConfigTimerWeeklyPeriodDailyPeriodArgs'] daily_periods: Daily effective time periods within a weekly schedule. See `daily_periods` below.
2973
+ :param _builtins.str days: Cycle, multiple use comma separated, 1-7 respectively represent Monday-Sunday. Example: Monday, Wednesday value is "1,3"
2974
+ """
2975
+ if daily_periods is not None:
2976
+ pulumi.set(__self__, "daily_periods", daily_periods)
2977
+ if days is not None:
2978
+ pulumi.set(__self__, "days", days)
2979
+
2980
+ @_builtins.property
2981
+ @pulumi.getter(name="dailyPeriods")
2982
+ def daily_periods(self) -> Optional[Sequence['outputs.WafRuleConfigTimerWeeklyPeriodDailyPeriod']]:
2983
+ """
2984
+ Daily effective time periods within a weekly schedule. See `daily_periods` below.
2985
+ """
2986
+ return pulumi.get(self, "daily_periods")
2987
+
2988
+ @_builtins.property
2989
+ @pulumi.getter
2990
+ def days(self) -> Optional[_builtins.str]:
2991
+ """
2992
+ Cycle, multiple use comma separated, 1-7 respectively represent Monday-Sunday. Example: Monday, Wednesday value is "1,3"
2993
+ """
2994
+ return pulumi.get(self, "days")
2995
+
2996
+
2997
+ @pulumi.output_type
2998
+ class WafRuleConfigTimerWeeklyPeriodDailyPeriod(dict):
2999
+ def __init__(__self__, *,
3000
+ end: Optional[_builtins.str] = None,
3001
+ start: Optional[_builtins.str] = None):
3002
+ """
3003
+ :param _builtins.str end: End time in HH:mm:ss format
3004
+ :param _builtins.str start: Start time in HH:mm:ss format
3005
+ """
3006
+ if end is not None:
3007
+ pulumi.set(__self__, "end", end)
3008
+ if start is not None:
3009
+ pulumi.set(__self__, "start", start)
3010
+
3011
+ @_builtins.property
3012
+ @pulumi.getter
3013
+ def end(self) -> Optional[_builtins.str]:
3014
+ """
3015
+ End time in HH:mm:ss format
3016
+ """
3017
+ return pulumi.get(self, "end")
3018
+
3019
+ @_builtins.property
3020
+ @pulumi.getter
3021
+ def start(self) -> Optional[_builtins.str]:
3022
+ """
3023
+ Start time in HH:mm:ss format
3024
+ """
3025
+ return pulumi.get(self, "start")
3026
+
3027
+
3028
+ @pulumi.output_type
3029
+ class WafRuleShared(dict):
3030
+ @staticmethod
3031
+ def __key_warning(key: str):
3032
+ suggest = None
3033
+ if key == "crossSiteId":
3034
+ suggest = "cross_site_id"
3035
+
3036
+ if suggest:
3037
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleShared. Access the value via the '{suggest}' property getter instead.")
3038
+
3039
+ def __getitem__(self, key: str) -> Any:
3040
+ WafRuleShared.__key_warning(key)
3041
+ return super().__getitem__(key)
3042
+
3043
+ def get(self, key: str, default = None) -> Any:
3044
+ WafRuleShared.__key_warning(key)
3045
+ return super().get(key, default)
3046
+
3047
+ def __init__(__self__, *,
3048
+ action: Optional[_builtins.str] = None,
3049
+ actions: Optional['outputs.WafRuleSharedActions'] = None,
3050
+ cross_site_id: Optional[_builtins.int] = None,
3051
+ expression: Optional[_builtins.str] = None,
3052
+ match: Optional['outputs.WafRuleSharedMatch'] = None,
3053
+ mode: Optional[_builtins.str] = None,
3054
+ name: Optional[_builtins.str] = None,
3055
+ target: Optional[_builtins.str] = None):
3056
+ """
3057
+ :param _builtins.str action: The default action executed under shared configuration.
3058
+ :param 'WafRuleSharedActionsArgs' actions: Extended action configurations under shared settings. See `actions` below.
3059
+ :param _builtins.int cross_site_id: Specify the cross-domain site ID.
3060
+ :param _builtins.str expression: The match expression used in shared configuration.
3061
+ :param 'WafRuleSharedMatchArgs' match: Configuration of the request matching logic engine. See `match` below.
3062
+ :param _builtins.str mode: The integration mode of the Web SDK:
3063
+ :param _builtins.str name: The display name of the ruleset.
3064
+ :param _builtins.str target: The target type protected by this rule: web or app.
3065
+ """
3066
+ if action is not None:
3067
+ pulumi.set(__self__, "action", action)
3068
+ if actions is not None:
3069
+ pulumi.set(__self__, "actions", actions)
3070
+ if cross_site_id is not None:
3071
+ pulumi.set(__self__, "cross_site_id", cross_site_id)
3072
+ if expression is not None:
3073
+ pulumi.set(__self__, "expression", expression)
3074
+ if match is not None:
3075
+ pulumi.set(__self__, "match", match)
3076
+ if mode is not None:
3077
+ pulumi.set(__self__, "mode", mode)
3078
+ if name is not None:
3079
+ pulumi.set(__self__, "name", name)
3080
+ if target is not None:
3081
+ pulumi.set(__self__, "target", target)
3082
+
3083
+ @_builtins.property
3084
+ @pulumi.getter
3085
+ def action(self) -> Optional[_builtins.str]:
3086
+ """
3087
+ The default action executed under shared configuration.
3088
+ """
3089
+ return pulumi.get(self, "action")
3090
+
3091
+ @_builtins.property
3092
+ @pulumi.getter
3093
+ def actions(self) -> Optional['outputs.WafRuleSharedActions']:
3094
+ """
3095
+ Extended action configurations under shared settings. See `actions` below.
3096
+ """
3097
+ return pulumi.get(self, "actions")
3098
+
3099
+ @_builtins.property
3100
+ @pulumi.getter(name="crossSiteId")
3101
+ def cross_site_id(self) -> Optional[_builtins.int]:
3102
+ """
3103
+ Specify the cross-domain site ID.
3104
+ """
3105
+ return pulumi.get(self, "cross_site_id")
3106
+
3107
+ @_builtins.property
3108
+ @pulumi.getter
3109
+ def expression(self) -> Optional[_builtins.str]:
3110
+ """
3111
+ The match expression used in shared configuration.
3112
+ """
3113
+ return pulumi.get(self, "expression")
3114
+
3115
+ @_builtins.property
3116
+ @pulumi.getter
3117
+ def match(self) -> Optional['outputs.WafRuleSharedMatch']:
3118
+ """
3119
+ Configuration of the request matching logic engine. See `match` below.
3120
+ """
3121
+ return pulumi.get(self, "match")
3122
+
3123
+ @_builtins.property
3124
+ @pulumi.getter
3125
+ def mode(self) -> Optional[_builtins.str]:
3126
+ """
3127
+ The integration mode of the Web SDK:
3128
+ """
3129
+ return pulumi.get(self, "mode")
3130
+
3131
+ @_builtins.property
3132
+ @pulumi.getter
3133
+ def name(self) -> Optional[_builtins.str]:
3134
+ """
3135
+ The display name of the ruleset.
3136
+ """
3137
+ return pulumi.get(self, "name")
3138
+
3139
+ @_builtins.property
3140
+ @pulumi.getter
3141
+ def target(self) -> Optional[_builtins.str]:
3142
+ """
3143
+ The target type protected by this rule: web or app.
3144
+ """
3145
+ return pulumi.get(self, "target")
3146
+
3147
+
3148
+ @pulumi.output_type
3149
+ class WafRuleSharedActions(dict):
3150
+ def __init__(__self__, *,
3151
+ response: Optional['outputs.WafRuleSharedActionsResponse'] = None):
3152
+ if response is not None:
3153
+ pulumi.set(__self__, "response", response)
3154
+
3155
+ @_builtins.property
3156
+ @pulumi.getter
3157
+ def response(self) -> Optional['outputs.WafRuleSharedActionsResponse']:
3158
+ return pulumi.get(self, "response")
3159
+
3160
+
3161
+ @pulumi.output_type
3162
+ class WafRuleSharedActionsResponse(dict):
3163
+ def __init__(__self__, *,
3164
+ code: Optional[_builtins.int] = None,
3165
+ id: Optional[_builtins.int] = None):
3166
+ """
3167
+ :param _builtins.int id: The internal unique ID of the WAF rule.
3168
+ """
3169
+ if code is not None:
3170
+ pulumi.set(__self__, "code", code)
3171
+ if id is not None:
3172
+ pulumi.set(__self__, "id", id)
3173
+
3174
+ @_builtins.property
3175
+ @pulumi.getter
3176
+ def code(self) -> Optional[_builtins.int]:
3177
+ return pulumi.get(self, "code")
3178
+
3179
+ @_builtins.property
3180
+ @pulumi.getter
3181
+ def id(self) -> Optional[_builtins.int]:
3182
+ """
3183
+ The internal unique ID of the WAF rule.
3184
+ """
3185
+ return pulumi.get(self, "id")
3186
+
3187
+
3188
+ @pulumi.output_type
3189
+ class WafRuleSharedMatch(dict):
3190
+ @staticmethod
3191
+ def __key_warning(key: str):
3192
+ suggest = None
3193
+ if key == "matchType":
3194
+ suggest = "match_type"
3195
+
3196
+ if suggest:
3197
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleSharedMatch. Access the value via the '{suggest}' property getter instead.")
3198
+
3199
+ def __getitem__(self, key: str) -> Any:
3200
+ WafRuleSharedMatch.__key_warning(key)
3201
+ return super().__getitem__(key)
3202
+
3203
+ def get(self, key: str, default = None) -> Any:
3204
+ WafRuleSharedMatch.__key_warning(key)
3205
+ return super().get(key, default)
3206
+
3207
+ def __init__(__self__, *,
3208
+ criterias: Optional[Sequence['outputs.WafRuleSharedMatchCriteria']] = None,
3209
+ logic: Optional[_builtins.str] = None,
3210
+ match_type: Optional[_builtins.str] = None):
3211
+ if criterias is not None:
3212
+ pulumi.set(__self__, "criterias", criterias)
3213
+ if logic is not None:
3214
+ pulumi.set(__self__, "logic", logic)
3215
+ if match_type is not None:
3216
+ pulumi.set(__self__, "match_type", match_type)
3217
+
3218
+ @_builtins.property
3219
+ @pulumi.getter
3220
+ def criterias(self) -> Optional[Sequence['outputs.WafRuleSharedMatchCriteria']]:
3221
+ return pulumi.get(self, "criterias")
3222
+
3223
+ @_builtins.property
3224
+ @pulumi.getter
3225
+ def logic(self) -> Optional[_builtins.str]:
3226
+ return pulumi.get(self, "logic")
3227
+
3228
+ @_builtins.property
3229
+ @pulumi.getter(name="matchType")
3230
+ def match_type(self) -> Optional[_builtins.str]:
3231
+ return pulumi.get(self, "match_type")
3232
+
3233
+
3234
+ @pulumi.output_type
3235
+ class WafRuleSharedMatchCriteria(dict):
3236
+ @staticmethod
3237
+ def __key_warning(key: str):
3238
+ suggest = None
3239
+ if key == "matchType":
3240
+ suggest = "match_type"
3241
+
3242
+ if suggest:
3243
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleSharedMatchCriteria. Access the value via the '{suggest}' property getter instead.")
3244
+
3245
+ def __getitem__(self, key: str) -> Any:
3246
+ WafRuleSharedMatchCriteria.__key_warning(key)
3247
+ return super().__getitem__(key)
3248
+
3249
+ def get(self, key: str, default = None) -> Any:
3250
+ WafRuleSharedMatchCriteria.__key_warning(key)
3251
+ return super().get(key, default)
3252
+
3253
+ def __init__(__self__, *,
3254
+ criterias: Optional[Sequence['outputs.WafRuleSharedMatchCriteriaCriteria']] = None,
3255
+ logic: Optional[_builtins.str] = None,
3256
+ match_type: Optional[_builtins.str] = None):
3257
+ if criterias is not None:
3258
+ pulumi.set(__self__, "criterias", criterias)
3259
+ if logic is not None:
3260
+ pulumi.set(__self__, "logic", logic)
3261
+ if match_type is not None:
3262
+ pulumi.set(__self__, "match_type", match_type)
3263
+
3264
+ @_builtins.property
3265
+ @pulumi.getter
3266
+ def criterias(self) -> Optional[Sequence['outputs.WafRuleSharedMatchCriteriaCriteria']]:
3267
+ return pulumi.get(self, "criterias")
3268
+
3269
+ @_builtins.property
3270
+ @pulumi.getter
3271
+ def logic(self) -> Optional[_builtins.str]:
3272
+ return pulumi.get(self, "logic")
3273
+
3274
+ @_builtins.property
3275
+ @pulumi.getter(name="matchType")
3276
+ def match_type(self) -> Optional[_builtins.str]:
3277
+ return pulumi.get(self, "match_type")
3278
+
3279
+
3280
+ @pulumi.output_type
3281
+ class WafRuleSharedMatchCriteriaCriteria(dict):
3282
+ @staticmethod
3283
+ def __key_warning(key: str):
3284
+ suggest = None
3285
+ if key == "matchType":
3286
+ suggest = "match_type"
3287
+
3288
+ if suggest:
3289
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleSharedMatchCriteriaCriteria. Access the value via the '{suggest}' property getter instead.")
3290
+
3291
+ def __getitem__(self, key: str) -> Any:
3292
+ WafRuleSharedMatchCriteriaCriteria.__key_warning(key)
3293
+ return super().__getitem__(key)
3294
+
3295
+ def get(self, key: str, default = None) -> Any:
3296
+ WafRuleSharedMatchCriteriaCriteria.__key_warning(key)
3297
+ return super().get(key, default)
3298
+
3299
+ def __init__(__self__, *,
3300
+ criterias: Optional[Sequence['outputs.WafRuleSharedMatchCriteriaCriteriaCriteria']] = None,
3301
+ logic: Optional[_builtins.str] = None,
3302
+ match_type: Optional[_builtins.str] = None):
3303
+ if criterias is not None:
3304
+ pulumi.set(__self__, "criterias", criterias)
3305
+ if logic is not None:
3306
+ pulumi.set(__self__, "logic", logic)
3307
+ if match_type is not None:
3308
+ pulumi.set(__self__, "match_type", match_type)
3309
+
3310
+ @_builtins.property
3311
+ @pulumi.getter
3312
+ def criterias(self) -> Optional[Sequence['outputs.WafRuleSharedMatchCriteriaCriteriaCriteria']]:
3313
+ return pulumi.get(self, "criterias")
3314
+
3315
+ @_builtins.property
3316
+ @pulumi.getter
3317
+ def logic(self) -> Optional[_builtins.str]:
3318
+ return pulumi.get(self, "logic")
3319
+
3320
+ @_builtins.property
3321
+ @pulumi.getter(name="matchType")
3322
+ def match_type(self) -> Optional[_builtins.str]:
3323
+ return pulumi.get(self, "match_type")
3324
+
3325
+
3326
+ @pulumi.output_type
3327
+ class WafRuleSharedMatchCriteriaCriteriaCriteria(dict):
3328
+ @staticmethod
3329
+ def __key_warning(key: str):
3330
+ suggest = None
3331
+ if key == "matchType":
3332
+ suggest = "match_type"
3333
+
3334
+ if suggest:
3335
+ pulumi.log.warn(f"Key '{key}' not found in WafRuleSharedMatchCriteriaCriteriaCriteria. Access the value via the '{suggest}' property getter instead.")
3336
+
3337
+ def __getitem__(self, key: str) -> Any:
3338
+ WafRuleSharedMatchCriteriaCriteriaCriteria.__key_warning(key)
3339
+ return super().__getitem__(key)
3340
+
3341
+ def get(self, key: str, default = None) -> Any:
3342
+ WafRuleSharedMatchCriteriaCriteriaCriteria.__key_warning(key)
3343
+ return super().get(key, default)
3344
+
3345
+ def __init__(__self__, *,
3346
+ match_type: Optional[_builtins.str] = None):
3347
+ if match_type is not None:
3348
+ pulumi.set(__self__, "match_type", match_type)
3349
+
3350
+ @_builtins.property
3351
+ @pulumi.getter(name="matchType")
3352
+ def match_type(self) -> Optional[_builtins.str]:
3353
+ return pulumi.get(self, "match_type")
3354
+
3355
+
1288
3356
  @pulumi.output_type
1289
3357
  class WaitingRoomHostNameAndPath(dict):
1290
3358
  def __init__(__self__, *,