pulumi-alicloud 3.84.0a1756507491__py3-none-any.whl → 3.85.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 (283) hide show
  1. pulumi_alicloud/__init__.py +172 -0
  2. pulumi_alicloud/_inputs.py +635 -0
  3. pulumi_alicloud/ackone/membership_attachment.py +122 -0
  4. pulumi_alicloud/actiontrail/__init__.py +1 -0
  5. pulumi_alicloud/actiontrail/advanced_query_template.py +311 -0
  6. pulumi_alicloud/actiontrail/trail.py +303 -149
  7. pulumi_alicloud/actiontrail/trail_deprecated.py +131 -23
  8. pulumi_alicloud/alb/a_script.py +170 -0
  9. pulumi_alicloud/alb/get_rules.py +206 -0
  10. pulumi_alicloud/alb/listener.py +240 -0
  11. pulumi_alicloud/alb/listener_acl_attachment.py +180 -0
  12. pulumi_alicloud/alb/listener_additional_certificate_attachment.py +314 -0
  13. pulumi_alicloud/alb/load_balancer_access_log_config_attachment.py +136 -0
  14. pulumi_alicloud/alb/load_balancer_common_bandwidth_package_attachment.py +122 -0
  15. pulumi_alicloud/alb/load_balancer_zone_shifted_attachment.py +124 -0
  16. pulumi_alicloud/alb/rule.py +202 -0
  17. pulumi_alicloud/alikafka/sasl_user.py +2 -2
  18. pulumi_alicloud/amqp/get_instances.py +49 -20
  19. pulumi_alicloud/amqp/outputs.py +20 -20
  20. pulumi_alicloud/amqp/virtual_host.py +46 -20
  21. pulumi_alicloud/apig/environment.py +86 -0
  22. pulumi_alicloud/arms/__init__.py +6 -0
  23. pulumi_alicloud/arms/addon_release.py +174 -0
  24. pulumi_alicloud/arms/env_feature.py +158 -0
  25. pulumi_alicloud/arms/env_pod_monitor.py +206 -0
  26. pulumi_alicloud/arms/env_service_monitor.py +204 -0
  27. pulumi_alicloud/arms/environment.py +150 -0
  28. pulumi_alicloud/arms/get_addon_releases.py +354 -0
  29. pulumi_alicloud/arms/get_env_custom_jobs.py +268 -0
  30. pulumi_alicloud/arms/get_env_features.py +342 -0
  31. pulumi_alicloud/arms/get_env_pod_monitors.py +390 -0
  32. pulumi_alicloud/arms/get_env_service_monitors.py +388 -0
  33. pulumi_alicloud/arms/get_environments.py +282 -0
  34. pulumi_alicloud/arms/outputs.py +620 -0
  35. pulumi_alicloud/arms/prometheus_monitoring.py +190 -0
  36. pulumi_alicloud/cen/transit_router_multicast_domain_member.py +118 -0
  37. pulumi_alicloud/cen/transit_router_multicast_domain_source.py +160 -0
  38. pulumi_alicloud/cfg/aggregate_delivery.py +100 -0
  39. pulumi_alicloud/cfg/delivery_channel.py +54 -0
  40. pulumi_alicloud/cloudauth/face_config.py +48 -0
  41. pulumi_alicloud/cloudfirewall/nat_firewall_control_policy.py +236 -0
  42. pulumi_alicloud/cloudmonitor/__init__.py +1 -0
  43. pulumi_alicloud/cloudmonitor/get_service_metric_alarm_rules.py +333 -0
  44. pulumi_alicloud/cloudmonitor/outputs.py +696 -0
  45. pulumi_alicloud/cloudsso/__init__.py +1 -0
  46. pulumi_alicloud/cloudsso/access_configuration.py +12 -12
  47. pulumi_alicloud/cloudsso/access_configuration_provisioning.py +84 -0
  48. pulumi_alicloud/cloudsso/access_management.py +90 -0
  49. pulumi_alicloud/cloudsso/delegate_account.py +218 -0
  50. pulumi_alicloud/cloudsso/group.py +60 -0
  51. pulumi_alicloud/cloudsso/user.py +66 -0
  52. pulumi_alicloud/cloudsso/user_attachment.py +82 -0
  53. pulumi_alicloud/cloudstoragegateway/express_sync.py +154 -0
  54. pulumi_alicloud/cloudstoragegateway/express_sync_share_attachment.py +160 -0
  55. pulumi_alicloud/cloudstoragegateway/gateway.py +0 -13
  56. pulumi_alicloud/cloudstoragegateway/gateway_block_volume.py +132 -0
  57. pulumi_alicloud/cloudstoragegateway/gateway_cache_disk.py +92 -0
  58. pulumi_alicloud/cloudstoragegateway/gateway_file_share.py +130 -0
  59. pulumi_alicloud/cloudstoragegateway/gateway_logging.py +120 -0
  60. pulumi_alicloud/cloudstoragegateway/gateway_smb_user.py +92 -0
  61. pulumi_alicloud/cms/alarm.py +4 -4
  62. pulumi_alicloud/cms/get_site_monitors.py +20 -20
  63. pulumi_alicloud/cms/hybrid_monitor_fc_task.py +24 -24
  64. pulumi_alicloud/cms/hybrid_monitor_sls_task.py +164 -0
  65. pulumi_alicloud/cms/site_monitor.py +20 -20
  66. pulumi_alicloud/cms/sls_group.py +80 -0
  67. pulumi_alicloud/compute/nest_service_instance.py +10 -10
  68. pulumi_alicloud/cs/_inputs.py +565 -0
  69. pulumi_alicloud/cs/autoscaling_config.py +260 -35
  70. pulumi_alicloud/cs/get_cluster_credential.py +30 -0
  71. pulumi_alicloud/cs/get_kubernetes_addon_metadata.py +78 -0
  72. pulumi_alicloud/cs/get_kubernetes_addons.py +72 -0
  73. pulumi_alicloud/cs/get_kubernetes_node_pools.py +124 -0
  74. pulumi_alicloud/cs/kubernetes.py +296 -0
  75. pulumi_alicloud/cs/kubernetes_addon.py +108 -0
  76. pulumi_alicloud/cs/kubernetes_permission.py +162 -0
  77. pulumi_alicloud/cs/managed_kubernetes.py +583 -14
  78. pulumi_alicloud/cs/node_pool.py +423 -0
  79. pulumi_alicloud/cs/outputs.py +374 -0
  80. pulumi_alicloud/dataworks/data_source_shared_rule.py +116 -0
  81. pulumi_alicloud/dataworks/dw_resource_group.py +82 -0
  82. pulumi_alicloud/dataworks/network.py +100 -0
  83. pulumi_alicloud/ddos/bgp_ip.py +57 -48
  84. pulumi_alicloud/ddos/ddos_bgp_instance.py +246 -106
  85. pulumi_alicloud/ddos/domain_resource.py +6 -6
  86. pulumi_alicloud/directmail/mail_address.py +62 -0
  87. pulumi_alicloud/directmail/receivers.py +40 -0
  88. pulumi_alicloud/dms/__init__.py +1 -0
  89. pulumi_alicloud/dms/enterprise_workspace.py +354 -0
  90. pulumi_alicloud/dns/access_strategy.py +152 -0
  91. pulumi_alicloud/dns/address_pool.py +4 -4
  92. pulumi_alicloud/dns/ddos_bgp_instance.py +246 -106
  93. pulumi_alicloud/dts/job_monitor_rule.py +228 -0
  94. pulumi_alicloud/dts/migration_job.py +238 -0
  95. pulumi_alicloud/dts/synchronization_job.py +266 -14
  96. pulumi_alicloud/ebs/disk_replica_pair.py +112 -0
  97. pulumi_alicloud/ecs/ecs_network_interface_permission.py +84 -0
  98. pulumi_alicloud/ecs/image_import.py +2 -2
  99. pulumi_alicloud/ecs/ram_role_attachment.py +28 -28
  100. pulumi_alicloud/edas/k8s_application.py +124 -0
  101. pulumi_alicloud/edas/k8s_cluster.py +104 -0
  102. pulumi_alicloud/edas/k8s_slb_attachment.py +152 -0
  103. pulumi_alicloud/eflo/__init__.py +2 -0
  104. pulumi_alicloud/eflo/_inputs.py +94 -0
  105. pulumi_alicloud/eflo/er.py +487 -0
  106. pulumi_alicloud/eflo/node.py +54 -7
  107. pulumi_alicloud/eflo/node_group_attachment.py +604 -0
  108. pulumi_alicloud/eflo/outputs.py +75 -0
  109. pulumi_alicloud/emr/cluster.py +64 -64
  110. pulumi_alicloud/emr/get_clusters.py +16 -16
  111. pulumi_alicloud/emrv2/cluster.py +16 -16
  112. pulumi_alicloud/emrv2/get_cluster_instances.py +16 -16
  113. pulumi_alicloud/esa/__init__.py +7 -0
  114. pulumi_alicloud/esa/kv_account.py +145 -0
  115. pulumi_alicloud/esa/origin_ca_certificate.py +441 -0
  116. pulumi_alicloud/esa/origin_client_certificate.py +564 -0
  117. pulumi_alicloud/esa/origin_protection.py +290 -0
  118. pulumi_alicloud/esa/routine_related_record.py +226 -0
  119. pulumi_alicloud/esa/site_origin_client_certificate.py +515 -0
  120. pulumi_alicloud/esa/url_observation.py +352 -0
  121. pulumi_alicloud/eventbridge/rule.py +102 -0
  122. pulumi_alicloud/fc/_inputs.py +77 -3
  123. pulumi_alicloud/fc/custom_domain.py +14 -14
  124. pulumi_alicloud/fc/function.py +14 -14
  125. pulumi_alicloud/fc/function_async_invoke_config.py +48 -48
  126. pulumi_alicloud/fc/get_service.py +2 -2
  127. pulumi_alicloud/fc/outputs.py +63 -2
  128. pulumi_alicloud/fc/trigger.py +100 -100
  129. pulumi_alicloud/fc/v3_async_invoke_config.py +154 -0
  130. pulumi_alicloud/fc/v3_function.py +189 -3
  131. pulumi_alicloud/fc/v3_function_version.py +30 -2
  132. pulumi_alicloud/fnf/execution.py +14 -14
  133. pulumi_alicloud/fnf/flow.py +14 -14
  134. pulumi_alicloud/ga/additional_certificate.py +236 -0
  135. pulumi_alicloud/gpdb/hadoop_data_source.py +16 -16
  136. pulumi_alicloud/gpdb/streaming_job.py +4 -4
  137. pulumi_alicloud/gwlb/listener.py +172 -0
  138. pulumi_alicloud/gwlb/load_balancer.py +96 -0
  139. pulumi_alicloud/gwlb/server_group.py +160 -0
  140. pulumi_alicloud/hbr/ecs_backup_plan.py +4 -4
  141. pulumi_alicloud/hbr/ots_backup_plan.py +28 -28
  142. pulumi_alicloud/hbr/restore_job.py +4 -4
  143. pulumi_alicloud/hologram/instance.py +35 -0
  144. pulumi_alicloud/imm/project.py +14 -14
  145. pulumi_alicloud/kms/get_aliases.py +6 -6
  146. pulumi_alicloud/kms/get_instances.py +178 -0
  147. pulumi_alicloud/kms/instance.py +470 -16
  148. pulumi_alicloud/kms/policy.py +96 -0
  149. pulumi_alicloud/log/dashboard.py +40 -40
  150. pulumi_alicloud/log/ingestion.py +38 -38
  151. pulumi_alicloud/log/log_tail_attachment.py +20 -20
  152. pulumi_alicloud/log/log_tail_config.py +20 -20
  153. pulumi_alicloud/log/oss_export.py +6 -0
  154. pulumi_alicloud/log/project.py +20 -20
  155. pulumi_alicloud/log/resource.py +22 -22
  156. pulumi_alicloud/log/resource_record.py +40 -40
  157. pulumi_alicloud/maxcompute/get_service.py +2 -2
  158. pulumi_alicloud/message/__init__.py +1 -0
  159. pulumi_alicloud/message/_inputs.py +141 -0
  160. pulumi_alicloud/message/outputs.py +120 -0
  161. pulumi_alicloud/message/service_event_rule.py +490 -0
  162. pulumi_alicloud/message/service_subscription.py +48 -1
  163. pulumi_alicloud/mongodb/__init__.py +1 -0
  164. pulumi_alicloud/mongodb/global_security_ip_group.py +304 -0
  165. pulumi_alicloud/mongodb/instance.py +47 -0
  166. pulumi_alicloud/mongodb/sharding_instance.py +385 -0
  167. pulumi_alicloud/msc_sub_webhook.py +44 -0
  168. pulumi_alicloud/mse/cluster.py +47 -0
  169. pulumi_alicloud/mse/gateway.py +62 -0
  170. pulumi_alicloud/nas/access_group.py +46 -18
  171. pulumi_alicloud/nas/access_rule.py +28 -0
  172. pulumi_alicloud/nas/data_flow.py +114 -0
  173. pulumi_alicloud/nlb/listener_additional_certificate_attachment.py +328 -0
  174. pulumi_alicloud/nlb/server_group.py +28 -21
  175. pulumi_alicloud/oos/execution.py +30 -30
  176. pulumi_alicloud/oos/get_parameters.py +10 -10
  177. pulumi_alicloud/oos/get_secret_parameters.py +10 -10
  178. pulumi_alicloud/oos/template.py +28 -28
  179. pulumi_alicloud/oss/bucket.py +634 -0
  180. pulumi_alicloud/oss/bucket_replication.py +56 -56
  181. pulumi_alicloud/outputs.py +489 -0
  182. pulumi_alicloud/pai/flow_pipeline.py +70 -70
  183. pulumi_alicloud/pai/workspace_datasetversion.py +108 -0
  184. pulumi_alicloud/pai/workspace_run.py +62 -0
  185. pulumi_alicloud/polardb/cluster.py +7 -7
  186. pulumi_alicloud/privatelink/vpc_endpoint.py +21 -7
  187. pulumi_alicloud/privatelink/vpc_endpoint_service.py +11 -11
  188. pulumi_alicloud/pulumi-plugin.json +1 -1
  189. pulumi_alicloud/pvtz/endpoint.py +96 -0
  190. pulumi_alicloud/pvtz/rule.py +122 -0
  191. pulumi_alicloud/pvtz/rule_attachment.py +150 -0
  192. pulumi_alicloud/ram/get_policies.py +18 -18
  193. pulumi_alicloud/ram/get_policy_document.py +2 -2
  194. pulumi_alicloud/ram/get_role_policy_attachments.py +34 -34
  195. pulumi_alicloud/ram/get_users.py +32 -32
  196. pulumi_alicloud/ram/group_membership.py +74 -0
  197. pulumi_alicloud/ram/group_policy_attachment.py +18 -18
  198. pulumi_alicloud/ram/policy.py +18 -18
  199. pulumi_alicloud/ram/role.py +16 -16
  200. pulumi_alicloud/ram/role_attachment.py +14 -14
  201. pulumi_alicloud/ram/role_policy_attachment.py +34 -34
  202. pulumi_alicloud/ram/user_policy_attachment.py +18 -18
  203. pulumi_alicloud/rds/get_instance_classes.py +6 -4
  204. pulumi_alicloud/rds/outputs.py +4 -0
  205. pulumi_alicloud/rds/rds_clone_db_instance.py +8 -1
  206. pulumi_alicloud/resourcemanager/__init__.py +1 -0
  207. pulumi_alicloud/resourcemanager/auto_grouping_rule.py +24 -24
  208. pulumi_alicloud/resourcemanager/control_policy.py +18 -18
  209. pulumi_alicloud/resourcemanager/control_policy_attachment.py +18 -18
  210. pulumi_alicloud/resourcemanager/delegated_administrator.py +22 -50
  211. pulumi_alicloud/resourcemanager/folder.py +106 -29
  212. pulumi_alicloud/resourcemanager/get_accounts.py +35 -18
  213. pulumi_alicloud/resourcemanager/get_shared_resources.py +64 -0
  214. pulumi_alicloud/resourcemanager/message_contact.py +572 -0
  215. pulumi_alicloud/resourcemanager/outputs.py +31 -20
  216. pulumi_alicloud/resourcemanager/policy.py +16 -16
  217. pulumi_alicloud/resourcemanager/policy_attachment.py +82 -0
  218. pulumi_alicloud/resourcemanager/policy_version.py +32 -32
  219. pulumi_alicloud/resourcemanager/resource_directory.py +137 -46
  220. pulumi_alicloud/resourcemanager/role.py +14 -14
  221. pulumi_alicloud/resourcemanager/shared_resource.py +81 -45
  222. pulumi_alicloud/resourcemanager/shared_target.py +60 -24
  223. pulumi_alicloud/rocketmq/qos_policy.py +70 -0
  224. pulumi_alicloud/ros/_inputs.py +70 -18
  225. pulumi_alicloud/ros/outputs.py +59 -12
  226. pulumi_alicloud/ros/stack.py +14 -14
  227. pulumi_alicloud/ros/stack_group.py +342 -223
  228. pulumi_alicloud/ros/template.py +2 -2
  229. pulumi_alicloud/sag/qos_policy.py +70 -0
  230. pulumi_alicloud/sddp/data_limit.py +148 -0
  231. pulumi_alicloud/sddp/rule.py +10 -10
  232. pulumi_alicloud/servicecatalog/principal_portfolio_association.py +16 -16
  233. pulumi_alicloud/servicecatalog/product_portfolio_association.py +54 -0
  234. pulumi_alicloud/sls/__init__.py +5 -0
  235. pulumi_alicloud/sls/_inputs.py +128 -0
  236. pulumi_alicloud/sls/collection_policy.py +276 -0
  237. pulumi_alicloud/sls/get_etls.py +294 -0
  238. pulumi_alicloud/sls/get_logtail_configs.py +395 -0
  239. pulumi_alicloud/sls/get_machine_groups.py +229 -0
  240. pulumi_alicloud/sls/logtail_config.py +692 -0
  241. pulumi_alicloud/sls/machine_group.py +502 -0
  242. pulumi_alicloud/sls/oss_export_sink.py +134 -0
  243. pulumi_alicloud/sls/outputs.py +449 -0
  244. pulumi_alicloud/sslcertificatesservice/__init__.py +9 -0
  245. pulumi_alicloud/sslcertificatesservice/pca_certificate.py +646 -0
  246. pulumi_alicloud/star_rocks_instance.py +1425 -0
  247. pulumi_alicloud/tag/policy.py +2 -2
  248. pulumi_alicloud/tag/policy_attachment.py +2 -2
  249. pulumi_alicloud/threatdetection/__init__.py +1 -0
  250. pulumi_alicloud/threatdetection/_inputs.py +183 -0
  251. pulumi_alicloud/threatdetection/anti_brute_force_rule.py +50 -1
  252. pulumi_alicloud/threatdetection/attack_path_sensitive_asset_config.py +218 -0
  253. pulumi_alicloud/threatdetection/image_event_operation.py +191 -90
  254. pulumi_alicloud/threatdetection/oss_scan_config.py +257 -65
  255. pulumi_alicloud/threatdetection/outputs.py +147 -0
  256. pulumi_alicloud/vod/editing_project.py +8 -8
  257. pulumi_alicloud/vpc/_inputs.py +87 -54
  258. pulumi_alicloud/vpc/common_bandwith_package.py +28 -0
  259. pulumi_alicloud/vpc/dhcp_options_set.py +97 -58
  260. pulumi_alicloud/vpc/flow_log.py +117 -25
  261. pulumi_alicloud/vpc/gateway_endpoint.py +12 -12
  262. pulumi_alicloud/vpc/gateway_endpoint_route_table_attachment.py +12 -12
  263. pulumi_alicloud/vpc/ha_vip_attachment.py +41 -60
  264. pulumi_alicloud/vpc/ha_vipv2.py +100 -88
  265. pulumi_alicloud/vpc/ipam_ipam_pool.py +54 -0
  266. pulumi_alicloud/vpc/network_acl.py +34 -23
  267. pulumi_alicloud/vpc/outputs.py +58 -36
  268. pulumi_alicloud/vpc/route_entry.py +6 -2
  269. pulumi_alicloud/vpc/vbr_ha.py +100 -0
  270. pulumi_alicloud/vpc/vpc_network_acl_attachment.py +48 -0
  271. pulumi_alicloud/vpn/get_gateways.py +98 -0
  272. pulumi_alicloud/vpn/ssl_vpn_client_cert.py +82 -0
  273. pulumi_alicloud/vpn/ssl_vpn_server.py +76 -0
  274. pulumi_alicloud/wafv3/__init__.py +1 -0
  275. pulumi_alicloud/wafv3/_inputs.py +1318 -182
  276. pulumi_alicloud/wafv3/defense_rule.py +806 -0
  277. pulumi_alicloud/wafv3/defense_template.py +87 -124
  278. pulumi_alicloud/wafv3/domain.py +136 -35
  279. pulumi_alicloud/wafv3/outputs.py +925 -123
  280. {pulumi_alicloud-3.84.0a1756507491.dist-info → pulumi_alicloud-3.85.0.dist-info}/METADATA +1 -1
  281. {pulumi_alicloud-3.84.0a1756507491.dist-info → pulumi_alicloud-3.85.0.dist-info}/RECORD +283 -251
  282. {pulumi_alicloud-3.84.0a1756507491.dist-info → pulumi_alicloud-3.85.0.dist-info}/WHEEL +0 -0
  283. {pulumi_alicloud-3.84.0a1756507491.dist-info → pulumi_alicloud-3.85.0.dist-info}/top_level.txt +0 -0
@@ -16,6 +16,11 @@ from .. import _utilities
16
16
  from . import outputs
17
17
 
18
18
  __all__ = [
19
+ 'DefenseRuleConfig',
20
+ 'DefenseRuleConfigAccountIdentifier',
21
+ 'DefenseRuleConfigCondition',
22
+ 'DefenseRuleConfigRateLimit',
23
+ 'DefenseRuleConfigRateLimitStatus',
19
24
  'DomainListen',
20
25
  'DomainRedirect',
21
26
  'DomainRedirectRequestHeader',
@@ -26,6 +31,763 @@ __all__ = [
26
31
  'GetInstancesInstanceResult',
27
32
  ]
28
33
 
34
+ @pulumi.output_type
35
+ class DefenseRuleConfig(dict):
36
+ @staticmethod
37
+ def __key_warning(key: str):
38
+ suggest = None
39
+ if key == "abroadRegions":
40
+ suggest = "abroad_regions"
41
+ elif key == "accountIdentifiers":
42
+ suggest = "account_identifiers"
43
+ elif key == "bypassRegularRules":
44
+ suggest = "bypass_regular_rules"
45
+ elif key == "bypassRegularTypes":
46
+ suggest = "bypass_regular_types"
47
+ elif key == "bypassTags":
48
+ suggest = "bypass_tags"
49
+ elif key == "ccEffect":
50
+ suggest = "cc_effect"
51
+ elif key == "ccStatus":
52
+ suggest = "cc_status"
53
+ elif key == "cnRegions":
54
+ suggest = "cn_regions"
55
+ elif key == "rateLimit":
56
+ suggest = "rate_limit"
57
+ elif key == "remoteAddrs":
58
+ suggest = "remote_addrs"
59
+ elif key == "ruleAction":
60
+ suggest = "rule_action"
61
+ elif key == "throttleThrehold":
62
+ suggest = "throttle_threhold"
63
+ elif key == "throttleType":
64
+ suggest = "throttle_type"
65
+
66
+ if suggest:
67
+ pulumi.log.warn(f"Key '{key}' not found in DefenseRuleConfig. Access the value via the '{suggest}' property getter instead.")
68
+
69
+ def __getitem__(self, key: str) -> Any:
70
+ DefenseRuleConfig.__key_warning(key)
71
+ return super().__getitem__(key)
72
+
73
+ def get(self, key: str, default = None) -> Any:
74
+ DefenseRuleConfig.__key_warning(key)
75
+ return super().get(key, default)
76
+
77
+ def __init__(__self__, *,
78
+ abroad_regions: Optional[_builtins.str] = None,
79
+ account_identifiers: Optional[Sequence['outputs.DefenseRuleConfigAccountIdentifier']] = None,
80
+ bypass_regular_rules: Optional[Sequence[_builtins.str]] = None,
81
+ bypass_regular_types: Optional[Sequence[_builtins.str]] = None,
82
+ bypass_tags: Optional[Sequence[_builtins.str]] = None,
83
+ cc_effect: Optional[_builtins.str] = None,
84
+ cc_status: Optional[_builtins.int] = None,
85
+ cn_regions: Optional[_builtins.str] = None,
86
+ conditions: Optional[Sequence['outputs.DefenseRuleConfigCondition']] = None,
87
+ mode: Optional[_builtins.int] = None,
88
+ protocol: Optional[_builtins.str] = None,
89
+ rate_limit: Optional['outputs.DefenseRuleConfigRateLimit'] = None,
90
+ remote_addrs: Optional[Sequence[_builtins.str]] = None,
91
+ rule_action: Optional[_builtins.str] = None,
92
+ throttle_threhold: Optional[_builtins.int] = None,
93
+ throttle_type: Optional[_builtins.str] = None,
94
+ ua: Optional[_builtins.str] = None,
95
+ url: Optional[_builtins.str] = None):
96
+ """
97
+ :param _builtins.str abroad_regions: The regions outside China from which you want to block requests. Separate multiple region codes with commas (,). You can call the DescribeIpAbroadCountryInfos operation to query the countries and regions outside China that can be blocked.
98
+ :param Sequence['DefenseRuleConfigAccountIdentifierArgs'] account_identifiers: The policies for account extraction. Up to five policies are supported. Each policy is a JSON string. For more information, see accountIdentifiers description. See `account_identifiers` below.
99
+ :param Sequence[_builtins.str] bypass_regular_rules: The list of regular rule IDs that are not detected. The value is in the ["XX1", "XX2",...] format. This parameter is required only when the module to which the whitelist applies is set to specific regular rules in basic protection (BypassTags is set to regular_rule).
100
+ :param Sequence[_builtins.str] bypass_regular_types: The regular rule type is not detected. This parameter is configured only when the whitelist module is configured as the Web application regular type (the value of the BypassTags parameter is regular_type). Value:
101
+ - sqli: Indicates SQL injection.
102
+ - xss: Indicates cross-site scripting (XSS).
103
+ - cmdi: Indicates OS command injection.
104
+ - expression_injection: Indicates expression injection.
105
+ - java_deserialization: indicates Java deserialization.
106
+ - dot_net_deserialization: Represents. net deserialization.
107
+ - php_deserialization: indicates PHP deserialization.
108
+ - code_exec: Indicates code execution.
109
+ - ssrf: indicates SSRF (server-side request forgery).
110
+ - path_traversal: indicates a Path Traversal.
111
+ - arbitrary_file_uploading: Indicates to upload any file.
112
+ - webshell: Represents a webshell.
113
+ - rfilei: Indicates the remote file contains (RFI).
114
+ - lfilei: Indicates that the local file contains (LFI).
115
+ - protocol_violation: indicates a protocol violation.
116
+ - scanner_behavior: Indicates scanner behavior.
117
+ - logic_flaw: Indicates a business logic defect.
118
+ - arbitrary_file_reading: Indicates arbitrary file reading.
119
+ - arbitrary_file_download: Indicates an arbitrary file download.
120
+ - xxe: Indicates external entity injection.
121
+ - csrf: indicates cross-site request forgery.
122
+ - crlf: indicates CRLF.
123
+ - other: indicates other.
124
+ :param Sequence[_builtins.str] bypass_tags: The modules to which the whitelist applies. The value is in the ["XX1", "XX2",...] format. Valid values:
125
+ - waf: indicates all modules.
126
+ - customrule: indicates custom rules.
127
+ - blacklist: indicates IP blacklist.
128
+ - antiscan: indicates scan protection.
129
+ - regular: indicates basic protection rules.
130
+ - regular_rule: indicates specific regular rules in basic protection.
131
+ - regular_type: indicates specific regular rule types in basic protection.
132
+ - major_protection: indicates major event support protection.
133
+ - cc: indicates CC protection.
134
+ - region_block: indicates Location Blacklist.
135
+ - antibot_scene: indicates BOT scenario protection.
136
+ - dlp: indicates information leakage prevention.
137
+ - tamperproof: indicates web tamper-proofing.
138
+ - spike_throttle: indicates peak traffic throttling.
139
+ :param _builtins.str cc_effect: Set the effective range of the speed limit. This information is configured only when ccStatus is set to 1. Value:
140
+ - service: indicates that the effective object is a protected object.
141
+ - rule: indicates that the effective object is a single rule.
142
+ :param _builtins.int cc_status: Whether to open the speed limit. Value:
143
+ - 0: indicates that the speed limit is off.
144
+ - 1: Indicates that the speed limit is on.
145
+ :param _builtins.str cn_regions: The regions in China from which you want to block requests. If you specify "CN", requests from the Chinese mainland (excluding Hong Kong, Macao, and Taiwan) are blocked. Separate multiple regions with commas (,). For more information about region codes, see Description of region codes in China.
146
+ :param Sequence['DefenseRuleConfigConditionArgs'] conditions: The traffic characteristics of ACL, which are described in JSON format. You can enter up to five matching conditions. For specific configuration information, see detailed configuration of conditions. See `conditions` below.
147
+ :param _builtins.int mode: The HTTP flood protection mode. Valid values:
148
+ - 0 (default): indicates normal protection.
149
+ - 1: indicates emergency protection.
150
+ :param _builtins.str protocol: The protocol type of the cached page address. Valid values: http, https.
151
+ :param 'DefenseRuleConfigRateLimitArgs' rate_limit: The detailed speed limit configuration, which is described in the JSON string format. This information is configured only when CcStatus is set to 1. For specific configuration information, see detailed configuration of Ratelimit. See `rate_limit` below.
152
+ :param Sequence[_builtins.str] remote_addrs: The IP addresses that you want to add to the blacklist. Specify the value of this parameter in the ["ip1","ip2",...] format.
153
+ :param _builtins.str rule_action: Protection rule action. Value:
154
+ - block: Indicates an intercept.
155
+ - monitor: indicates observation.
156
+ - js: indicates JS validation.
157
+ - captcha: Indicates a slider.
158
+ - captcha_strict: indicates a strict slider.
159
+ - filter: filters sensitive information. This action applies only to scenarios that the Information leakage prevention rule include sensitive information match conditions.
160
+
161
+ > **NOTE:** For the supported protection rule actions, follow the rule actions displayed in the WAF console.
162
+ :param _builtins.int throttle_threhold: The throttling threshold. Valid values:
163
+ - The QPS throttling threshold ranges from 1 to 5000000. If you select QPS throttling (such as 500 QPS), traffic that meets the throttling conditions and exceeds 500 QPS will be blocked.
164
+ - The percentage throttling threshold ranges from 1 to 99. If you select percentage throttling (such as 80%), only 80% of the traffic that meets the throttling conditions will be allowed.
165
+ :param _builtins.str throttle_type: The throttling method. Valid values:
166
+ - qps: indicates throttling based on queries per second (QPS).
167
+ - ratio (default): indicates throttling based on percentage.
168
+ :param _builtins.str ua: The User-Agent string that is allowed for access to the address.
169
+ :param _builtins.str url: The address of the cached page.
170
+ """
171
+ if abroad_regions is not None:
172
+ pulumi.set(__self__, "abroad_regions", abroad_regions)
173
+ if account_identifiers is not None:
174
+ pulumi.set(__self__, "account_identifiers", account_identifiers)
175
+ if bypass_regular_rules is not None:
176
+ pulumi.set(__self__, "bypass_regular_rules", bypass_regular_rules)
177
+ if bypass_regular_types is not None:
178
+ pulumi.set(__self__, "bypass_regular_types", bypass_regular_types)
179
+ if bypass_tags is not None:
180
+ pulumi.set(__self__, "bypass_tags", bypass_tags)
181
+ if cc_effect is not None:
182
+ pulumi.set(__self__, "cc_effect", cc_effect)
183
+ if cc_status is not None:
184
+ pulumi.set(__self__, "cc_status", cc_status)
185
+ if cn_regions is not None:
186
+ pulumi.set(__self__, "cn_regions", cn_regions)
187
+ if conditions is not None:
188
+ pulumi.set(__self__, "conditions", conditions)
189
+ if mode is not None:
190
+ pulumi.set(__self__, "mode", mode)
191
+ if protocol is not None:
192
+ pulumi.set(__self__, "protocol", protocol)
193
+ if rate_limit is not None:
194
+ pulumi.set(__self__, "rate_limit", rate_limit)
195
+ if remote_addrs is not None:
196
+ pulumi.set(__self__, "remote_addrs", remote_addrs)
197
+ if rule_action is not None:
198
+ pulumi.set(__self__, "rule_action", rule_action)
199
+ if throttle_threhold is not None:
200
+ pulumi.set(__self__, "throttle_threhold", throttle_threhold)
201
+ if throttle_type is not None:
202
+ pulumi.set(__self__, "throttle_type", throttle_type)
203
+ if ua is not None:
204
+ pulumi.set(__self__, "ua", ua)
205
+ if url is not None:
206
+ pulumi.set(__self__, "url", url)
207
+
208
+ @_builtins.property
209
+ @pulumi.getter(name="abroadRegions")
210
+ def abroad_regions(self) -> Optional[_builtins.str]:
211
+ """
212
+ The regions outside China from which you want to block requests. Separate multiple region codes with commas (,). You can call the DescribeIpAbroadCountryInfos operation to query the countries and regions outside China that can be blocked.
213
+ """
214
+ return pulumi.get(self, "abroad_regions")
215
+
216
+ @_builtins.property
217
+ @pulumi.getter(name="accountIdentifiers")
218
+ def account_identifiers(self) -> Optional[Sequence['outputs.DefenseRuleConfigAccountIdentifier']]:
219
+ """
220
+ The policies for account extraction. Up to five policies are supported. Each policy is a JSON string. For more information, see accountIdentifiers description. See `account_identifiers` below.
221
+ """
222
+ return pulumi.get(self, "account_identifiers")
223
+
224
+ @_builtins.property
225
+ @pulumi.getter(name="bypassRegularRules")
226
+ def bypass_regular_rules(self) -> Optional[Sequence[_builtins.str]]:
227
+ """
228
+ The list of regular rule IDs that are not detected. The value is in the ["XX1", "XX2",...] format. This parameter is required only when the module to which the whitelist applies is set to specific regular rules in basic protection (BypassTags is set to regular_rule).
229
+ """
230
+ return pulumi.get(self, "bypass_regular_rules")
231
+
232
+ @_builtins.property
233
+ @pulumi.getter(name="bypassRegularTypes")
234
+ def bypass_regular_types(self) -> Optional[Sequence[_builtins.str]]:
235
+ """
236
+ The regular rule type is not detected. This parameter is configured only when the whitelist module is configured as the Web application regular type (the value of the BypassTags parameter is regular_type). Value:
237
+ - sqli: Indicates SQL injection.
238
+ - xss: Indicates cross-site scripting (XSS).
239
+ - cmdi: Indicates OS command injection.
240
+ - expression_injection: Indicates expression injection.
241
+ - java_deserialization: indicates Java deserialization.
242
+ - dot_net_deserialization: Represents. net deserialization.
243
+ - php_deserialization: indicates PHP deserialization.
244
+ - code_exec: Indicates code execution.
245
+ - ssrf: indicates SSRF (server-side request forgery).
246
+ - path_traversal: indicates a Path Traversal.
247
+ - arbitrary_file_uploading: Indicates to upload any file.
248
+ - webshell: Represents a webshell.
249
+ - rfilei: Indicates the remote file contains (RFI).
250
+ - lfilei: Indicates that the local file contains (LFI).
251
+ - protocol_violation: indicates a protocol violation.
252
+ - scanner_behavior: Indicates scanner behavior.
253
+ - logic_flaw: Indicates a business logic defect.
254
+ - arbitrary_file_reading: Indicates arbitrary file reading.
255
+ - arbitrary_file_download: Indicates an arbitrary file download.
256
+ - xxe: Indicates external entity injection.
257
+ - csrf: indicates cross-site request forgery.
258
+ - crlf: indicates CRLF.
259
+ - other: indicates other.
260
+ """
261
+ return pulumi.get(self, "bypass_regular_types")
262
+
263
+ @_builtins.property
264
+ @pulumi.getter(name="bypassTags")
265
+ def bypass_tags(self) -> Optional[Sequence[_builtins.str]]:
266
+ """
267
+ The modules to which the whitelist applies. The value is in the ["XX1", "XX2",...] format. Valid values:
268
+ - waf: indicates all modules.
269
+ - customrule: indicates custom rules.
270
+ - blacklist: indicates IP blacklist.
271
+ - antiscan: indicates scan protection.
272
+ - regular: indicates basic protection rules.
273
+ - regular_rule: indicates specific regular rules in basic protection.
274
+ - regular_type: indicates specific regular rule types in basic protection.
275
+ - major_protection: indicates major event support protection.
276
+ - cc: indicates CC protection.
277
+ - region_block: indicates Location Blacklist.
278
+ - antibot_scene: indicates BOT scenario protection.
279
+ - dlp: indicates information leakage prevention.
280
+ - tamperproof: indicates web tamper-proofing.
281
+ - spike_throttle: indicates peak traffic throttling.
282
+ """
283
+ return pulumi.get(self, "bypass_tags")
284
+
285
+ @_builtins.property
286
+ @pulumi.getter(name="ccEffect")
287
+ def cc_effect(self) -> Optional[_builtins.str]:
288
+ """
289
+ Set the effective range of the speed limit. This information is configured only when ccStatus is set to 1. Value:
290
+ - service: indicates that the effective object is a protected object.
291
+ - rule: indicates that the effective object is a single rule.
292
+ """
293
+ return pulumi.get(self, "cc_effect")
294
+
295
+ @_builtins.property
296
+ @pulumi.getter(name="ccStatus")
297
+ def cc_status(self) -> Optional[_builtins.int]:
298
+ """
299
+ Whether to open the speed limit. Value:
300
+ - 0: indicates that the speed limit is off.
301
+ - 1: Indicates that the speed limit is on.
302
+ """
303
+ return pulumi.get(self, "cc_status")
304
+
305
+ @_builtins.property
306
+ @pulumi.getter(name="cnRegions")
307
+ def cn_regions(self) -> Optional[_builtins.str]:
308
+ """
309
+ The regions in China from which you want to block requests. If you specify "CN", requests from the Chinese mainland (excluding Hong Kong, Macao, and Taiwan) are blocked. Separate multiple regions with commas (,). For more information about region codes, see Description of region codes in China.
310
+ """
311
+ return pulumi.get(self, "cn_regions")
312
+
313
+ @_builtins.property
314
+ @pulumi.getter
315
+ def conditions(self) -> Optional[Sequence['outputs.DefenseRuleConfigCondition']]:
316
+ """
317
+ The traffic characteristics of ACL, which are described in JSON format. You can enter up to five matching conditions. For specific configuration information, see detailed configuration of conditions. See `conditions` below.
318
+ """
319
+ return pulumi.get(self, "conditions")
320
+
321
+ @_builtins.property
322
+ @pulumi.getter
323
+ def mode(self) -> Optional[_builtins.int]:
324
+ """
325
+ The HTTP flood protection mode. Valid values:
326
+ - 0 (default): indicates normal protection.
327
+ - 1: indicates emergency protection.
328
+ """
329
+ return pulumi.get(self, "mode")
330
+
331
+ @_builtins.property
332
+ @pulumi.getter
333
+ def protocol(self) -> Optional[_builtins.str]:
334
+ """
335
+ The protocol type of the cached page address. Valid values: http, https.
336
+ """
337
+ return pulumi.get(self, "protocol")
338
+
339
+ @_builtins.property
340
+ @pulumi.getter(name="rateLimit")
341
+ def rate_limit(self) -> Optional['outputs.DefenseRuleConfigRateLimit']:
342
+ """
343
+ The detailed speed limit configuration, which is described in the JSON string format. This information is configured only when CcStatus is set to 1. For specific configuration information, see detailed configuration of Ratelimit. See `rate_limit` below.
344
+ """
345
+ return pulumi.get(self, "rate_limit")
346
+
347
+ @_builtins.property
348
+ @pulumi.getter(name="remoteAddrs")
349
+ def remote_addrs(self) -> Optional[Sequence[_builtins.str]]:
350
+ """
351
+ The IP addresses that you want to add to the blacklist. Specify the value of this parameter in the ["ip1","ip2",...] format.
352
+ """
353
+ return pulumi.get(self, "remote_addrs")
354
+
355
+ @_builtins.property
356
+ @pulumi.getter(name="ruleAction")
357
+ def rule_action(self) -> Optional[_builtins.str]:
358
+ """
359
+ Protection rule action. Value:
360
+ - block: Indicates an intercept.
361
+ - monitor: indicates observation.
362
+ - js: indicates JS validation.
363
+ - captcha: Indicates a slider.
364
+ - captcha_strict: indicates a strict slider.
365
+ - filter: filters sensitive information. This action applies only to scenarios that the Information leakage prevention rule include sensitive information match conditions.
366
+
367
+ > **NOTE:** For the supported protection rule actions, follow the rule actions displayed in the WAF console.
368
+ """
369
+ return pulumi.get(self, "rule_action")
370
+
371
+ @_builtins.property
372
+ @pulumi.getter(name="throttleThrehold")
373
+ def throttle_threhold(self) -> Optional[_builtins.int]:
374
+ """
375
+ The throttling threshold. Valid values:
376
+ - The QPS throttling threshold ranges from 1 to 5000000. If you select QPS throttling (such as 500 QPS), traffic that meets the throttling conditions and exceeds 500 QPS will be blocked.
377
+ - The percentage throttling threshold ranges from 1 to 99. If you select percentage throttling (such as 80%), only 80% of the traffic that meets the throttling conditions will be allowed.
378
+ """
379
+ return pulumi.get(self, "throttle_threhold")
380
+
381
+ @_builtins.property
382
+ @pulumi.getter(name="throttleType")
383
+ def throttle_type(self) -> Optional[_builtins.str]:
384
+ """
385
+ The throttling method. Valid values:
386
+ - qps: indicates throttling based on queries per second (QPS).
387
+ - ratio (default): indicates throttling based on percentage.
388
+ """
389
+ return pulumi.get(self, "throttle_type")
390
+
391
+ @_builtins.property
392
+ @pulumi.getter
393
+ def ua(self) -> Optional[_builtins.str]:
394
+ """
395
+ The User-Agent string that is allowed for access to the address.
396
+ """
397
+ return pulumi.get(self, "ua")
398
+
399
+ @_builtins.property
400
+ @pulumi.getter
401
+ def url(self) -> Optional[_builtins.str]:
402
+ """
403
+ The address of the cached page.
404
+ """
405
+ return pulumi.get(self, "url")
406
+
407
+
408
+ @pulumi.output_type
409
+ class DefenseRuleConfigAccountIdentifier(dict):
410
+ @staticmethod
411
+ def __key_warning(key: str):
412
+ suggest = None
413
+ if key == "decodeType":
414
+ suggest = "decode_type"
415
+ elif key == "subKey":
416
+ suggest = "sub_key"
417
+
418
+ if suggest:
419
+ pulumi.log.warn(f"Key '{key}' not found in DefenseRuleConfigAccountIdentifier. Access the value via the '{suggest}' property getter instead.")
420
+
421
+ def __getitem__(self, key: str) -> Any:
422
+ DefenseRuleConfigAccountIdentifier.__key_warning(key)
423
+ return super().__getitem__(key)
424
+
425
+ def get(self, key: str, default = None) -> Any:
426
+ DefenseRuleConfigAccountIdentifier.__key_warning(key)
427
+ return super().get(key, default)
428
+
429
+ def __init__(__self__, *,
430
+ decode_type: Optional[_builtins.str] = None,
431
+ key: Optional[_builtins.str] = None,
432
+ position: Optional[_builtins.str] = None,
433
+ priority: Optional[_builtins.int] = None,
434
+ sub_key: Optional[_builtins.str] = None):
435
+ """
436
+ :param _builtins.str decode_type: The authentication mode. Valid values:
437
+ - plain: indicates plaintext.
438
+ - basic: indicates Basic authentication.
439
+ - jwt: indicates JWT authentication. For JWT authentication, you must specify the field that stores the decoded account information (position).
440
+ :param _builtins.str key: Match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Host, HttpCode, and SensitiveInfo.
441
+
442
+ > **NOTE:** Support for matching fields is based on the display in the WAF console. HttpCode and SensitiveInfo are the matching fields supported by the information leakage prevention rule (dlp).
443
+ :param _builtins.str position: The field that stores the decoded account information.
444
+ :param _builtins.int priority: The priority of the current extraction configuration. Each traffic can match at most one extraction policy. Valid values: [0,20]. A smaller value indicates a higher priority. The priority value must be unique.
445
+ :param _builtins.str sub_key: The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.
446
+ """
447
+ if decode_type is not None:
448
+ pulumi.set(__self__, "decode_type", decode_type)
449
+ if key is not None:
450
+ pulumi.set(__self__, "key", key)
451
+ if position is not None:
452
+ pulumi.set(__self__, "position", position)
453
+ if priority is not None:
454
+ pulumi.set(__self__, "priority", priority)
455
+ if sub_key is not None:
456
+ pulumi.set(__self__, "sub_key", sub_key)
457
+
458
+ @_builtins.property
459
+ @pulumi.getter(name="decodeType")
460
+ def decode_type(self) -> Optional[_builtins.str]:
461
+ """
462
+ The authentication mode. Valid values:
463
+ - plain: indicates plaintext.
464
+ - basic: indicates Basic authentication.
465
+ - jwt: indicates JWT authentication. For JWT authentication, you must specify the field that stores the decoded account information (position).
466
+ """
467
+ return pulumi.get(self, "decode_type")
468
+
469
+ @_builtins.property
470
+ @pulumi.getter
471
+ def key(self) -> Optional[_builtins.str]:
472
+ """
473
+ Match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Host, HttpCode, and SensitiveInfo.
474
+
475
+ > **NOTE:** Support for matching fields is based on the display in the WAF console. HttpCode and SensitiveInfo are the matching fields supported by the information leakage prevention rule (dlp).
476
+ """
477
+ return pulumi.get(self, "key")
478
+
479
+ @_builtins.property
480
+ @pulumi.getter
481
+ def position(self) -> Optional[_builtins.str]:
482
+ """
483
+ The field that stores the decoded account information.
484
+ """
485
+ return pulumi.get(self, "position")
486
+
487
+ @_builtins.property
488
+ @pulumi.getter
489
+ def priority(self) -> Optional[_builtins.int]:
490
+ """
491
+ The priority of the current extraction configuration. Each traffic can match at most one extraction policy. Valid values: [0,20]. A smaller value indicates a higher priority. The priority value must be unique.
492
+ """
493
+ return pulumi.get(self, "priority")
494
+
495
+ @_builtins.property
496
+ @pulumi.getter(name="subKey")
497
+ def sub_key(self) -> Optional[_builtins.str]:
498
+ """
499
+ The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.
500
+ """
501
+ return pulumi.get(self, "sub_key")
502
+
503
+
504
+ @pulumi.output_type
505
+ class DefenseRuleConfigCondition(dict):
506
+ @staticmethod
507
+ def __key_warning(key: str):
508
+ suggest = None
509
+ if key == "opValue":
510
+ suggest = "op_value"
511
+ elif key == "subKey":
512
+ suggest = "sub_key"
513
+
514
+ if suggest:
515
+ pulumi.log.warn(f"Key '{key}' not found in DefenseRuleConfigCondition. Access the value via the '{suggest}' property getter instead.")
516
+
517
+ def __getitem__(self, key: str) -> Any:
518
+ DefenseRuleConfigCondition.__key_warning(key)
519
+ return super().__getitem__(key)
520
+
521
+ def get(self, key: str, default = None) -> Any:
522
+ DefenseRuleConfigCondition.__key_warning(key)
523
+ return super().get(key, default)
524
+
525
+ def __init__(__self__, *,
526
+ key: Optional[_builtins.str] = None,
527
+ op_value: Optional[_builtins.str] = None,
528
+ sub_key: Optional[_builtins.str] = None,
529
+ values: Optional[_builtins.str] = None):
530
+ """
531
+ :param _builtins.str key: Match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Host, HttpCode, and SensitiveInfo.
532
+
533
+ > **NOTE:** Support for matching fields is based on the display in the WAF console. HttpCode and SensitiveInfo are the matching fields supported by the information leakage prevention rule (dlp).
534
+ :param _builtins.str op_value: Logical character. Value:
535
+ - not-contain: does not contain.
536
+ - contain: Indicates to contain.
537
+ - none: It does not exist.
538
+ - ne: means not equal.
539
+ - eq: means equal.
540
+ - lt: indicates that the value is less.
541
+ - gt: indicates that the value is greater.
542
+ - len-lt: indicates that the length is less.
543
+ - len-eq: indicates that the length is equal.
544
+ - len-gt: indicates that the length is greater.
545
+ - not-match: indicates a mismatch.
546
+ - match-one: means equal to one of the multiple values.
547
+ - all-not-match: means not equal to any value.
548
+ - all-not-contain: does not contain any value.
549
+ - contain-one: Indicates that one of the multiple values is contained.
550
+ - not-regex: Indicates a regular mismatch.
551
+ - regex: Indicates a regular match.
552
+ - all-not-regex: indicates that the regular expressions do not match.
553
+ - regex-one: Represents a regular match for one of them.
554
+ - prefix-match: Indicates a prefix match.
555
+ - suffix-match: indicates a suffix match.
556
+ - mpty: Indicates that the content is empty.
557
+ - exists: Indicates that the field exists.
558
+ - inl: indicates in the list.
559
+
560
+ > **NOTE:** Not all logical characters (opvalues) can be configured for the match field (key) of each custom rule. For the logical characters supported by different matching fields, please refer to the association relationship between the matching fields and the logical characters in the custom rules of the WAF console.
561
+ :param _builtins.str sub_key: The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.
562
+ :param _builtins.str values: Match the content and fill in the corresponding content as needed.
563
+
564
+ > **NOTE:** The value range of the logical (opValue) and matching content (values) parameters in the matching condition parameter is related to the specified matching field (key).
565
+ """
566
+ if key is not None:
567
+ pulumi.set(__self__, "key", key)
568
+ if op_value is not None:
569
+ pulumi.set(__self__, "op_value", op_value)
570
+ if sub_key is not None:
571
+ pulumi.set(__self__, "sub_key", sub_key)
572
+ if values is not None:
573
+ pulumi.set(__self__, "values", values)
574
+
575
+ @_builtins.property
576
+ @pulumi.getter
577
+ def key(self) -> Optional[_builtins.str]:
578
+ """
579
+ Match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Host, HttpCode, and SensitiveInfo.
580
+
581
+ > **NOTE:** Support for matching fields is based on the display in the WAF console. HttpCode and SensitiveInfo are the matching fields supported by the information leakage prevention rule (dlp).
582
+ """
583
+ return pulumi.get(self, "key")
584
+
585
+ @_builtins.property
586
+ @pulumi.getter(name="opValue")
587
+ def op_value(self) -> Optional[_builtins.str]:
588
+ """
589
+ Logical character. Value:
590
+ - not-contain: does not contain.
591
+ - contain: Indicates to contain.
592
+ - none: It does not exist.
593
+ - ne: means not equal.
594
+ - eq: means equal.
595
+ - lt: indicates that the value is less.
596
+ - gt: indicates that the value is greater.
597
+ - len-lt: indicates that the length is less.
598
+ - len-eq: indicates that the length is equal.
599
+ - len-gt: indicates that the length is greater.
600
+ - not-match: indicates a mismatch.
601
+ - match-one: means equal to one of the multiple values.
602
+ - all-not-match: means not equal to any value.
603
+ - all-not-contain: does not contain any value.
604
+ - contain-one: Indicates that one of the multiple values is contained.
605
+ - not-regex: Indicates a regular mismatch.
606
+ - regex: Indicates a regular match.
607
+ - all-not-regex: indicates that the regular expressions do not match.
608
+ - regex-one: Represents a regular match for one of them.
609
+ - prefix-match: Indicates a prefix match.
610
+ - suffix-match: indicates a suffix match.
611
+ - mpty: Indicates that the content is empty.
612
+ - exists: Indicates that the field exists.
613
+ - inl: indicates in the list.
614
+
615
+ > **NOTE:** Not all logical characters (opvalues) can be configured for the match field (key) of each custom rule. For the logical characters supported by different matching fields, please refer to the association relationship between the matching fields and the logical characters in the custom rules of the WAF console.
616
+ """
617
+ return pulumi.get(self, "op_value")
618
+
619
+ @_builtins.property
620
+ @pulumi.getter(name="subKey")
621
+ def sub_key(self) -> Optional[_builtins.str]:
622
+ """
623
+ The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.
624
+ """
625
+ return pulumi.get(self, "sub_key")
626
+
627
+ @_builtins.property
628
+ @pulumi.getter
629
+ def values(self) -> Optional[_builtins.str]:
630
+ """
631
+ Match the content and fill in the corresponding content as needed.
632
+
633
+ > **NOTE:** The value range of the logical (opValue) and matching content (values) parameters in the matching condition parameter is related to the specified matching field (key).
634
+ """
635
+ return pulumi.get(self, "values")
636
+
637
+
638
+ @pulumi.output_type
639
+ class DefenseRuleConfigRateLimit(dict):
640
+ @staticmethod
641
+ def __key_warning(key: str):
642
+ suggest = None
643
+ if key == "subKey":
644
+ suggest = "sub_key"
645
+
646
+ if suggest:
647
+ pulumi.log.warn(f"Key '{key}' not found in DefenseRuleConfigRateLimit. Access the value via the '{suggest}' property getter instead.")
648
+
649
+ def __getitem__(self, key: str) -> Any:
650
+ DefenseRuleConfigRateLimit.__key_warning(key)
651
+ return super().__getitem__(key)
652
+
653
+ def get(self, key: str, default = None) -> Any:
654
+ DefenseRuleConfigRateLimit.__key_warning(key)
655
+ return super().get(key, default)
656
+
657
+ def __init__(__self__, *,
658
+ interval: Optional[_builtins.int] = None,
659
+ status: Optional['outputs.DefenseRuleConfigRateLimitStatus'] = None,
660
+ sub_key: Optional[_builtins.str] = None,
661
+ target: Optional[_builtins.str] = None,
662
+ threshold: Optional[_builtins.int] = None,
663
+ ttl: Optional[_builtins.int] = None):
664
+ """
665
+ :param _builtins.int interval: The statistical period, in seconds. This parameter specifies the period during which access counts are collected, and works with the Threshold parameter.
666
+ Valid values: 1 to 1800 seconds.
667
+ :param 'DefenseRuleConfigRateLimitStatusArgs' status: Response code frequency setting. The description is in the JSON string format. See `status` below.
668
+ :param _builtins.str sub_key: The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.
669
+ :param _builtins.str target: The type of the statistical object. Valid values:
670
+ - remote_addr (default): indicates IP.
671
+ - cookie.acw_tc: indicates session.
672
+ - header: indicates custom header. If you use custom headers, you must specify the headers in subkey.
673
+ - queryarg: indicates custom parameters. If you use custom parameters, you must specify the parameters in subkey.
674
+ - cookie: indicates custom cookies. If you use custom cookies, you must specify the cookies in subkey.
675
+ :param _builtins.int threshold: The maximum number of requests that can be sent from a statistical object.
676
+ :param _builtins.int ttl: The period of time during which you want the specified action to be valid. Unit: seconds.
677
+ Valid values: 60 to 86400.
678
+ """
679
+ if interval is not None:
680
+ pulumi.set(__self__, "interval", interval)
681
+ if status is not None:
682
+ pulumi.set(__self__, "status", status)
683
+ if sub_key is not None:
684
+ pulumi.set(__self__, "sub_key", sub_key)
685
+ if target is not None:
686
+ pulumi.set(__self__, "target", target)
687
+ if threshold is not None:
688
+ pulumi.set(__self__, "threshold", threshold)
689
+ if ttl is not None:
690
+ pulumi.set(__self__, "ttl", ttl)
691
+
692
+ @_builtins.property
693
+ @pulumi.getter
694
+ def interval(self) -> Optional[_builtins.int]:
695
+ """
696
+ The statistical period, in seconds. This parameter specifies the period during which access counts are collected, and works with the Threshold parameter.
697
+ Valid values: 1 to 1800 seconds.
698
+ """
699
+ return pulumi.get(self, "interval")
700
+
701
+ @_builtins.property
702
+ @pulumi.getter
703
+ def status(self) -> Optional['outputs.DefenseRuleConfigRateLimitStatus']:
704
+ """
705
+ Response code frequency setting. The description is in the JSON string format. See `status` below.
706
+ """
707
+ return pulumi.get(self, "status")
708
+
709
+ @_builtins.property
710
+ @pulumi.getter(name="subKey")
711
+ def sub_key(self) -> Optional[_builtins.str]:
712
+ """
713
+ The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.
714
+ """
715
+ return pulumi.get(self, "sub_key")
716
+
717
+ @_builtins.property
718
+ @pulumi.getter
719
+ def target(self) -> Optional[_builtins.str]:
720
+ """
721
+ The type of the statistical object. Valid values:
722
+ - remote_addr (default): indicates IP.
723
+ - cookie.acw_tc: indicates session.
724
+ - header: indicates custom header. If you use custom headers, you must specify the headers in subkey.
725
+ - queryarg: indicates custom parameters. If you use custom parameters, you must specify the parameters in subkey.
726
+ - cookie: indicates custom cookies. If you use custom cookies, you must specify the cookies in subkey.
727
+ """
728
+ return pulumi.get(self, "target")
729
+
730
+ @_builtins.property
731
+ @pulumi.getter
732
+ def threshold(self) -> Optional[_builtins.int]:
733
+ """
734
+ The maximum number of requests that can be sent from a statistical object.
735
+ """
736
+ return pulumi.get(self, "threshold")
737
+
738
+ @_builtins.property
739
+ @pulumi.getter
740
+ def ttl(self) -> Optional[_builtins.int]:
741
+ """
742
+ The period of time during which you want the specified action to be valid. Unit: seconds.
743
+ Valid values: 60 to 86400.
744
+ """
745
+ return pulumi.get(self, "ttl")
746
+
747
+
748
+ @pulumi.output_type
749
+ class DefenseRuleConfigRateLimitStatus(dict):
750
+ def __init__(__self__, *,
751
+ code: Optional[_builtins.int] = None,
752
+ count: Optional[_builtins.int] = None,
753
+ ratio: Optional[_builtins.int] = None):
754
+ """
755
+ :param _builtins.int code: Required. Specifies the response code.
756
+ :param _builtins.int count: The threshold for the number of occurrences. When the number of occurrences of the specified HTTP status code exceeds this threshold, the protection rule is triggered. Valid values: 2 to 50000. You can specify Count or Ratio. You cannot specify the two parameters at the same time.
757
+ :param _builtins.int ratio: The threshold for the proportion of occurrences (percentage). When the proportion of occurrences of the specified HTTP status code exceeds this threshold, the protection rule is triggered. Valid values: 1 to 100. You can specify Count or Ratio. You cannot specify the two parameters at the same time.
758
+ """
759
+ if code is not None:
760
+ pulumi.set(__self__, "code", code)
761
+ if count is not None:
762
+ pulumi.set(__self__, "count", count)
763
+ if ratio is not None:
764
+ pulumi.set(__self__, "ratio", ratio)
765
+
766
+ @_builtins.property
767
+ @pulumi.getter
768
+ def code(self) -> Optional[_builtins.int]:
769
+ """
770
+ Required. Specifies the response code.
771
+ """
772
+ return pulumi.get(self, "code")
773
+
774
+ @_builtins.property
775
+ @pulumi.getter
776
+ def count(self) -> Optional[_builtins.int]:
777
+ """
778
+ The threshold for the number of occurrences. When the number of occurrences of the specified HTTP status code exceeds this threshold, the protection rule is triggered. Valid values: 2 to 50000. You can specify Count or Ratio. You cannot specify the two parameters at the same time.
779
+ """
780
+ return pulumi.get(self, "count")
781
+
782
+ @_builtins.property
783
+ @pulumi.getter
784
+ def ratio(self) -> Optional[_builtins.int]:
785
+ """
786
+ The threshold for the proportion of occurrences (percentage). When the proportion of occurrences of the specified HTTP status code exceeds this threshold, the protection rule is triggered. Valid values: 1 to 100. You can specify Count or Ratio. You cannot specify the two parameters at the same time.
787
+ """
788
+ return pulumi.get(self, "ratio")
789
+
790
+
29
791
  @pulumi.output_type
30
792
  class DomainListen(dict):
31
793
  @staticmethod
@@ -53,6 +815,12 @@ class DomainListen(dict):
53
815
  suggest = "ipv6_enabled"
54
816
  elif key == "protectionResource":
55
817
  suggest = "protection_resource"
818
+ elif key == "sm2AccessOnly":
819
+ suggest = "sm2_access_only"
820
+ elif key == "sm2CertId":
821
+ suggest = "sm2_cert_id"
822
+ elif key == "sm2Enabled":
823
+ suggest = "sm2_enabled"
56
824
  elif key == "tlsVersion":
57
825
  suggest = "tls_version"
58
826
  elif key == "xffHeaderMode":
@@ -83,42 +851,35 @@ class DomainListen(dict):
83
851
  https_ports: Optional[Sequence[_builtins.int]] = None,
84
852
  ipv6_enabled: Optional[_builtins.bool] = None,
85
853
  protection_resource: Optional[_builtins.str] = None,
854
+ sm2_access_only: Optional[_builtins.bool] = None,
855
+ sm2_cert_id: Optional[_builtins.str] = None,
856
+ sm2_enabled: Optional[_builtins.bool] = None,
86
857
  tls_version: Optional[_builtins.str] = None,
87
858
  xff_header_mode: Optional[_builtins.int] = None,
88
859
  xff_headers: Optional[Sequence[_builtins.str]] = None):
89
860
  """
90
- :param _builtins.str cert_id: The ID of the certificate to be added. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).
91
- :param _builtins.int cipher_suite: The type of encryption suite to add. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
92
- - **1**: indicates that all encryption suites are added.
93
- - **2**: indicates that a strong encryption package is added. You can select this value only if the value of **tls_version** is `tlsv1.2`.
94
- - **99**: indicates that a custom encryption suite is added.
861
+ :param _builtins.str cert_id: The ID of the certificate to be added. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol).
862
+ :param _builtins.int cipher_suite: The type of the cipher suites that you want to add. This parameter is available only if you specify `HttpsPorts`. Valid values:
95
863
  :param Sequence[_builtins.str] custom_ciphers: The specific custom encryption suite to add.
96
- :param _builtins.bool enable_tlsv3: Whether TSL1.3 version is supported. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
97
- - **true**: indicates that TSL1.3 is supported.
98
- - **false**: indicates that TSL1.3 is not supported.
99
- :param _builtins.bool exclusive_ip: Whether to enable exclusive IP address. This parameter is used only when the value of **ipv6_enabled** is **false** (indicating that IPv6 is not enabled) and the value of **protection_resource** is **share** (indicating that a shared cluster is used). Value:
100
- - **true**: indicates that the exclusive IP address is enabled.
101
- - **false** (default): indicates that exclusive IP address is not enabled.
102
- :param _builtins.bool focus_https: Whether to enable the forced jump of HTTPS. This parameter is used only when the value of `https_ports` is not empty (indicating that the domain name uses HTTPS protocol) and the value of httports is empty (indicating that the domain name does not use HTTP protocol). Value:
103
- - **true**: indicates that HTTPS forced redirection is enabled.
104
- - **false**: indicates that HTTPS forced redirection is not enabled.
105
- :param _builtins.bool http2_enabled: Whether to turn on http2. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
106
- - **true:** indicates that HTTP2 is enabled.
107
- - **false** (default): indicates that HTTP2 is not enabled.
108
- :param Sequence[_builtins.int] http_ports: The listening port of the HTTP protocol.
109
- :param Sequence[_builtins.int] https_ports: The listening port of the HTTPS protocol.
110
- :param _builtins.bool ipv6_enabled: Whether IPv6 is turned on. Value:
111
- - **true**: indicates that IPv6 is enabled.
112
- - **false** (default): indicates that IPv6 is not enabled.
113
- :param _builtins.str protection_resource: The type of protection resource to use. Value:
114
- - **share** (default): indicates that a shared cluster is used.
115
- - **gslb**: indicates that the shared cluster intelligent load balancing is used.
116
- :param _builtins.str tls_version: The version of TLS to add. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value: **tlsv1**, **tlsv1.1**, **tlsv1.2**.
117
- :param _builtins.int xff_header_mode: WAF obtains the real IP address of the client. Value:
118
- - **0** (default): indicates that the client has not forwarded the traffic to WAF through other layer -7 agents.
119
- - **1**: indicates that the first value of the X-Forwarded-For(XFF) field in the WAF read request header is used as the client IP address.
120
- - **2**: indicates that the custom field value set by you in the WAF read request header is used as the client IP address.
121
- :param Sequence[_builtins.str] xff_headers: Set the list of custom fields used to obtain the client IP address.
864
+ :param _builtins.bool enable_tlsv3: Whether TSL1.3 version is supported. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol). Value:
865
+ :param _builtins.bool exclusive_ip: Specifies whether to enable the exclusive IP address feature. This parameter is available only if you set `IPv6Enabled` to false and `ProtectionResource` to `share`. Valid values:
866
+ :param _builtins.bool focus_https: Specifies whether to enable force redirect from HTTP to HTTPS for received requests. This parameter is available only if you specify `HttpsPorts` and leave `HttpPorts` empty. Valid values:
867
+ :param _builtins.bool http2_enabled: Specifies whether to enable HTTP/2. This parameter is available only if you specify `HttpsPorts`. Valid values:
868
+ :param Sequence[_builtins.int] http_ports: The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.
869
+ :param Sequence[_builtins.int] https_ports: The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.
870
+ :param _builtins.bool ipv6_enabled: Specifies whether to enable IPv6 protection. Valid values:
871
+ :param _builtins.str protection_resource: The type of the protection resource. Valid values:
872
+ :param _builtins.bool sm2_access_only: Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.
873
+
874
+ - true
875
+ - false
876
+ :param _builtins.str sm2_cert_id: The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.
877
+ :param _builtins.bool sm2_enabled: Specifies whether to add an SM certificate.
878
+ :param _builtins.str tls_version: The version of TLS to add. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol). Value:
879
+ :param _builtins.int xff_header_mode: The method that is used to obtain the originating IP address of a client. Valid values:
880
+ :param Sequence[_builtins.str] xff_headers: The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.
881
+
882
+ > **NOTE:** This parameter is required only if you set `XffHeaderMode` to 2.
122
883
  """
123
884
  if cert_id is not None:
124
885
  pulumi.set(__self__, "cert_id", cert_id)
@@ -142,6 +903,12 @@ class DomainListen(dict):
142
903
  pulumi.set(__self__, "ipv6_enabled", ipv6_enabled)
143
904
  if protection_resource is not None:
144
905
  pulumi.set(__self__, "protection_resource", protection_resource)
906
+ if sm2_access_only is not None:
907
+ pulumi.set(__self__, "sm2_access_only", sm2_access_only)
908
+ if sm2_cert_id is not None:
909
+ pulumi.set(__self__, "sm2_cert_id", sm2_cert_id)
910
+ if sm2_enabled is not None:
911
+ pulumi.set(__self__, "sm2_enabled", sm2_enabled)
145
912
  if tls_version is not None:
146
913
  pulumi.set(__self__, "tls_version", tls_version)
147
914
  if xff_header_mode is not None:
@@ -153,7 +920,7 @@ class DomainListen(dict):
153
920
  @pulumi.getter(name="certId")
154
921
  def cert_id(self) -> Optional[_builtins.str]:
155
922
  """
156
- The ID of the certificate to be added. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).
923
+ The ID of the certificate to be added. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol).
157
924
  """
158
925
  return pulumi.get(self, "cert_id")
159
926
 
@@ -161,10 +928,7 @@ class DomainListen(dict):
161
928
  @pulumi.getter(name="cipherSuite")
162
929
  def cipher_suite(self) -> Optional[_builtins.int]:
163
930
  """
164
- The type of encryption suite to add. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
165
- - **1**: indicates that all encryption suites are added.
166
- - **2**: indicates that a strong encryption package is added. You can select this value only if the value of **tls_version** is `tlsv1.2`.
167
- - **99**: indicates that a custom encryption suite is added.
931
+ The type of the cipher suites that you want to add. This parameter is available only if you specify `HttpsPorts`. Valid values:
168
932
  """
169
933
  return pulumi.get(self, "cipher_suite")
170
934
 
@@ -180,9 +944,7 @@ class DomainListen(dict):
180
944
  @pulumi.getter(name="enableTlsv3")
181
945
  def enable_tlsv3(self) -> Optional[_builtins.bool]:
182
946
  """
183
- Whether TSL1.3 version is supported. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
184
- - **true**: indicates that TSL1.3 is supported.
185
- - **false**: indicates that TSL1.3 is not supported.
947
+ Whether TSL1.3 version is supported. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol). Value:
186
948
  """
187
949
  return pulumi.get(self, "enable_tlsv3")
188
950
 
@@ -190,9 +952,7 @@ class DomainListen(dict):
190
952
  @pulumi.getter(name="exclusiveIp")
191
953
  def exclusive_ip(self) -> Optional[_builtins.bool]:
192
954
  """
193
- Whether to enable exclusive IP address. This parameter is used only when the value of **ipv6_enabled** is **false** (indicating that IPv6 is not enabled) and the value of **protection_resource** is **share** (indicating that a shared cluster is used). Value:
194
- - **true**: indicates that the exclusive IP address is enabled.
195
- - **false** (default): indicates that exclusive IP address is not enabled.
955
+ Specifies whether to enable the exclusive IP address feature. This parameter is available only if you set `IPv6Enabled` to false and `ProtectionResource` to `share`. Valid values:
196
956
  """
197
957
  return pulumi.get(self, "exclusive_ip")
198
958
 
@@ -200,9 +960,7 @@ class DomainListen(dict):
200
960
  @pulumi.getter(name="focusHttps")
201
961
  def focus_https(self) -> Optional[_builtins.bool]:
202
962
  """
203
- Whether to enable the forced jump of HTTPS. This parameter is used only when the value of `https_ports` is not empty (indicating that the domain name uses HTTPS protocol) and the value of httports is empty (indicating that the domain name does not use HTTP protocol). Value:
204
- - **true**: indicates that HTTPS forced redirection is enabled.
205
- - **false**: indicates that HTTPS forced redirection is not enabled.
963
+ Specifies whether to enable force redirect from HTTP to HTTPS for received requests. This parameter is available only if you specify `HttpsPorts` and leave `HttpPorts` empty. Valid values:
206
964
  """
207
965
  return pulumi.get(self, "focus_https")
208
966
 
@@ -210,9 +968,7 @@ class DomainListen(dict):
210
968
  @pulumi.getter(name="http2Enabled")
211
969
  def http2_enabled(self) -> Optional[_builtins.bool]:
212
970
  """
213
- Whether to turn on http2. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
214
- - **true:** indicates that HTTP2 is enabled.
215
- - **false** (default): indicates that HTTP2 is not enabled.
971
+ Specifies whether to enable HTTP/2. This parameter is available only if you specify `HttpsPorts`. Valid values:
216
972
  """
217
973
  return pulumi.get(self, "http2_enabled")
218
974
 
@@ -220,7 +976,7 @@ class DomainListen(dict):
220
976
  @pulumi.getter(name="httpPorts")
221
977
  def http_ports(self) -> Optional[Sequence[_builtins.int]]:
222
978
  """
223
- The listening port of the HTTP protocol.
979
+ The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.
224
980
  """
225
981
  return pulumi.get(self, "http_ports")
226
982
 
@@ -228,7 +984,7 @@ class DomainListen(dict):
228
984
  @pulumi.getter(name="httpsPorts")
229
985
  def https_ports(self) -> Optional[Sequence[_builtins.int]]:
230
986
  """
231
- The listening port of the HTTPS protocol.
987
+ The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.
232
988
  """
233
989
  return pulumi.get(self, "https_ports")
234
990
 
@@ -236,9 +992,7 @@ class DomainListen(dict):
236
992
  @pulumi.getter(name="ipv6Enabled")
237
993
  def ipv6_enabled(self) -> Optional[_builtins.bool]:
238
994
  """
239
- Whether IPv6 is turned on. Value:
240
- - **true**: indicates that IPv6 is enabled.
241
- - **false** (default): indicates that IPv6 is not enabled.
995
+ Specifies whether to enable IPv6 protection. Valid values:
242
996
  """
243
997
  return pulumi.get(self, "ipv6_enabled")
244
998
 
@@ -246,17 +1000,42 @@ class DomainListen(dict):
246
1000
  @pulumi.getter(name="protectionResource")
247
1001
  def protection_resource(self) -> Optional[_builtins.str]:
248
1002
  """
249
- The type of protection resource to use. Value:
250
- - **share** (default): indicates that a shared cluster is used.
251
- - **gslb**: indicates that the shared cluster intelligent load balancing is used.
1003
+ The type of the protection resource. Valid values:
252
1004
  """
253
1005
  return pulumi.get(self, "protection_resource")
254
1006
 
1007
+ @_builtins.property
1008
+ @pulumi.getter(name="sm2AccessOnly")
1009
+ def sm2_access_only(self) -> Optional[_builtins.bool]:
1010
+ """
1011
+ Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.
1012
+
1013
+ - true
1014
+ - false
1015
+ """
1016
+ return pulumi.get(self, "sm2_access_only")
1017
+
1018
+ @_builtins.property
1019
+ @pulumi.getter(name="sm2CertId")
1020
+ def sm2_cert_id(self) -> Optional[_builtins.str]:
1021
+ """
1022
+ The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.
1023
+ """
1024
+ return pulumi.get(self, "sm2_cert_id")
1025
+
1026
+ @_builtins.property
1027
+ @pulumi.getter(name="sm2Enabled")
1028
+ def sm2_enabled(self) -> Optional[_builtins.bool]:
1029
+ """
1030
+ Specifies whether to add an SM certificate.
1031
+ """
1032
+ return pulumi.get(self, "sm2_enabled")
1033
+
255
1034
  @_builtins.property
256
1035
  @pulumi.getter(name="tlsVersion")
257
1036
  def tls_version(self) -> Optional[_builtins.str]:
258
1037
  """
259
- The version of TLS to add. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value: **tlsv1**, **tlsv1.1**, **tlsv1.2**.
1038
+ The version of TLS to add. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol). Value:
260
1039
  """
261
1040
  return pulumi.get(self, "tls_version")
262
1041
 
@@ -264,10 +1043,7 @@ class DomainListen(dict):
264
1043
  @pulumi.getter(name="xffHeaderMode")
265
1044
  def xff_header_mode(self) -> Optional[_builtins.int]:
266
1045
  """
267
- WAF obtains the real IP address of the client. Value:
268
- - **0** (default): indicates that the client has not forwarded the traffic to WAF through other layer -7 agents.
269
- - **1**: indicates that the first value of the X-Forwarded-For(XFF) field in the WAF read request header is used as the client IP address.
270
- - **2**: indicates that the custom field value set by you in the WAF read request header is used as the client IP address.
1046
+ The method that is used to obtain the originating IP address of a client. Valid values:
271
1047
  """
272
1048
  return pulumi.get(self, "xff_header_mode")
273
1049
 
@@ -275,7 +1051,9 @@ class DomainListen(dict):
275
1051
  @pulumi.getter(name="xffHeaders")
276
1052
  def xff_headers(self) -> Optional[Sequence[_builtins.str]]:
277
1053
  """
278
- Set the list of custom fields used to obtain the client IP address.
1054
+ The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.
1055
+
1056
+ > **NOTE:** This parameter is required only if you set `XffHeaderMode` to 2.
279
1057
  """
280
1058
  return pulumi.get(self, "xff_headers")
281
1059
 
@@ -285,7 +1063,9 @@ class DomainRedirect(dict):
285
1063
  @staticmethod
286
1064
  def __key_warning(key: str):
287
1065
  suggest = None
288
- if key == "connectTimeout":
1066
+ if key == "backupBackends":
1067
+ suggest = "backup_backends"
1068
+ elif key == "connectTimeout":
289
1069
  suggest = "connect_timeout"
290
1070
  elif key == "focusHttpBackend":
291
1071
  suggest = "focus_http_backend"
@@ -303,6 +1083,8 @@ class DomainRedirect(dict):
303
1083
  suggest = "sni_host"
304
1084
  elif key == "writeTimeout":
305
1085
  suggest = "write_timeout"
1086
+ elif key == "xffProto":
1087
+ suggest = "xff_proto"
306
1088
 
307
1089
  if suggest:
308
1090
  pulumi.log.warn(f"Key '{key}' not found in DomainRedirect. Access the value via the '{suggest}' property getter instead.")
@@ -318,6 +1100,7 @@ class DomainRedirect(dict):
318
1100
  def __init__(__self__, *,
319
1101
  loadbalance: _builtins.str,
320
1102
  backends: Optional[Sequence[_builtins.str]] = None,
1103
+ backup_backends: Optional[Sequence[_builtins.str]] = None,
321
1104
  connect_timeout: Optional[_builtins.int] = None,
322
1105
  focus_http_backend: Optional[_builtins.bool] = None,
323
1106
  keepalive: Optional[_builtins.bool] = None,
@@ -328,39 +1111,42 @@ class DomainRedirect(dict):
328
1111
  retry: Optional[_builtins.bool] = None,
329
1112
  sni_enabled: Optional[_builtins.bool] = None,
330
1113
  sni_host: Optional[_builtins.str] = None,
331
- write_timeout: Optional[_builtins.int] = None):
332
- """
333
- :param _builtins.str loadbalance: The load balancing algorithm used when returning to the source. Value:
334
- - **iphash**: indicates the IPHash algorithm.
335
- - **roundRobin**: indicates the polling algorithm.
336
- - **leastTime**: indicates the Least Time algorithm.
337
- - This value can be selected only if the value of **protection_resource** is **gslb** (indicating that the protected resource type uses shared cluster intelligent load balancing).
338
- :param Sequence[_builtins.str] backends: The IP address of the origin server corresponding to the domain name or the back-to-origin domain name of the server.
339
- :param _builtins.int connect_timeout: Connection timeout. Unit: seconds, value range: 5~120.
340
- :param _builtins.bool focus_http_backend: Whether to enable forced HTTP back-to-origin. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
341
- - **true**: indicates that forced HTTP back-to-origin is enabled.
342
- - **false**: indicates that forced HTTP back-to-origin is not enabled.
343
- :param _builtins.bool keepalive: Open long connection, default true.
344
- :param _builtins.int keepalive_requests: Number of long connections, default: `60`. range :60-1000.
345
- :param _builtins.int keepalive_timeout: Long connection over time, default: `15`. Range: 1-60.
346
- :param _builtins.int read_timeout: Read timeout duration. **Unit**: seconds, **Value range**: 5~1800.
347
- :param Sequence['DomainRedirectRequestHeaderArgs'] request_headers: The traffic tag field and value of the domain name which used to mark the traffic processed by WAF.
348
- It formats as `[{" k ":"_key_"," v ":"_value_"}]`. Where the `k` represents the specified custom request header field,
349
- and the `v` represents the value set for this field. By specifying the custom request header field and the corresponding value,
350
- when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value
351
- to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the
352
- custom header field already exists in the request, the system will overwrite the value of the custom field in the
353
- request with the set traffic tag value. See `request_headers` below.
354
- :param _builtins.bool retry: Back to Source Retry. default: true, retry 3 times by default.
355
- :param _builtins.bool sni_enabled: Whether to enable back-to-source SNI. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
356
- - **true**: indicates that the back-to-source SNI is enabled.
357
- - **false** (default) indicates that the back-to-source SNI is not enabled.
358
- :param _builtins.str sni_host: Sets the value of the custom SNI extension field. If this parameter is not set, the value of the **Host** field in the request header is used as the value of the SNI extension field by default.In general, you do not need to customize SNI unless your business has special configuration requirements. You want WAF to use SNI that is inconsistent with the actual request Host in the back-to-origin request (that is, the custom SNI set here).> This parameter is required only when **sni_enalbed** is set to **true** (indicating that back-to-source SNI is enabled).
359
- :param _builtins.int write_timeout: Write timeout duration> **Unit**: seconds, **Value range**: 5~1800.
1114
+ write_timeout: Optional[_builtins.int] = None,
1115
+ xff_proto: Optional[_builtins.bool] = None):
1116
+ """
1117
+ :param _builtins.str loadbalance: The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:
1118
+ :param Sequence[_builtins.str] backends: The IP addresses or domain names of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.
1119
+
1120
+ - If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.
1121
+ - If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.
1122
+ :param Sequence[_builtins.str] backup_backends: The secondary IP address or domain name of the origin server.
1123
+ :param _builtins.int connect_timeout: Connection timeout duration. Unit: seconds.
1124
+ Value range: 1~3600. Default value: 5.
1125
+ :param _builtins.bool focus_http_backend: Specifies whether to enable force redirect from HTTPS to HTTP for back-to-origin requests. This parameter is available only if you specify `HttpsPorts`. Valid values:
1126
+ :param _builtins.bool keepalive: Specifies whether to enable the persistent connection feature. Valid values:
1127
+ :param _builtins.int keepalive_requests: The number of reused persistent connections. Valid values: 60 to 1000. Default value: 1000
1128
+
1129
+
1130
+ > **NOTE:** This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.
1131
+ :param _builtins.int keepalive_timeout: Idle long connection timeout, value range: 1~60, default 15, unit: seconds.
1132
+
1133
+ > **NOTE:** How long the multiplexed long connection is idle and then released.
1134
+ :param _builtins.int read_timeout: The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
1135
+ :param Sequence['DomainRedirectRequestHeaderArgs'] request_headers: The traffic marking field and value of the domain name, which is used to mark the traffic processed by WAF.
1136
+ By specifying custom request header fields and corresponding values, when the access traffic of the domain name passes through WAF, WAF automatically adds the set custom field value to the request header as a traffic mark, which facilitates the statistics of back-end services. See `request_headers` below.
1137
+ :param _builtins.bool retry: Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:
1138
+ :param _builtins.bool sni_enabled: Specifies whether to enable the Server Name Indication (SNI) feature for back-to-origin requests. This parameter is available only if you specify `HttpsPorts`. Valid values:
1139
+ :param _builtins.str sni_host: The custom value of the SNI field. If you do not specify this parameter, the value of the `Host` header field is automatically used. In most cases, you do not need to specify a custom value for the SNI field. However, if you want WAF to use an SNI field whose value is different from the value of the Host header field in back-to-origin requests, you can specify a custom value for the SNI field.
1140
+
1141
+ > **NOTE:** This parameter is required only if you set `SniEnabled` to true.
1142
+ :param _builtins.int write_timeout: The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
1143
+ :param _builtins.bool xff_proto: Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:
360
1144
  """
361
1145
  pulumi.set(__self__, "loadbalance", loadbalance)
362
1146
  if backends is not None:
363
1147
  pulumi.set(__self__, "backends", backends)
1148
+ if backup_backends is not None:
1149
+ pulumi.set(__self__, "backup_backends", backup_backends)
364
1150
  if connect_timeout is not None:
365
1151
  pulumi.set(__self__, "connect_timeout", connect_timeout)
366
1152
  if focus_http_backend is not None:
@@ -383,16 +1169,14 @@ class DomainRedirect(dict):
383
1169
  pulumi.set(__self__, "sni_host", sni_host)
384
1170
  if write_timeout is not None:
385
1171
  pulumi.set(__self__, "write_timeout", write_timeout)
1172
+ if xff_proto is not None:
1173
+ pulumi.set(__self__, "xff_proto", xff_proto)
386
1174
 
387
1175
  @_builtins.property
388
1176
  @pulumi.getter
389
1177
  def loadbalance(self) -> _builtins.str:
390
1178
  """
391
- The load balancing algorithm used when returning to the source. Value:
392
- - **iphash**: indicates the IPHash algorithm.
393
- - **roundRobin**: indicates the polling algorithm.
394
- - **leastTime**: indicates the Least Time algorithm.
395
- - This value can be selected only if the value of **protection_resource** is **gslb** (indicating that the protected resource type uses shared cluster intelligent load balancing).
1179
+ The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:
396
1180
  """
397
1181
  return pulumi.get(self, "loadbalance")
398
1182
 
@@ -400,15 +1184,27 @@ class DomainRedirect(dict):
400
1184
  @pulumi.getter
401
1185
  def backends(self) -> Optional[Sequence[_builtins.str]]:
402
1186
  """
403
- The IP address of the origin server corresponding to the domain name or the back-to-origin domain name of the server.
1187
+ The IP addresses or domain names of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.
1188
+
1189
+ - If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.
1190
+ - If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.
404
1191
  """
405
1192
  return pulumi.get(self, "backends")
406
1193
 
1194
+ @_builtins.property
1195
+ @pulumi.getter(name="backupBackends")
1196
+ def backup_backends(self) -> Optional[Sequence[_builtins.str]]:
1197
+ """
1198
+ The secondary IP address or domain name of the origin server.
1199
+ """
1200
+ return pulumi.get(self, "backup_backends")
1201
+
407
1202
  @_builtins.property
408
1203
  @pulumi.getter(name="connectTimeout")
409
1204
  def connect_timeout(self) -> Optional[_builtins.int]:
410
1205
  """
411
- Connection timeout. Unit: seconds, value range: 5~120.
1206
+ Connection timeout duration. Unit: seconds.
1207
+ Value range: 1~3600. Default value: 5.
412
1208
  """
413
1209
  return pulumi.get(self, "connect_timeout")
414
1210
 
@@ -416,9 +1212,7 @@ class DomainRedirect(dict):
416
1212
  @pulumi.getter(name="focusHttpBackend")
417
1213
  def focus_http_backend(self) -> Optional[_builtins.bool]:
418
1214
  """
419
- Whether to enable forced HTTP back-to-origin. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
420
- - **true**: indicates that forced HTTP back-to-origin is enabled.
421
- - **false**: indicates that forced HTTP back-to-origin is not enabled.
1215
+ Specifies whether to enable force redirect from HTTPS to HTTP for back-to-origin requests. This parameter is available only if you specify `HttpsPorts`. Valid values:
422
1216
  """
423
1217
  return pulumi.get(self, "focus_http_backend")
424
1218
 
@@ -426,7 +1220,7 @@ class DomainRedirect(dict):
426
1220
  @pulumi.getter
427
1221
  def keepalive(self) -> Optional[_builtins.bool]:
428
1222
  """
429
- Open long connection, default true.
1223
+ Specifies whether to enable the persistent connection feature. Valid values:
430
1224
  """
431
1225
  return pulumi.get(self, "keepalive")
432
1226
 
@@ -434,7 +1228,10 @@ class DomainRedirect(dict):
434
1228
  @pulumi.getter(name="keepaliveRequests")
435
1229
  def keepalive_requests(self) -> Optional[_builtins.int]:
436
1230
  """
437
- Number of long connections, default: `60`. range :60-1000.
1231
+ The number of reused persistent connections. Valid values: 60 to 1000. Default value: 1000
1232
+
1233
+
1234
+ > **NOTE:** This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.
438
1235
  """
439
1236
  return pulumi.get(self, "keepalive_requests")
440
1237
 
@@ -442,7 +1239,9 @@ class DomainRedirect(dict):
442
1239
  @pulumi.getter(name="keepaliveTimeout")
443
1240
  def keepalive_timeout(self) -> Optional[_builtins.int]:
444
1241
  """
445
- Long connection over time, default: `15`. Range: 1-60.
1242
+ Idle long connection timeout, value range: 1~60, default 15, unit: seconds.
1243
+
1244
+ > **NOTE:** How long the multiplexed long connection is idle and then released.
446
1245
  """
447
1246
  return pulumi.get(self, "keepalive_timeout")
448
1247
 
@@ -450,7 +1249,7 @@ class DomainRedirect(dict):
450
1249
  @pulumi.getter(name="readTimeout")
451
1250
  def read_timeout(self) -> Optional[_builtins.int]:
452
1251
  """
453
- Read timeout duration. **Unit**: seconds, **Value range**: 5~1800.
1252
+ The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
454
1253
  """
455
1254
  return pulumi.get(self, "read_timeout")
456
1255
 
@@ -458,13 +1257,8 @@ class DomainRedirect(dict):
458
1257
  @pulumi.getter(name="requestHeaders")
459
1258
  def request_headers(self) -> Optional[Sequence['outputs.DomainRedirectRequestHeader']]:
460
1259
  """
461
- The traffic tag field and value of the domain name which used to mark the traffic processed by WAF.
462
- It formats as `[{" k ":"_key_"," v ":"_value_"}]`. Where the `k` represents the specified custom request header field,
463
- and the `v` represents the value set for this field. By specifying the custom request header field and the corresponding value,
464
- when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value
465
- to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the
466
- custom header field already exists in the request, the system will overwrite the value of the custom field in the
467
- request with the set traffic tag value. See `request_headers` below.
1260
+ The traffic marking field and value of the domain name, which is used to mark the traffic processed by WAF.
1261
+ By specifying custom request header fields and corresponding values, when the access traffic of the domain name passes through WAF, WAF automatically adds the set custom field value to the request header as a traffic mark, which facilitates the statistics of back-end services. See `request_headers` below.
468
1262
  """
469
1263
  return pulumi.get(self, "request_headers")
470
1264
 
@@ -472,7 +1266,7 @@ class DomainRedirect(dict):
472
1266
  @pulumi.getter
473
1267
  def retry(self) -> Optional[_builtins.bool]:
474
1268
  """
475
- Back to Source Retry. default: true, retry 3 times by default.
1269
+ Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:
476
1270
  """
477
1271
  return pulumi.get(self, "retry")
478
1272
 
@@ -480,9 +1274,7 @@ class DomainRedirect(dict):
480
1274
  @pulumi.getter(name="sniEnabled")
481
1275
  def sni_enabled(self) -> Optional[_builtins.bool]:
482
1276
  """
483
- Whether to enable back-to-source SNI. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol). Value:
484
- - **true**: indicates that the back-to-source SNI is enabled.
485
- - **false** (default) indicates that the back-to-source SNI is not enabled.
1277
+ Specifies whether to enable the Server Name Indication (SNI) feature for back-to-origin requests. This parameter is available only if you specify `HttpsPorts`. Valid values:
486
1278
  """
487
1279
  return pulumi.get(self, "sni_enabled")
488
1280
 
@@ -490,7 +1282,9 @@ class DomainRedirect(dict):
490
1282
  @pulumi.getter(name="sniHost")
491
1283
  def sni_host(self) -> Optional[_builtins.str]:
492
1284
  """
493
- Sets the value of the custom SNI extension field. If this parameter is not set, the value of the **Host** field in the request header is used as the value of the SNI extension field by default.In general, you do not need to customize SNI unless your business has special configuration requirements. You want WAF to use SNI that is inconsistent with the actual request Host in the back-to-origin request (that is, the custom SNI set here).> This parameter is required only when **sni_enalbed** is set to **true** (indicating that back-to-source SNI is enabled).
1285
+ The custom value of the SNI field. If you do not specify this parameter, the value of the `Host` header field is automatically used. In most cases, you do not need to specify a custom value for the SNI field. However, if you want WAF to use an SNI field whose value is different from the value of the Host header field in back-to-origin requests, you can specify a custom value for the SNI field.
1286
+
1287
+ > **NOTE:** This parameter is required only if you set `SniEnabled` to true.
494
1288
  """
495
1289
  return pulumi.get(self, "sni_host")
496
1290
 
@@ -498,10 +1292,18 @@ class DomainRedirect(dict):
498
1292
  @pulumi.getter(name="writeTimeout")
499
1293
  def write_timeout(self) -> Optional[_builtins.int]:
500
1294
  """
501
- Write timeout duration> **Unit**: seconds, **Value range**: 5~1800.
1295
+ The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
502
1296
  """
503
1297
  return pulumi.get(self, "write_timeout")
504
1298
 
1299
+ @_builtins.property
1300
+ @pulumi.getter(name="xffProto")
1301
+ def xff_proto(self) -> Optional[_builtins.bool]:
1302
+ """
1303
+ Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:
1304
+ """
1305
+ return pulumi.get(self, "xff_proto")
1306
+
505
1307
 
506
1308
  @pulumi.output_type
507
1309
  class DomainRedirectRequestHeader(dict):
@@ -509,8 +1311,8 @@ class DomainRedirectRequestHeader(dict):
509
1311
  key: Optional[_builtins.str] = None,
510
1312
  value: Optional[_builtins.str] = None):
511
1313
  """
512
- :param _builtins.str key: The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{" k ":"_key_"," v ":"_value_"}]**. where_key_represents the specified custom request header field, and_value_represents the value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.
513
- :param _builtins.str value: The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{" k ":"_key_"," v ":"_value_"}]**. where_key_represents the specified custom request header field, and_value_represents the value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.
1314
+ :param _builtins.str key: Specified custom request header fields
1315
+ :param _builtins.str value: Customize the value of the request header field.
514
1316
  """
515
1317
  if key is not None:
516
1318
  pulumi.set(__self__, "key", key)
@@ -521,7 +1323,7 @@ class DomainRedirectRequestHeader(dict):
521
1323
  @pulumi.getter
522
1324
  def key(self) -> Optional[_builtins.str]:
523
1325
  """
524
- The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{" k ":"_key_"," v ":"_value_"}]**. where_key_represents the specified custom request header field, and_value_represents the value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.
1326
+ Specified custom request header fields
525
1327
  """
526
1328
  return pulumi.get(self, "key")
527
1329
 
@@ -529,7 +1331,7 @@ class DomainRedirectRequestHeader(dict):
529
1331
  @pulumi.getter
530
1332
  def value(self) -> Optional[_builtins.str]:
531
1333
  """
532
- The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{" k ":"_key_"," v ":"_value_"}]**. where_key_represents the specified custom request header field, and_value_represents the value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.
1334
+ Customize the value of the request header field.
533
1335
  """
534
1336
  return pulumi.get(self, "value")
535
1337