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
@@ -15,6 +15,16 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'DefenseRuleConfigArgs',
19
+ 'DefenseRuleConfigArgsDict',
20
+ 'DefenseRuleConfigAccountIdentifierArgs',
21
+ 'DefenseRuleConfigAccountIdentifierArgsDict',
22
+ 'DefenseRuleConfigConditionArgs',
23
+ 'DefenseRuleConfigConditionArgsDict',
24
+ 'DefenseRuleConfigRateLimitArgs',
25
+ 'DefenseRuleConfigRateLimitArgsDict',
26
+ 'DefenseRuleConfigRateLimitStatusArgs',
27
+ 'DefenseRuleConfigRateLimitStatusArgsDict',
18
28
  'DomainListenArgs',
19
29
  'DomainListenArgsDict',
20
30
  'DomainRedirectArgs',
@@ -25,18 +35,1086 @@ __all__ = [
25
35
 
26
36
  MYPY = False
27
37
 
38
+ if not MYPY:
39
+ class DefenseRuleConfigArgsDict(TypedDict):
40
+ abroad_regions: NotRequired[pulumi.Input[_builtins.str]]
41
+ """
42
+ 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.
43
+ """
44
+ account_identifiers: NotRequired[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigAccountIdentifierArgsDict']]]]
45
+ """
46
+ 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.
47
+ """
48
+ bypass_regular_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
49
+ """
50
+ 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).
51
+ """
52
+ bypass_regular_types: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
53
+ """
54
+ 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:
55
+ - sqli: Indicates SQL injection.
56
+ - xss: Indicates cross-site scripting (XSS).
57
+ - cmdi: Indicates OS command injection.
58
+ - expression_injection: Indicates expression injection.
59
+ - java_deserialization: indicates Java deserialization.
60
+ - dot_net_deserialization: Represents. net deserialization.
61
+ - php_deserialization: indicates PHP deserialization.
62
+ - code_exec: Indicates code execution.
63
+ - ssrf: indicates SSRF (server-side request forgery).
64
+ - path_traversal: indicates a Path Traversal.
65
+ - arbitrary_file_uploading: Indicates to upload any file.
66
+ - webshell: Represents a webshell.
67
+ - rfilei: Indicates the remote file contains (RFI).
68
+ - lfilei: Indicates that the local file contains (LFI).
69
+ - protocol_violation: indicates a protocol violation.
70
+ - scanner_behavior: Indicates scanner behavior.
71
+ - logic_flaw: Indicates a business logic defect.
72
+ - arbitrary_file_reading: Indicates arbitrary file reading.
73
+ - arbitrary_file_download: Indicates an arbitrary file download.
74
+ - xxe: Indicates external entity injection.
75
+ - csrf: indicates cross-site request forgery.
76
+ - crlf: indicates CRLF.
77
+ - other: indicates other.
78
+ """
79
+ bypass_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
80
+ """
81
+ The modules to which the whitelist applies. The value is in the ["XX1", "XX2",...] format. Valid values:
82
+ - waf: indicates all modules.
83
+ - customrule: indicates custom rules.
84
+ - blacklist: indicates IP blacklist.
85
+ - antiscan: indicates scan protection.
86
+ - regular: indicates basic protection rules.
87
+ - regular_rule: indicates specific regular rules in basic protection.
88
+ - regular_type: indicates specific regular rule types in basic protection.
89
+ - major_protection: indicates major event support protection.
90
+ - cc: indicates CC protection.
91
+ - region_block: indicates Location Blacklist.
92
+ - antibot_scene: indicates BOT scenario protection.
93
+ - dlp: indicates information leakage prevention.
94
+ - tamperproof: indicates web tamper-proofing.
95
+ - spike_throttle: indicates peak traffic throttling.
96
+ """
97
+ cc_effect: NotRequired[pulumi.Input[_builtins.str]]
98
+ """
99
+ Set the effective range of the speed limit. This information is configured only when ccStatus is set to 1. Value:
100
+ - service: indicates that the effective object is a protected object.
101
+ - rule: indicates that the effective object is a single rule.
102
+ """
103
+ cc_status: NotRequired[pulumi.Input[_builtins.int]]
104
+ """
105
+ Whether to open the speed limit. Value:
106
+ - 0: indicates that the speed limit is off.
107
+ - 1: Indicates that the speed limit is on.
108
+ """
109
+ cn_regions: NotRequired[pulumi.Input[_builtins.str]]
110
+ """
111
+ 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.
112
+ """
113
+ conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigConditionArgsDict']]]]
114
+ """
115
+ 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.
116
+ """
117
+ mode: NotRequired[pulumi.Input[_builtins.int]]
118
+ """
119
+ The HTTP flood protection mode. Valid values:
120
+ - 0 (default): indicates normal protection.
121
+ - 1: indicates emergency protection.
122
+ """
123
+ protocol: NotRequired[pulumi.Input[_builtins.str]]
124
+ """
125
+ The protocol type of the cached page address. Valid values: http, https.
126
+ """
127
+ rate_limit: NotRequired[pulumi.Input['DefenseRuleConfigRateLimitArgsDict']]
128
+ """
129
+ 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.
130
+ """
131
+ remote_addrs: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
132
+ """
133
+ The IP addresses that you want to add to the blacklist. Specify the value of this parameter in the ["ip1","ip2",...] format.
134
+ """
135
+ rule_action: NotRequired[pulumi.Input[_builtins.str]]
136
+ """
137
+ Protection rule action. Value:
138
+ - block: Indicates an intercept.
139
+ - monitor: indicates observation.
140
+ - js: indicates JS validation.
141
+ - captcha: Indicates a slider.
142
+ - captcha_strict: indicates a strict slider.
143
+ - filter: filters sensitive information. This action applies only to scenarios that the Information leakage prevention rule include sensitive information match conditions.
144
+
145
+ > **NOTE:** For the supported protection rule actions, follow the rule actions displayed in the WAF console.
146
+ """
147
+ throttle_threhold: NotRequired[pulumi.Input[_builtins.int]]
148
+ """
149
+ The throttling threshold. Valid values:
150
+ - 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.
151
+ - 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.
152
+ """
153
+ throttle_type: NotRequired[pulumi.Input[_builtins.str]]
154
+ """
155
+ The throttling method. Valid values:
156
+ - qps: indicates throttling based on queries per second (QPS).
157
+ - ratio (default): indicates throttling based on percentage.
158
+ """
159
+ ua: NotRequired[pulumi.Input[_builtins.str]]
160
+ """
161
+ The User-Agent string that is allowed for access to the address.
162
+ """
163
+ url: NotRequired[pulumi.Input[_builtins.str]]
164
+ """
165
+ The address of the cached page.
166
+ """
167
+ elif False:
168
+ DefenseRuleConfigArgsDict: TypeAlias = Mapping[str, Any]
169
+
170
+ @pulumi.input_type
171
+ class DefenseRuleConfigArgs:
172
+ def __init__(__self__, *,
173
+ abroad_regions: Optional[pulumi.Input[_builtins.str]] = None,
174
+ account_identifiers: Optional[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigAccountIdentifierArgs']]]] = None,
175
+ bypass_regular_rules: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
176
+ bypass_regular_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
177
+ bypass_tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
178
+ cc_effect: Optional[pulumi.Input[_builtins.str]] = None,
179
+ cc_status: Optional[pulumi.Input[_builtins.int]] = None,
180
+ cn_regions: Optional[pulumi.Input[_builtins.str]] = None,
181
+ conditions: Optional[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigConditionArgs']]]] = None,
182
+ mode: Optional[pulumi.Input[_builtins.int]] = None,
183
+ protocol: Optional[pulumi.Input[_builtins.str]] = None,
184
+ rate_limit: Optional[pulumi.Input['DefenseRuleConfigRateLimitArgs']] = None,
185
+ remote_addrs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
186
+ rule_action: Optional[pulumi.Input[_builtins.str]] = None,
187
+ throttle_threhold: Optional[pulumi.Input[_builtins.int]] = None,
188
+ throttle_type: Optional[pulumi.Input[_builtins.str]] = None,
189
+ ua: Optional[pulumi.Input[_builtins.str]] = None,
190
+ url: Optional[pulumi.Input[_builtins.str]] = None):
191
+ """
192
+ :param pulumi.Input[_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.
193
+ :param pulumi.Input[Sequence[pulumi.Input['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.
194
+ :param pulumi.Input[Sequence[pulumi.Input[_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).
195
+ :param pulumi.Input[Sequence[pulumi.Input[_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:
196
+ - sqli: Indicates SQL injection.
197
+ - xss: Indicates cross-site scripting (XSS).
198
+ - cmdi: Indicates OS command injection.
199
+ - expression_injection: Indicates expression injection.
200
+ - java_deserialization: indicates Java deserialization.
201
+ - dot_net_deserialization: Represents. net deserialization.
202
+ - php_deserialization: indicates PHP deserialization.
203
+ - code_exec: Indicates code execution.
204
+ - ssrf: indicates SSRF (server-side request forgery).
205
+ - path_traversal: indicates a Path Traversal.
206
+ - arbitrary_file_uploading: Indicates to upload any file.
207
+ - webshell: Represents a webshell.
208
+ - rfilei: Indicates the remote file contains (RFI).
209
+ - lfilei: Indicates that the local file contains (LFI).
210
+ - protocol_violation: indicates a protocol violation.
211
+ - scanner_behavior: Indicates scanner behavior.
212
+ - logic_flaw: Indicates a business logic defect.
213
+ - arbitrary_file_reading: Indicates arbitrary file reading.
214
+ - arbitrary_file_download: Indicates an arbitrary file download.
215
+ - xxe: Indicates external entity injection.
216
+ - csrf: indicates cross-site request forgery.
217
+ - crlf: indicates CRLF.
218
+ - other: indicates other.
219
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] bypass_tags: The modules to which the whitelist applies. The value is in the ["XX1", "XX2",...] format. Valid values:
220
+ - waf: indicates all modules.
221
+ - customrule: indicates custom rules.
222
+ - blacklist: indicates IP blacklist.
223
+ - antiscan: indicates scan protection.
224
+ - regular: indicates basic protection rules.
225
+ - regular_rule: indicates specific regular rules in basic protection.
226
+ - regular_type: indicates specific regular rule types in basic protection.
227
+ - major_protection: indicates major event support protection.
228
+ - cc: indicates CC protection.
229
+ - region_block: indicates Location Blacklist.
230
+ - antibot_scene: indicates BOT scenario protection.
231
+ - dlp: indicates information leakage prevention.
232
+ - tamperproof: indicates web tamper-proofing.
233
+ - spike_throttle: indicates peak traffic throttling.
234
+ :param pulumi.Input[_builtins.str] cc_effect: Set the effective range of the speed limit. This information is configured only when ccStatus is set to 1. Value:
235
+ - service: indicates that the effective object is a protected object.
236
+ - rule: indicates that the effective object is a single rule.
237
+ :param pulumi.Input[_builtins.int] cc_status: Whether to open the speed limit. Value:
238
+ - 0: indicates that the speed limit is off.
239
+ - 1: Indicates that the speed limit is on.
240
+ :param pulumi.Input[_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.
241
+ :param pulumi.Input[Sequence[pulumi.Input['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.
242
+ :param pulumi.Input[_builtins.int] mode: The HTTP flood protection mode. Valid values:
243
+ - 0 (default): indicates normal protection.
244
+ - 1: indicates emergency protection.
245
+ :param pulumi.Input[_builtins.str] protocol: The protocol type of the cached page address. Valid values: http, https.
246
+ :param pulumi.Input['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.
247
+ :param pulumi.Input[Sequence[pulumi.Input[_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.
248
+ :param pulumi.Input[_builtins.str] rule_action: Protection rule action. Value:
249
+ - block: Indicates an intercept.
250
+ - monitor: indicates observation.
251
+ - js: indicates JS validation.
252
+ - captcha: Indicates a slider.
253
+ - captcha_strict: indicates a strict slider.
254
+ - filter: filters sensitive information. This action applies only to scenarios that the Information leakage prevention rule include sensitive information match conditions.
255
+
256
+ > **NOTE:** For the supported protection rule actions, follow the rule actions displayed in the WAF console.
257
+ :param pulumi.Input[_builtins.int] throttle_threhold: The throttling threshold. Valid values:
258
+ - 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.
259
+ - 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.
260
+ :param pulumi.Input[_builtins.str] throttle_type: The throttling method. Valid values:
261
+ - qps: indicates throttling based on queries per second (QPS).
262
+ - ratio (default): indicates throttling based on percentage.
263
+ :param pulumi.Input[_builtins.str] ua: The User-Agent string that is allowed for access to the address.
264
+ :param pulumi.Input[_builtins.str] url: The address of the cached page.
265
+ """
266
+ if abroad_regions is not None:
267
+ pulumi.set(__self__, "abroad_regions", abroad_regions)
268
+ if account_identifiers is not None:
269
+ pulumi.set(__self__, "account_identifiers", account_identifiers)
270
+ if bypass_regular_rules is not None:
271
+ pulumi.set(__self__, "bypass_regular_rules", bypass_regular_rules)
272
+ if bypass_regular_types is not None:
273
+ pulumi.set(__self__, "bypass_regular_types", bypass_regular_types)
274
+ if bypass_tags is not None:
275
+ pulumi.set(__self__, "bypass_tags", bypass_tags)
276
+ if cc_effect is not None:
277
+ pulumi.set(__self__, "cc_effect", cc_effect)
278
+ if cc_status is not None:
279
+ pulumi.set(__self__, "cc_status", cc_status)
280
+ if cn_regions is not None:
281
+ pulumi.set(__self__, "cn_regions", cn_regions)
282
+ if conditions is not None:
283
+ pulumi.set(__self__, "conditions", conditions)
284
+ if mode is not None:
285
+ pulumi.set(__self__, "mode", mode)
286
+ if protocol is not None:
287
+ pulumi.set(__self__, "protocol", protocol)
288
+ if rate_limit is not None:
289
+ pulumi.set(__self__, "rate_limit", rate_limit)
290
+ if remote_addrs is not None:
291
+ pulumi.set(__self__, "remote_addrs", remote_addrs)
292
+ if rule_action is not None:
293
+ pulumi.set(__self__, "rule_action", rule_action)
294
+ if throttle_threhold is not None:
295
+ pulumi.set(__self__, "throttle_threhold", throttle_threhold)
296
+ if throttle_type is not None:
297
+ pulumi.set(__self__, "throttle_type", throttle_type)
298
+ if ua is not None:
299
+ pulumi.set(__self__, "ua", ua)
300
+ if url is not None:
301
+ pulumi.set(__self__, "url", url)
302
+
303
+ @_builtins.property
304
+ @pulumi.getter(name="abroadRegions")
305
+ def abroad_regions(self) -> Optional[pulumi.Input[_builtins.str]]:
306
+ """
307
+ 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.
308
+ """
309
+ return pulumi.get(self, "abroad_regions")
310
+
311
+ @abroad_regions.setter
312
+ def abroad_regions(self, value: Optional[pulumi.Input[_builtins.str]]):
313
+ pulumi.set(self, "abroad_regions", value)
314
+
315
+ @_builtins.property
316
+ @pulumi.getter(name="accountIdentifiers")
317
+ def account_identifiers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigAccountIdentifierArgs']]]]:
318
+ """
319
+ 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.
320
+ """
321
+ return pulumi.get(self, "account_identifiers")
322
+
323
+ @account_identifiers.setter
324
+ def account_identifiers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigAccountIdentifierArgs']]]]):
325
+ pulumi.set(self, "account_identifiers", value)
326
+
327
+ @_builtins.property
328
+ @pulumi.getter(name="bypassRegularRules")
329
+ def bypass_regular_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
330
+ """
331
+ 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).
332
+ """
333
+ return pulumi.get(self, "bypass_regular_rules")
334
+
335
+ @bypass_regular_rules.setter
336
+ def bypass_regular_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
337
+ pulumi.set(self, "bypass_regular_rules", value)
338
+
339
+ @_builtins.property
340
+ @pulumi.getter(name="bypassRegularTypes")
341
+ def bypass_regular_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
342
+ """
343
+ 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:
344
+ - sqli: Indicates SQL injection.
345
+ - xss: Indicates cross-site scripting (XSS).
346
+ - cmdi: Indicates OS command injection.
347
+ - expression_injection: Indicates expression injection.
348
+ - java_deserialization: indicates Java deserialization.
349
+ - dot_net_deserialization: Represents. net deserialization.
350
+ - php_deserialization: indicates PHP deserialization.
351
+ - code_exec: Indicates code execution.
352
+ - ssrf: indicates SSRF (server-side request forgery).
353
+ - path_traversal: indicates a Path Traversal.
354
+ - arbitrary_file_uploading: Indicates to upload any file.
355
+ - webshell: Represents a webshell.
356
+ - rfilei: Indicates the remote file contains (RFI).
357
+ - lfilei: Indicates that the local file contains (LFI).
358
+ - protocol_violation: indicates a protocol violation.
359
+ - scanner_behavior: Indicates scanner behavior.
360
+ - logic_flaw: Indicates a business logic defect.
361
+ - arbitrary_file_reading: Indicates arbitrary file reading.
362
+ - arbitrary_file_download: Indicates an arbitrary file download.
363
+ - xxe: Indicates external entity injection.
364
+ - csrf: indicates cross-site request forgery.
365
+ - crlf: indicates CRLF.
366
+ - other: indicates other.
367
+ """
368
+ return pulumi.get(self, "bypass_regular_types")
369
+
370
+ @bypass_regular_types.setter
371
+ def bypass_regular_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
372
+ pulumi.set(self, "bypass_regular_types", value)
373
+
374
+ @_builtins.property
375
+ @pulumi.getter(name="bypassTags")
376
+ def bypass_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
377
+ """
378
+ The modules to which the whitelist applies. The value is in the ["XX1", "XX2",...] format. Valid values:
379
+ - waf: indicates all modules.
380
+ - customrule: indicates custom rules.
381
+ - blacklist: indicates IP blacklist.
382
+ - antiscan: indicates scan protection.
383
+ - regular: indicates basic protection rules.
384
+ - regular_rule: indicates specific regular rules in basic protection.
385
+ - regular_type: indicates specific regular rule types in basic protection.
386
+ - major_protection: indicates major event support protection.
387
+ - cc: indicates CC protection.
388
+ - region_block: indicates Location Blacklist.
389
+ - antibot_scene: indicates BOT scenario protection.
390
+ - dlp: indicates information leakage prevention.
391
+ - tamperproof: indicates web tamper-proofing.
392
+ - spike_throttle: indicates peak traffic throttling.
393
+ """
394
+ return pulumi.get(self, "bypass_tags")
395
+
396
+ @bypass_tags.setter
397
+ def bypass_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
398
+ pulumi.set(self, "bypass_tags", value)
399
+
400
+ @_builtins.property
401
+ @pulumi.getter(name="ccEffect")
402
+ def cc_effect(self) -> Optional[pulumi.Input[_builtins.str]]:
403
+ """
404
+ Set the effective range of the speed limit. This information is configured only when ccStatus is set to 1. Value:
405
+ - service: indicates that the effective object is a protected object.
406
+ - rule: indicates that the effective object is a single rule.
407
+ """
408
+ return pulumi.get(self, "cc_effect")
409
+
410
+ @cc_effect.setter
411
+ def cc_effect(self, value: Optional[pulumi.Input[_builtins.str]]):
412
+ pulumi.set(self, "cc_effect", value)
413
+
414
+ @_builtins.property
415
+ @pulumi.getter(name="ccStatus")
416
+ def cc_status(self) -> Optional[pulumi.Input[_builtins.int]]:
417
+ """
418
+ Whether to open the speed limit. Value:
419
+ - 0: indicates that the speed limit is off.
420
+ - 1: Indicates that the speed limit is on.
421
+ """
422
+ return pulumi.get(self, "cc_status")
423
+
424
+ @cc_status.setter
425
+ def cc_status(self, value: Optional[pulumi.Input[_builtins.int]]):
426
+ pulumi.set(self, "cc_status", value)
427
+
428
+ @_builtins.property
429
+ @pulumi.getter(name="cnRegions")
430
+ def cn_regions(self) -> Optional[pulumi.Input[_builtins.str]]:
431
+ """
432
+ 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.
433
+ """
434
+ return pulumi.get(self, "cn_regions")
435
+
436
+ @cn_regions.setter
437
+ def cn_regions(self, value: Optional[pulumi.Input[_builtins.str]]):
438
+ pulumi.set(self, "cn_regions", value)
439
+
440
+ @_builtins.property
441
+ @pulumi.getter
442
+ def conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigConditionArgs']]]]:
443
+ """
444
+ 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.
445
+ """
446
+ return pulumi.get(self, "conditions")
447
+
448
+ @conditions.setter
449
+ def conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DefenseRuleConfigConditionArgs']]]]):
450
+ pulumi.set(self, "conditions", value)
451
+
452
+ @_builtins.property
453
+ @pulumi.getter
454
+ def mode(self) -> Optional[pulumi.Input[_builtins.int]]:
455
+ """
456
+ The HTTP flood protection mode. Valid values:
457
+ - 0 (default): indicates normal protection.
458
+ - 1: indicates emergency protection.
459
+ """
460
+ return pulumi.get(self, "mode")
461
+
462
+ @mode.setter
463
+ def mode(self, value: Optional[pulumi.Input[_builtins.int]]):
464
+ pulumi.set(self, "mode", value)
465
+
466
+ @_builtins.property
467
+ @pulumi.getter
468
+ def protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
469
+ """
470
+ The protocol type of the cached page address. Valid values: http, https.
471
+ """
472
+ return pulumi.get(self, "protocol")
473
+
474
+ @protocol.setter
475
+ def protocol(self, value: Optional[pulumi.Input[_builtins.str]]):
476
+ pulumi.set(self, "protocol", value)
477
+
478
+ @_builtins.property
479
+ @pulumi.getter(name="rateLimit")
480
+ def rate_limit(self) -> Optional[pulumi.Input['DefenseRuleConfigRateLimitArgs']]:
481
+ """
482
+ 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.
483
+ """
484
+ return pulumi.get(self, "rate_limit")
485
+
486
+ @rate_limit.setter
487
+ def rate_limit(self, value: Optional[pulumi.Input['DefenseRuleConfigRateLimitArgs']]):
488
+ pulumi.set(self, "rate_limit", value)
489
+
490
+ @_builtins.property
491
+ @pulumi.getter(name="remoteAddrs")
492
+ def remote_addrs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
493
+ """
494
+ The IP addresses that you want to add to the blacklist. Specify the value of this parameter in the ["ip1","ip2",...] format.
495
+ """
496
+ return pulumi.get(self, "remote_addrs")
497
+
498
+ @remote_addrs.setter
499
+ def remote_addrs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
500
+ pulumi.set(self, "remote_addrs", value)
501
+
502
+ @_builtins.property
503
+ @pulumi.getter(name="ruleAction")
504
+ def rule_action(self) -> Optional[pulumi.Input[_builtins.str]]:
505
+ """
506
+ Protection rule action. Value:
507
+ - block: Indicates an intercept.
508
+ - monitor: indicates observation.
509
+ - js: indicates JS validation.
510
+ - captcha: Indicates a slider.
511
+ - captcha_strict: indicates a strict slider.
512
+ - filter: filters sensitive information. This action applies only to scenarios that the Information leakage prevention rule include sensitive information match conditions.
513
+
514
+ > **NOTE:** For the supported protection rule actions, follow the rule actions displayed in the WAF console.
515
+ """
516
+ return pulumi.get(self, "rule_action")
517
+
518
+ @rule_action.setter
519
+ def rule_action(self, value: Optional[pulumi.Input[_builtins.str]]):
520
+ pulumi.set(self, "rule_action", value)
521
+
522
+ @_builtins.property
523
+ @pulumi.getter(name="throttleThrehold")
524
+ def throttle_threhold(self) -> Optional[pulumi.Input[_builtins.int]]:
525
+ """
526
+ The throttling threshold. Valid values:
527
+ - 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.
528
+ - 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.
529
+ """
530
+ return pulumi.get(self, "throttle_threhold")
531
+
532
+ @throttle_threhold.setter
533
+ def throttle_threhold(self, value: Optional[pulumi.Input[_builtins.int]]):
534
+ pulumi.set(self, "throttle_threhold", value)
535
+
536
+ @_builtins.property
537
+ @pulumi.getter(name="throttleType")
538
+ def throttle_type(self) -> Optional[pulumi.Input[_builtins.str]]:
539
+ """
540
+ The throttling method. Valid values:
541
+ - qps: indicates throttling based on queries per second (QPS).
542
+ - ratio (default): indicates throttling based on percentage.
543
+ """
544
+ return pulumi.get(self, "throttle_type")
545
+
546
+ @throttle_type.setter
547
+ def throttle_type(self, value: Optional[pulumi.Input[_builtins.str]]):
548
+ pulumi.set(self, "throttle_type", value)
549
+
550
+ @_builtins.property
551
+ @pulumi.getter
552
+ def ua(self) -> Optional[pulumi.Input[_builtins.str]]:
553
+ """
554
+ The User-Agent string that is allowed for access to the address.
555
+ """
556
+ return pulumi.get(self, "ua")
557
+
558
+ @ua.setter
559
+ def ua(self, value: Optional[pulumi.Input[_builtins.str]]):
560
+ pulumi.set(self, "ua", value)
561
+
562
+ @_builtins.property
563
+ @pulumi.getter
564
+ def url(self) -> Optional[pulumi.Input[_builtins.str]]:
565
+ """
566
+ The address of the cached page.
567
+ """
568
+ return pulumi.get(self, "url")
569
+
570
+ @url.setter
571
+ def url(self, value: Optional[pulumi.Input[_builtins.str]]):
572
+ pulumi.set(self, "url", value)
573
+
574
+
575
+ if not MYPY:
576
+ class DefenseRuleConfigAccountIdentifierArgsDict(TypedDict):
577
+ decode_type: NotRequired[pulumi.Input[_builtins.str]]
578
+ """
579
+ The authentication mode. Valid values:
580
+ - plain: indicates plaintext.
581
+ - basic: indicates Basic authentication.
582
+ - jwt: indicates JWT authentication. For JWT authentication, you must specify the field that stores the decoded account information (position).
583
+ """
584
+ key: NotRequired[pulumi.Input[_builtins.str]]
585
+ """
586
+ 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.
587
+
588
+ > **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).
589
+ """
590
+ position: NotRequired[pulumi.Input[_builtins.str]]
591
+ """
592
+ The field that stores the decoded account information.
593
+ """
594
+ priority: NotRequired[pulumi.Input[_builtins.int]]
595
+ """
596
+ 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.
597
+ """
598
+ sub_key: NotRequired[pulumi.Input[_builtins.str]]
599
+ """
600
+ 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.
601
+ """
602
+ elif False:
603
+ DefenseRuleConfigAccountIdentifierArgsDict: TypeAlias = Mapping[str, Any]
604
+
605
+ @pulumi.input_type
606
+ class DefenseRuleConfigAccountIdentifierArgs:
607
+ def __init__(__self__, *,
608
+ decode_type: Optional[pulumi.Input[_builtins.str]] = None,
609
+ key: Optional[pulumi.Input[_builtins.str]] = None,
610
+ position: Optional[pulumi.Input[_builtins.str]] = None,
611
+ priority: Optional[pulumi.Input[_builtins.int]] = None,
612
+ sub_key: Optional[pulumi.Input[_builtins.str]] = None):
613
+ """
614
+ :param pulumi.Input[_builtins.str] decode_type: The authentication mode. Valid values:
615
+ - plain: indicates plaintext.
616
+ - basic: indicates Basic authentication.
617
+ - jwt: indicates JWT authentication. For JWT authentication, you must specify the field that stores the decoded account information (position).
618
+ :param pulumi.Input[_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.
619
+
620
+ > **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).
621
+ :param pulumi.Input[_builtins.str] position: The field that stores the decoded account information.
622
+ :param pulumi.Input[_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.
623
+ :param pulumi.Input[_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.
624
+ """
625
+ if decode_type is not None:
626
+ pulumi.set(__self__, "decode_type", decode_type)
627
+ if key is not None:
628
+ pulumi.set(__self__, "key", key)
629
+ if position is not None:
630
+ pulumi.set(__self__, "position", position)
631
+ if priority is not None:
632
+ pulumi.set(__self__, "priority", priority)
633
+ if sub_key is not None:
634
+ pulumi.set(__self__, "sub_key", sub_key)
635
+
636
+ @_builtins.property
637
+ @pulumi.getter(name="decodeType")
638
+ def decode_type(self) -> Optional[pulumi.Input[_builtins.str]]:
639
+ """
640
+ The authentication mode. Valid values:
641
+ - plain: indicates plaintext.
642
+ - basic: indicates Basic authentication.
643
+ - jwt: indicates JWT authentication. For JWT authentication, you must specify the field that stores the decoded account information (position).
644
+ """
645
+ return pulumi.get(self, "decode_type")
646
+
647
+ @decode_type.setter
648
+ def decode_type(self, value: Optional[pulumi.Input[_builtins.str]]):
649
+ pulumi.set(self, "decode_type", value)
650
+
651
+ @_builtins.property
652
+ @pulumi.getter
653
+ def key(self) -> Optional[pulumi.Input[_builtins.str]]:
654
+ """
655
+ 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.
656
+
657
+ > **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).
658
+ """
659
+ return pulumi.get(self, "key")
660
+
661
+ @key.setter
662
+ def key(self, value: Optional[pulumi.Input[_builtins.str]]):
663
+ pulumi.set(self, "key", value)
664
+
665
+ @_builtins.property
666
+ @pulumi.getter
667
+ def position(self) -> Optional[pulumi.Input[_builtins.str]]:
668
+ """
669
+ The field that stores the decoded account information.
670
+ """
671
+ return pulumi.get(self, "position")
672
+
673
+ @position.setter
674
+ def position(self, value: Optional[pulumi.Input[_builtins.str]]):
675
+ pulumi.set(self, "position", value)
676
+
677
+ @_builtins.property
678
+ @pulumi.getter
679
+ def priority(self) -> Optional[pulumi.Input[_builtins.int]]:
680
+ """
681
+ 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.
682
+ """
683
+ return pulumi.get(self, "priority")
684
+
685
+ @priority.setter
686
+ def priority(self, value: Optional[pulumi.Input[_builtins.int]]):
687
+ pulumi.set(self, "priority", value)
688
+
689
+ @_builtins.property
690
+ @pulumi.getter(name="subKey")
691
+ def sub_key(self) -> Optional[pulumi.Input[_builtins.str]]:
692
+ """
693
+ 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.
694
+ """
695
+ return pulumi.get(self, "sub_key")
696
+
697
+ @sub_key.setter
698
+ def sub_key(self, value: Optional[pulumi.Input[_builtins.str]]):
699
+ pulumi.set(self, "sub_key", value)
700
+
701
+
702
+ if not MYPY:
703
+ class DefenseRuleConfigConditionArgsDict(TypedDict):
704
+ key: NotRequired[pulumi.Input[_builtins.str]]
705
+ """
706
+ 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.
707
+
708
+ > **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).
709
+ """
710
+ op_value: NotRequired[pulumi.Input[_builtins.str]]
711
+ """
712
+ Logical character. Value:
713
+ - not-contain: does not contain.
714
+ - contain: Indicates to contain.
715
+ - none: It does not exist.
716
+ - ne: means not equal.
717
+ - eq: means equal.
718
+ - lt: indicates that the value is less.
719
+ - gt: indicates that the value is greater.
720
+ - len-lt: indicates that the length is less.
721
+ - len-eq: indicates that the length is equal.
722
+ - len-gt: indicates that the length is greater.
723
+ - not-match: indicates a mismatch.
724
+ - match-one: means equal to one of the multiple values.
725
+ - all-not-match: means not equal to any value.
726
+ - all-not-contain: does not contain any value.
727
+ - contain-one: Indicates that one of the multiple values is contained.
728
+ - not-regex: Indicates a regular mismatch.
729
+ - regex: Indicates a regular match.
730
+ - all-not-regex: indicates that the regular expressions do not match.
731
+ - regex-one: Represents a regular match for one of them.
732
+ - prefix-match: Indicates a prefix match.
733
+ - suffix-match: indicates a suffix match.
734
+ - mpty: Indicates that the content is empty.
735
+ - exists: Indicates that the field exists.
736
+ - inl: indicates in the list.
737
+
738
+ > **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.
739
+ """
740
+ sub_key: NotRequired[pulumi.Input[_builtins.str]]
741
+ """
742
+ 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.
743
+ """
744
+ values: NotRequired[pulumi.Input[_builtins.str]]
745
+ """
746
+ Match the content and fill in the corresponding content as needed.
747
+
748
+ > **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).
749
+ """
750
+ elif False:
751
+ DefenseRuleConfigConditionArgsDict: TypeAlias = Mapping[str, Any]
752
+
753
+ @pulumi.input_type
754
+ class DefenseRuleConfigConditionArgs:
755
+ def __init__(__self__, *,
756
+ key: Optional[pulumi.Input[_builtins.str]] = None,
757
+ op_value: Optional[pulumi.Input[_builtins.str]] = None,
758
+ sub_key: Optional[pulumi.Input[_builtins.str]] = None,
759
+ values: Optional[pulumi.Input[_builtins.str]] = None):
760
+ """
761
+ :param pulumi.Input[_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.
762
+
763
+ > **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).
764
+ :param pulumi.Input[_builtins.str] op_value: Logical character. Value:
765
+ - not-contain: does not contain.
766
+ - contain: Indicates to contain.
767
+ - none: It does not exist.
768
+ - ne: means not equal.
769
+ - eq: means equal.
770
+ - lt: indicates that the value is less.
771
+ - gt: indicates that the value is greater.
772
+ - len-lt: indicates that the length is less.
773
+ - len-eq: indicates that the length is equal.
774
+ - len-gt: indicates that the length is greater.
775
+ - not-match: indicates a mismatch.
776
+ - match-one: means equal to one of the multiple values.
777
+ - all-not-match: means not equal to any value.
778
+ - all-not-contain: does not contain any value.
779
+ - contain-one: Indicates that one of the multiple values is contained.
780
+ - not-regex: Indicates a regular mismatch.
781
+ - regex: Indicates a regular match.
782
+ - all-not-regex: indicates that the regular expressions do not match.
783
+ - regex-one: Represents a regular match for one of them.
784
+ - prefix-match: Indicates a prefix match.
785
+ - suffix-match: indicates a suffix match.
786
+ - mpty: Indicates that the content is empty.
787
+ - exists: Indicates that the field exists.
788
+ - inl: indicates in the list.
789
+
790
+ > **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.
791
+ :param pulumi.Input[_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.
792
+ :param pulumi.Input[_builtins.str] values: Match the content and fill in the corresponding content as needed.
793
+
794
+ > **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).
795
+ """
796
+ if key is not None:
797
+ pulumi.set(__self__, "key", key)
798
+ if op_value is not None:
799
+ pulumi.set(__self__, "op_value", op_value)
800
+ if sub_key is not None:
801
+ pulumi.set(__self__, "sub_key", sub_key)
802
+ if values is not None:
803
+ pulumi.set(__self__, "values", values)
804
+
805
+ @_builtins.property
806
+ @pulumi.getter
807
+ def key(self) -> Optional[pulumi.Input[_builtins.str]]:
808
+ """
809
+ 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.
810
+
811
+ > **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).
812
+ """
813
+ return pulumi.get(self, "key")
814
+
815
+ @key.setter
816
+ def key(self, value: Optional[pulumi.Input[_builtins.str]]):
817
+ pulumi.set(self, "key", value)
818
+
819
+ @_builtins.property
820
+ @pulumi.getter(name="opValue")
821
+ def op_value(self) -> Optional[pulumi.Input[_builtins.str]]:
822
+ """
823
+ Logical character. Value:
824
+ - not-contain: does not contain.
825
+ - contain: Indicates to contain.
826
+ - none: It does not exist.
827
+ - ne: means not equal.
828
+ - eq: means equal.
829
+ - lt: indicates that the value is less.
830
+ - gt: indicates that the value is greater.
831
+ - len-lt: indicates that the length is less.
832
+ - len-eq: indicates that the length is equal.
833
+ - len-gt: indicates that the length is greater.
834
+ - not-match: indicates a mismatch.
835
+ - match-one: means equal to one of the multiple values.
836
+ - all-not-match: means not equal to any value.
837
+ - all-not-contain: does not contain any value.
838
+ - contain-one: Indicates that one of the multiple values is contained.
839
+ - not-regex: Indicates a regular mismatch.
840
+ - regex: Indicates a regular match.
841
+ - all-not-regex: indicates that the regular expressions do not match.
842
+ - regex-one: Represents a regular match for one of them.
843
+ - prefix-match: Indicates a prefix match.
844
+ - suffix-match: indicates a suffix match.
845
+ - mpty: Indicates that the content is empty.
846
+ - exists: Indicates that the field exists.
847
+ - inl: indicates in the list.
848
+
849
+ > **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.
850
+ """
851
+ return pulumi.get(self, "op_value")
852
+
853
+ @op_value.setter
854
+ def op_value(self, value: Optional[pulumi.Input[_builtins.str]]):
855
+ pulumi.set(self, "op_value", value)
856
+
857
+ @_builtins.property
858
+ @pulumi.getter(name="subKey")
859
+ def sub_key(self) -> Optional[pulumi.Input[_builtins.str]]:
860
+ """
861
+ 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.
862
+ """
863
+ return pulumi.get(self, "sub_key")
864
+
865
+ @sub_key.setter
866
+ def sub_key(self, value: Optional[pulumi.Input[_builtins.str]]):
867
+ pulumi.set(self, "sub_key", value)
868
+
869
+ @_builtins.property
870
+ @pulumi.getter
871
+ def values(self) -> Optional[pulumi.Input[_builtins.str]]:
872
+ """
873
+ Match the content and fill in the corresponding content as needed.
874
+
875
+ > **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).
876
+ """
877
+ return pulumi.get(self, "values")
878
+
879
+ @values.setter
880
+ def values(self, value: Optional[pulumi.Input[_builtins.str]]):
881
+ pulumi.set(self, "values", value)
882
+
883
+
884
+ if not MYPY:
885
+ class DefenseRuleConfigRateLimitArgsDict(TypedDict):
886
+ interval: NotRequired[pulumi.Input[_builtins.int]]
887
+ """
888
+ The statistical period, in seconds. This parameter specifies the period during which access counts are collected, and works with the Threshold parameter.
889
+ Valid values: 1 to 1800 seconds.
890
+ """
891
+ status: NotRequired[pulumi.Input['DefenseRuleConfigRateLimitStatusArgsDict']]
892
+ """
893
+ Response code frequency setting. The description is in the JSON string format. See `status` below.
894
+ """
895
+ sub_key: NotRequired[pulumi.Input[_builtins.str]]
896
+ """
897
+ 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.
898
+ """
899
+ target: NotRequired[pulumi.Input[_builtins.str]]
900
+ """
901
+ The type of the statistical object. Valid values:
902
+ - remote_addr (default): indicates IP.
903
+ - cookie.acw_tc: indicates session.
904
+ - header: indicates custom header. If you use custom headers, you must specify the headers in subkey.
905
+ - queryarg: indicates custom parameters. If you use custom parameters, you must specify the parameters in subkey.
906
+ - cookie: indicates custom cookies. If you use custom cookies, you must specify the cookies in subkey.
907
+ """
908
+ threshold: NotRequired[pulumi.Input[_builtins.int]]
909
+ """
910
+ The maximum number of requests that can be sent from a statistical object.
911
+ """
912
+ ttl: NotRequired[pulumi.Input[_builtins.int]]
913
+ """
914
+ The period of time during which you want the specified action to be valid. Unit: seconds.
915
+ Valid values: 60 to 86400.
916
+ """
917
+ elif False:
918
+ DefenseRuleConfigRateLimitArgsDict: TypeAlias = Mapping[str, Any]
919
+
920
+ @pulumi.input_type
921
+ class DefenseRuleConfigRateLimitArgs:
922
+ def __init__(__self__, *,
923
+ interval: Optional[pulumi.Input[_builtins.int]] = None,
924
+ status: Optional[pulumi.Input['DefenseRuleConfigRateLimitStatusArgs']] = None,
925
+ sub_key: Optional[pulumi.Input[_builtins.str]] = None,
926
+ target: Optional[pulumi.Input[_builtins.str]] = None,
927
+ threshold: Optional[pulumi.Input[_builtins.int]] = None,
928
+ ttl: Optional[pulumi.Input[_builtins.int]] = None):
929
+ """
930
+ :param pulumi.Input[_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.
931
+ Valid values: 1 to 1800 seconds.
932
+ :param pulumi.Input['DefenseRuleConfigRateLimitStatusArgs'] status: Response code frequency setting. The description is in the JSON string format. See `status` below.
933
+ :param pulumi.Input[_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.
934
+ :param pulumi.Input[_builtins.str] target: The type of the statistical object. Valid values:
935
+ - remote_addr (default): indicates IP.
936
+ - cookie.acw_tc: indicates session.
937
+ - header: indicates custom header. If you use custom headers, you must specify the headers in subkey.
938
+ - queryarg: indicates custom parameters. If you use custom parameters, you must specify the parameters in subkey.
939
+ - cookie: indicates custom cookies. If you use custom cookies, you must specify the cookies in subkey.
940
+ :param pulumi.Input[_builtins.int] threshold: The maximum number of requests that can be sent from a statistical object.
941
+ :param pulumi.Input[_builtins.int] ttl: The period of time during which you want the specified action to be valid. Unit: seconds.
942
+ Valid values: 60 to 86400.
943
+ """
944
+ if interval is not None:
945
+ pulumi.set(__self__, "interval", interval)
946
+ if status is not None:
947
+ pulumi.set(__self__, "status", status)
948
+ if sub_key is not None:
949
+ pulumi.set(__self__, "sub_key", sub_key)
950
+ if target is not None:
951
+ pulumi.set(__self__, "target", target)
952
+ if threshold is not None:
953
+ pulumi.set(__self__, "threshold", threshold)
954
+ if ttl is not None:
955
+ pulumi.set(__self__, "ttl", ttl)
956
+
957
+ @_builtins.property
958
+ @pulumi.getter
959
+ def interval(self) -> Optional[pulumi.Input[_builtins.int]]:
960
+ """
961
+ The statistical period, in seconds. This parameter specifies the period during which access counts are collected, and works with the Threshold parameter.
962
+ Valid values: 1 to 1800 seconds.
963
+ """
964
+ return pulumi.get(self, "interval")
965
+
966
+ @interval.setter
967
+ def interval(self, value: Optional[pulumi.Input[_builtins.int]]):
968
+ pulumi.set(self, "interval", value)
969
+
970
+ @_builtins.property
971
+ @pulumi.getter
972
+ def status(self) -> Optional[pulumi.Input['DefenseRuleConfigRateLimitStatusArgs']]:
973
+ """
974
+ Response code frequency setting. The description is in the JSON string format. See `status` below.
975
+ """
976
+ return pulumi.get(self, "status")
977
+
978
+ @status.setter
979
+ def status(self, value: Optional[pulumi.Input['DefenseRuleConfigRateLimitStatusArgs']]):
980
+ pulumi.set(self, "status", value)
981
+
982
+ @_builtins.property
983
+ @pulumi.getter(name="subKey")
984
+ def sub_key(self) -> Optional[pulumi.Input[_builtins.str]]:
985
+ """
986
+ 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.
987
+ """
988
+ return pulumi.get(self, "sub_key")
989
+
990
+ @sub_key.setter
991
+ def sub_key(self, value: Optional[pulumi.Input[_builtins.str]]):
992
+ pulumi.set(self, "sub_key", value)
993
+
994
+ @_builtins.property
995
+ @pulumi.getter
996
+ def target(self) -> Optional[pulumi.Input[_builtins.str]]:
997
+ """
998
+ The type of the statistical object. Valid values:
999
+ - remote_addr (default): indicates IP.
1000
+ - cookie.acw_tc: indicates session.
1001
+ - header: indicates custom header. If you use custom headers, you must specify the headers in subkey.
1002
+ - queryarg: indicates custom parameters. If you use custom parameters, you must specify the parameters in subkey.
1003
+ - cookie: indicates custom cookies. If you use custom cookies, you must specify the cookies in subkey.
1004
+ """
1005
+ return pulumi.get(self, "target")
1006
+
1007
+ @target.setter
1008
+ def target(self, value: Optional[pulumi.Input[_builtins.str]]):
1009
+ pulumi.set(self, "target", value)
1010
+
1011
+ @_builtins.property
1012
+ @pulumi.getter
1013
+ def threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
1014
+ """
1015
+ The maximum number of requests that can be sent from a statistical object.
1016
+ """
1017
+ return pulumi.get(self, "threshold")
1018
+
1019
+ @threshold.setter
1020
+ def threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
1021
+ pulumi.set(self, "threshold", value)
1022
+
1023
+ @_builtins.property
1024
+ @pulumi.getter
1025
+ def ttl(self) -> Optional[pulumi.Input[_builtins.int]]:
1026
+ """
1027
+ The period of time during which you want the specified action to be valid. Unit: seconds.
1028
+ Valid values: 60 to 86400.
1029
+ """
1030
+ return pulumi.get(self, "ttl")
1031
+
1032
+ @ttl.setter
1033
+ def ttl(self, value: Optional[pulumi.Input[_builtins.int]]):
1034
+ pulumi.set(self, "ttl", value)
1035
+
1036
+
1037
+ if not MYPY:
1038
+ class DefenseRuleConfigRateLimitStatusArgsDict(TypedDict):
1039
+ code: NotRequired[pulumi.Input[_builtins.int]]
1040
+ """
1041
+ Required. Specifies the response code.
1042
+ """
1043
+ count: NotRequired[pulumi.Input[_builtins.int]]
1044
+ """
1045
+ 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.
1046
+ """
1047
+ ratio: NotRequired[pulumi.Input[_builtins.int]]
1048
+ """
1049
+ 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.
1050
+ """
1051
+ elif False:
1052
+ DefenseRuleConfigRateLimitStatusArgsDict: TypeAlias = Mapping[str, Any]
1053
+
1054
+ @pulumi.input_type
1055
+ class DefenseRuleConfigRateLimitStatusArgs:
1056
+ def __init__(__self__, *,
1057
+ code: Optional[pulumi.Input[_builtins.int]] = None,
1058
+ count: Optional[pulumi.Input[_builtins.int]] = None,
1059
+ ratio: Optional[pulumi.Input[_builtins.int]] = None):
1060
+ """
1061
+ :param pulumi.Input[_builtins.int] code: Required. Specifies the response code.
1062
+ :param pulumi.Input[_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.
1063
+ :param pulumi.Input[_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.
1064
+ """
1065
+ if code is not None:
1066
+ pulumi.set(__self__, "code", code)
1067
+ if count is not None:
1068
+ pulumi.set(__self__, "count", count)
1069
+ if ratio is not None:
1070
+ pulumi.set(__self__, "ratio", ratio)
1071
+
1072
+ @_builtins.property
1073
+ @pulumi.getter
1074
+ def code(self) -> Optional[pulumi.Input[_builtins.int]]:
1075
+ """
1076
+ Required. Specifies the response code.
1077
+ """
1078
+ return pulumi.get(self, "code")
1079
+
1080
+ @code.setter
1081
+ def code(self, value: Optional[pulumi.Input[_builtins.int]]):
1082
+ pulumi.set(self, "code", value)
1083
+
1084
+ @_builtins.property
1085
+ @pulumi.getter
1086
+ def count(self) -> Optional[pulumi.Input[_builtins.int]]:
1087
+ """
1088
+ 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.
1089
+ """
1090
+ return pulumi.get(self, "count")
1091
+
1092
+ @count.setter
1093
+ def count(self, value: Optional[pulumi.Input[_builtins.int]]):
1094
+ pulumi.set(self, "count", value)
1095
+
1096
+ @_builtins.property
1097
+ @pulumi.getter
1098
+ def ratio(self) -> Optional[pulumi.Input[_builtins.int]]:
1099
+ """
1100
+ 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.
1101
+ """
1102
+ return pulumi.get(self, "ratio")
1103
+
1104
+ @ratio.setter
1105
+ def ratio(self, value: Optional[pulumi.Input[_builtins.int]]):
1106
+ pulumi.set(self, "ratio", value)
1107
+
1108
+
28
1109
  if not MYPY:
29
1110
  class DomainListenArgsDict(TypedDict):
30
1111
  cert_id: NotRequired[pulumi.Input[_builtins.str]]
31
1112
  """
32
- 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).
1113
+ 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).
33
1114
  """
34
1115
  cipher_suite: NotRequired[pulumi.Input[_builtins.int]]
35
1116
  """
36
- 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:
37
- - **1**: indicates that all encryption suites are added.
38
- - **2**: indicates that a strong encryption package is added. You can select this value only if the value of **tls_version** is `tlsv1.2`.
39
- - **99**: indicates that a custom encryption suite is added.
1117
+ The type of the cipher suites that you want to add. This parameter is available only if you specify `HttpsPorts`. Valid values:
40
1118
  """
41
1119
  custom_ciphers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
42
1120
  """
@@ -44,62 +1122,64 @@ if not MYPY:
44
1122
  """
45
1123
  enable_tlsv3: NotRequired[pulumi.Input[_builtins.bool]]
46
1124
  """
47
- 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:
48
- - **true**: indicates that TSL1.3 is supported.
49
- - **false**: indicates that TSL1.3 is not supported.
1125
+ 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:
50
1126
  """
51
1127
  exclusive_ip: NotRequired[pulumi.Input[_builtins.bool]]
52
1128
  """
53
- 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:
54
- - **true**: indicates that the exclusive IP address is enabled.
55
- - **false** (default): indicates that exclusive IP address is not enabled.
1129
+ 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:
56
1130
  """
57
1131
  focus_https: NotRequired[pulumi.Input[_builtins.bool]]
58
1132
  """
59
- 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:
60
- - **true**: indicates that HTTPS forced redirection is enabled.
61
- - **false**: indicates that HTTPS forced redirection is not enabled.
1133
+ 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:
62
1134
  """
63
1135
  http2_enabled: NotRequired[pulumi.Input[_builtins.bool]]
64
1136
  """
65
- 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:
66
- - **true:** indicates that HTTP2 is enabled.
67
- - **false** (default): indicates that HTTP2 is not enabled.
1137
+ Specifies whether to enable HTTP/2. This parameter is available only if you specify `HttpsPorts`. Valid values:
68
1138
  """
69
1139
  http_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.int]]]]
70
1140
  """
71
- The listening port of the HTTP protocol.
1141
+ The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.
72
1142
  """
73
1143
  https_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.int]]]]
74
1144
  """
75
- The listening port of the HTTPS protocol.
1145
+ The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.
76
1146
  """
77
1147
  ipv6_enabled: NotRequired[pulumi.Input[_builtins.bool]]
78
1148
  """
79
- Whether IPv6 is turned on. Value:
80
- - **true**: indicates that IPv6 is enabled.
81
- - **false** (default): indicates that IPv6 is not enabled.
1149
+ Specifies whether to enable IPv6 protection. Valid values:
82
1150
  """
83
1151
  protection_resource: NotRequired[pulumi.Input[_builtins.str]]
84
1152
  """
85
- The type of protection resource to use. Value:
86
- - **share** (default): indicates that a shared cluster is used.
87
- - **gslb**: indicates that the shared cluster intelligent load balancing is used.
1153
+ The type of the protection resource. Valid values:
1154
+ """
1155
+ sm2_access_only: NotRequired[pulumi.Input[_builtins.bool]]
1156
+ """
1157
+ Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.
1158
+
1159
+ - true
1160
+ - false
1161
+ """
1162
+ sm2_cert_id: NotRequired[pulumi.Input[_builtins.str]]
1163
+ """
1164
+ The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.
1165
+ """
1166
+ sm2_enabled: NotRequired[pulumi.Input[_builtins.bool]]
1167
+ """
1168
+ Specifies whether to add an SM certificate.
88
1169
  """
89
1170
  tls_version: NotRequired[pulumi.Input[_builtins.str]]
90
1171
  """
91
- 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**.
1172
+ 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:
92
1173
  """
93
1174
  xff_header_mode: NotRequired[pulumi.Input[_builtins.int]]
94
1175
  """
95
- WAF obtains the real IP address of the client. Value:
96
- - **0** (default): indicates that the client has not forwarded the traffic to WAF through other layer -7 agents.
97
- - **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.
98
- - **2**: indicates that the custom field value set by you in the WAF read request header is used as the client IP address.
1176
+ The method that is used to obtain the originating IP address of a client. Valid values:
99
1177
  """
100
1178
  xff_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
101
1179
  """
102
- Set the list of custom fields used to obtain the client IP address.
1180
+ The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.
1181
+
1182
+ > **NOTE:** This parameter is required only if you set `XffHeaderMode` to 2.
103
1183
  """
104
1184
  elif False:
105
1185
  DomainListenArgsDict: TypeAlias = Mapping[str, Any]
@@ -118,42 +1198,35 @@ class DomainListenArgs:
118
1198
  https_ports: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.int]]]] = None,
119
1199
  ipv6_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
120
1200
  protection_resource: Optional[pulumi.Input[_builtins.str]] = None,
1201
+ sm2_access_only: Optional[pulumi.Input[_builtins.bool]] = None,
1202
+ sm2_cert_id: Optional[pulumi.Input[_builtins.str]] = None,
1203
+ sm2_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
121
1204
  tls_version: Optional[pulumi.Input[_builtins.str]] = None,
122
1205
  xff_header_mode: Optional[pulumi.Input[_builtins.int]] = None,
123
1206
  xff_headers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
124
1207
  """
125
- :param pulumi.Input[_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).
126
- :param pulumi.Input[_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:
127
- - **1**: indicates that all encryption suites are added.
128
- - **2**: indicates that a strong encryption package is added. You can select this value only if the value of **tls_version** is `tlsv1.2`.
129
- - **99**: indicates that a custom encryption suite is added.
1208
+ :param pulumi.Input[_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).
1209
+ :param pulumi.Input[_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:
130
1210
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] custom_ciphers: The specific custom encryption suite to add.
131
- :param pulumi.Input[_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:
132
- - **true**: indicates that TSL1.3 is supported.
133
- - **false**: indicates that TSL1.3 is not supported.
134
- :param pulumi.Input[_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:
135
- - **true**: indicates that the exclusive IP address is enabled.
136
- - **false** (default): indicates that exclusive IP address is not enabled.
137
- :param pulumi.Input[_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:
138
- - **true**: indicates that HTTPS forced redirection is enabled.
139
- - **false**: indicates that HTTPS forced redirection is not enabled.
140
- :param pulumi.Input[_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:
141
- - **true:** indicates that HTTP2 is enabled.
142
- - **false** (default): indicates that HTTP2 is not enabled.
143
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.int]]] http_ports: The listening port of the HTTP protocol.
144
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.int]]] https_ports: The listening port of the HTTPS protocol.
145
- :param pulumi.Input[_builtins.bool] ipv6_enabled: Whether IPv6 is turned on. Value:
146
- - **true**: indicates that IPv6 is enabled.
147
- - **false** (default): indicates that IPv6 is not enabled.
148
- :param pulumi.Input[_builtins.str] protection_resource: The type of protection resource to use. Value:
149
- - **share** (default): indicates that a shared cluster is used.
150
- - **gslb**: indicates that the shared cluster intelligent load balancing is used.
151
- :param pulumi.Input[_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**.
152
- :param pulumi.Input[_builtins.int] xff_header_mode: WAF obtains the real IP address of the client. Value:
153
- - **0** (default): indicates that the client has not forwarded the traffic to WAF through other layer -7 agents.
154
- - **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.
155
- - **2**: indicates that the custom field value set by you in the WAF read request header is used as the client IP address.
156
- :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] xff_headers: Set the list of custom fields used to obtain the client IP address.
1211
+ :param pulumi.Input[_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:
1212
+ :param pulumi.Input[_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:
1213
+ :param pulumi.Input[_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:
1214
+ :param pulumi.Input[_builtins.bool] http2_enabled: Specifies whether to enable HTTP/2. This parameter is available only if you specify `HttpsPorts`. Valid values:
1215
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.int]]] http_ports: The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.
1216
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.int]]] https_ports: The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.
1217
+ :param pulumi.Input[_builtins.bool] ipv6_enabled: Specifies whether to enable IPv6 protection. Valid values:
1218
+ :param pulumi.Input[_builtins.str] protection_resource: The type of the protection resource. Valid values:
1219
+ :param pulumi.Input[_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.
1220
+
1221
+ - true
1222
+ - false
1223
+ :param pulumi.Input[_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.
1224
+ :param pulumi.Input[_builtins.bool] sm2_enabled: Specifies whether to add an SM certificate.
1225
+ :param pulumi.Input[_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:
1226
+ :param pulumi.Input[_builtins.int] xff_header_mode: The method that is used to obtain the originating IP address of a client. Valid values:
1227
+ :param pulumi.Input[Sequence[pulumi.Input[_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.
1228
+
1229
+ > **NOTE:** This parameter is required only if you set `XffHeaderMode` to 2.
157
1230
  """
158
1231
  if cert_id is not None:
159
1232
  pulumi.set(__self__, "cert_id", cert_id)
@@ -177,6 +1250,12 @@ class DomainListenArgs:
177
1250
  pulumi.set(__self__, "ipv6_enabled", ipv6_enabled)
178
1251
  if protection_resource is not None:
179
1252
  pulumi.set(__self__, "protection_resource", protection_resource)
1253
+ if sm2_access_only is not None:
1254
+ pulumi.set(__self__, "sm2_access_only", sm2_access_only)
1255
+ if sm2_cert_id is not None:
1256
+ pulumi.set(__self__, "sm2_cert_id", sm2_cert_id)
1257
+ if sm2_enabled is not None:
1258
+ pulumi.set(__self__, "sm2_enabled", sm2_enabled)
180
1259
  if tls_version is not None:
181
1260
  pulumi.set(__self__, "tls_version", tls_version)
182
1261
  if xff_header_mode is not None:
@@ -188,7 +1267,7 @@ class DomainListenArgs:
188
1267
  @pulumi.getter(name="certId")
189
1268
  def cert_id(self) -> Optional[pulumi.Input[_builtins.str]]:
190
1269
  """
191
- 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).
1270
+ 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).
192
1271
  """
193
1272
  return pulumi.get(self, "cert_id")
194
1273
 
@@ -200,10 +1279,7 @@ class DomainListenArgs:
200
1279
  @pulumi.getter(name="cipherSuite")
201
1280
  def cipher_suite(self) -> Optional[pulumi.Input[_builtins.int]]:
202
1281
  """
203
- 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:
204
- - **1**: indicates that all encryption suites are added.
205
- - **2**: indicates that a strong encryption package is added. You can select this value only if the value of **tls_version** is `tlsv1.2`.
206
- - **99**: indicates that a custom encryption suite is added.
1282
+ The type of the cipher suites that you want to add. This parameter is available only if you specify `HttpsPorts`. Valid values:
207
1283
  """
208
1284
  return pulumi.get(self, "cipher_suite")
209
1285
 
@@ -227,9 +1303,7 @@ class DomainListenArgs:
227
1303
  @pulumi.getter(name="enableTlsv3")
228
1304
  def enable_tlsv3(self) -> Optional[pulumi.Input[_builtins.bool]]:
229
1305
  """
230
- 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:
231
- - **true**: indicates that TSL1.3 is supported.
232
- - **false**: indicates that TSL1.3 is not supported.
1306
+ 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:
233
1307
  """
234
1308
  return pulumi.get(self, "enable_tlsv3")
235
1309
 
@@ -241,9 +1315,7 @@ class DomainListenArgs:
241
1315
  @pulumi.getter(name="exclusiveIp")
242
1316
  def exclusive_ip(self) -> Optional[pulumi.Input[_builtins.bool]]:
243
1317
  """
244
- 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:
245
- - **true**: indicates that the exclusive IP address is enabled.
246
- - **false** (default): indicates that exclusive IP address is not enabled.
1318
+ 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:
247
1319
  """
248
1320
  return pulumi.get(self, "exclusive_ip")
249
1321
 
@@ -255,9 +1327,7 @@ class DomainListenArgs:
255
1327
  @pulumi.getter(name="focusHttps")
256
1328
  def focus_https(self) -> Optional[pulumi.Input[_builtins.bool]]:
257
1329
  """
258
- 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:
259
- - **true**: indicates that HTTPS forced redirection is enabled.
260
- - **false**: indicates that HTTPS forced redirection is not enabled.
1330
+ 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:
261
1331
  """
262
1332
  return pulumi.get(self, "focus_https")
263
1333
 
@@ -269,9 +1339,7 @@ class DomainListenArgs:
269
1339
  @pulumi.getter(name="http2Enabled")
270
1340
  def http2_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
271
1341
  """
272
- 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:
273
- - **true:** indicates that HTTP2 is enabled.
274
- - **false** (default): indicates that HTTP2 is not enabled.
1342
+ Specifies whether to enable HTTP/2. This parameter is available only if you specify `HttpsPorts`. Valid values:
275
1343
  """
276
1344
  return pulumi.get(self, "http2_enabled")
277
1345
 
@@ -283,7 +1351,7 @@ class DomainListenArgs:
283
1351
  @pulumi.getter(name="httpPorts")
284
1352
  def http_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.int]]]]:
285
1353
  """
286
- The listening port of the HTTP protocol.
1354
+ The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.
287
1355
  """
288
1356
  return pulumi.get(self, "http_ports")
289
1357
 
@@ -295,7 +1363,7 @@ class DomainListenArgs:
295
1363
  @pulumi.getter(name="httpsPorts")
296
1364
  def https_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.int]]]]:
297
1365
  """
298
- The listening port of the HTTPS protocol.
1366
+ The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.
299
1367
  """
300
1368
  return pulumi.get(self, "https_ports")
301
1369
 
@@ -307,9 +1375,7 @@ class DomainListenArgs:
307
1375
  @pulumi.getter(name="ipv6Enabled")
308
1376
  def ipv6_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
309
1377
  """
310
- Whether IPv6 is turned on. Value:
311
- - **true**: indicates that IPv6 is enabled.
312
- - **false** (default): indicates that IPv6 is not enabled.
1378
+ Specifies whether to enable IPv6 protection. Valid values:
313
1379
  """
314
1380
  return pulumi.get(self, "ipv6_enabled")
315
1381
 
@@ -321,9 +1387,7 @@ class DomainListenArgs:
321
1387
  @pulumi.getter(name="protectionResource")
322
1388
  def protection_resource(self) -> Optional[pulumi.Input[_builtins.str]]:
323
1389
  """
324
- The type of protection resource to use. Value:
325
- - **share** (default): indicates that a shared cluster is used.
326
- - **gslb**: indicates that the shared cluster intelligent load balancing is used.
1390
+ The type of the protection resource. Valid values:
327
1391
  """
328
1392
  return pulumi.get(self, "protection_resource")
329
1393
 
@@ -331,11 +1395,50 @@ class DomainListenArgs:
331
1395
  def protection_resource(self, value: Optional[pulumi.Input[_builtins.str]]):
332
1396
  pulumi.set(self, "protection_resource", value)
333
1397
 
1398
+ @_builtins.property
1399
+ @pulumi.getter(name="sm2AccessOnly")
1400
+ def sm2_access_only(self) -> Optional[pulumi.Input[_builtins.bool]]:
1401
+ """
1402
+ Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.
1403
+
1404
+ - true
1405
+ - false
1406
+ """
1407
+ return pulumi.get(self, "sm2_access_only")
1408
+
1409
+ @sm2_access_only.setter
1410
+ def sm2_access_only(self, value: Optional[pulumi.Input[_builtins.bool]]):
1411
+ pulumi.set(self, "sm2_access_only", value)
1412
+
1413
+ @_builtins.property
1414
+ @pulumi.getter(name="sm2CertId")
1415
+ def sm2_cert_id(self) -> Optional[pulumi.Input[_builtins.str]]:
1416
+ """
1417
+ The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.
1418
+ """
1419
+ return pulumi.get(self, "sm2_cert_id")
1420
+
1421
+ @sm2_cert_id.setter
1422
+ def sm2_cert_id(self, value: Optional[pulumi.Input[_builtins.str]]):
1423
+ pulumi.set(self, "sm2_cert_id", value)
1424
+
1425
+ @_builtins.property
1426
+ @pulumi.getter(name="sm2Enabled")
1427
+ def sm2_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
1428
+ """
1429
+ Specifies whether to add an SM certificate.
1430
+ """
1431
+ return pulumi.get(self, "sm2_enabled")
1432
+
1433
+ @sm2_enabled.setter
1434
+ def sm2_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
1435
+ pulumi.set(self, "sm2_enabled", value)
1436
+
334
1437
  @_builtins.property
335
1438
  @pulumi.getter(name="tlsVersion")
336
1439
  def tls_version(self) -> Optional[pulumi.Input[_builtins.str]]:
337
1440
  """
338
- 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**.
1441
+ 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:
339
1442
  """
340
1443
  return pulumi.get(self, "tls_version")
341
1444
 
@@ -347,10 +1450,7 @@ class DomainListenArgs:
347
1450
  @pulumi.getter(name="xffHeaderMode")
348
1451
  def xff_header_mode(self) -> Optional[pulumi.Input[_builtins.int]]:
349
1452
  """
350
- WAF obtains the real IP address of the client. Value:
351
- - **0** (default): indicates that the client has not forwarded the traffic to WAF through other layer -7 agents.
352
- - **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.
353
- - **2**: indicates that the custom field value set by you in the WAF read request header is used as the client IP address.
1453
+ The method that is used to obtain the originating IP address of a client. Valid values:
354
1454
  """
355
1455
  return pulumi.get(self, "xff_header_mode")
356
1456
 
@@ -362,7 +1462,9 @@ class DomainListenArgs:
362
1462
  @pulumi.getter(name="xffHeaders")
363
1463
  def xff_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
364
1464
  """
365
- Set the list of custom fields used to obtain the client IP address.
1465
+ The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.
1466
+
1467
+ > **NOTE:** This parameter is required only if you set `XffHeaderMode` to 2.
366
1468
  """
367
1469
  return pulumi.get(self, "xff_headers")
368
1470
 
@@ -375,69 +1477,75 @@ if not MYPY:
375
1477
  class DomainRedirectArgsDict(TypedDict):
376
1478
  loadbalance: pulumi.Input[_builtins.str]
377
1479
  """
378
- The load balancing algorithm used when returning to the source. Value:
379
- - **iphash**: indicates the IPHash algorithm.
380
- - **roundRobin**: indicates the polling algorithm.
381
- - **leastTime**: indicates the Least Time algorithm.
382
- - 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).
1480
+ The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:
383
1481
  """
384
1482
  backends: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
385
1483
  """
386
- The IP address of the origin server corresponding to the domain name or the back-to-origin domain name of the server.
1484
+ 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.
1485
+
1486
+ - If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.
1487
+ - If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.
1488
+ """
1489
+ backup_backends: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
1490
+ """
1491
+ The secondary IP address or domain name of the origin server.
387
1492
  """
388
1493
  connect_timeout: NotRequired[pulumi.Input[_builtins.int]]
389
1494
  """
390
- Connection timeout. Unit: seconds, value range: 5~120.
1495
+ Connection timeout duration. Unit: seconds.
1496
+ Value range: 1~3600. Default value: 5.
391
1497
  """
392
1498
  focus_http_backend: NotRequired[pulumi.Input[_builtins.bool]]
393
1499
  """
394
- 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:
395
- - **true**: indicates that forced HTTP back-to-origin is enabled.
396
- - **false**: indicates that forced HTTP back-to-origin is not enabled.
1500
+ 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:
397
1501
  """
398
1502
  keepalive: NotRequired[pulumi.Input[_builtins.bool]]
399
1503
  """
400
- Open long connection, default true.
1504
+ Specifies whether to enable the persistent connection feature. Valid values:
401
1505
  """
402
1506
  keepalive_requests: NotRequired[pulumi.Input[_builtins.int]]
403
1507
  """
404
- Number of long connections, default: `60`. range :60-1000.
1508
+ The number of reused persistent connections. Valid values: 60 to 1000. Default value: 1000
1509
+
1510
+
1511
+ > **NOTE:** This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.
405
1512
  """
406
1513
  keepalive_timeout: NotRequired[pulumi.Input[_builtins.int]]
407
1514
  """
408
- Long connection over time, default: `15`. Range: 1-60.
1515
+ Idle long connection timeout, value range: 1~60, default 15, unit: seconds.
1516
+
1517
+ > **NOTE:** How long the multiplexed long connection is idle and then released.
409
1518
  """
410
1519
  read_timeout: NotRequired[pulumi.Input[_builtins.int]]
411
1520
  """
412
- Read timeout duration. **Unit**: seconds, **Value range**: 5~1800.
1521
+ The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
413
1522
  """
414
1523
  request_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainRedirectRequestHeaderArgsDict']]]]
415
1524
  """
416
- The traffic tag field and value of the domain name which used to mark the traffic processed by WAF.
417
- It formats as `[{" k ":"_key_"," v ":"_value_"}]`. Where the `k` represents the specified custom request header field,
418
- and the `v` represents the value set for this field. By specifying the custom request header field and the corresponding value,
419
- when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value
420
- to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the
421
- custom header field already exists in the request, the system will overwrite the value of the custom field in the
422
- request with the set traffic tag value. See `request_headers` below.
1525
+ The traffic marking field and value of the domain name, which is used to mark the traffic processed by WAF.
1526
+ 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.
423
1527
  """
424
1528
  retry: NotRequired[pulumi.Input[_builtins.bool]]
425
1529
  """
426
- Back to Source Retry. default: true, retry 3 times by default.
1530
+ Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:
427
1531
  """
428
1532
  sni_enabled: NotRequired[pulumi.Input[_builtins.bool]]
429
1533
  """
430
- 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:
431
- - **true**: indicates that the back-to-source SNI is enabled.
432
- - **false** (default) indicates that the back-to-source SNI is not enabled.
1534
+ 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:
433
1535
  """
434
1536
  sni_host: NotRequired[pulumi.Input[_builtins.str]]
435
1537
  """
436
- 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).
1538
+ 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.
1539
+
1540
+ > **NOTE:** This parameter is required only if you set `SniEnabled` to true.
437
1541
  """
438
1542
  write_timeout: NotRequired[pulumi.Input[_builtins.int]]
439
1543
  """
440
- Write timeout duration> **Unit**: seconds, **Value range**: 5~1800.
1544
+ The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
1545
+ """
1546
+ xff_proto: NotRequired[pulumi.Input[_builtins.bool]]
1547
+ """
1548
+ 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:
441
1549
  """
442
1550
  elif False:
443
1551
  DomainRedirectArgsDict: TypeAlias = Mapping[str, Any]
@@ -447,6 +1555,7 @@ class DomainRedirectArgs:
447
1555
  def __init__(__self__, *,
448
1556
  loadbalance: pulumi.Input[_builtins.str],
449
1557
  backends: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1558
+ backup_backends: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
450
1559
  connect_timeout: Optional[pulumi.Input[_builtins.int]] = None,
451
1560
  focus_http_backend: Optional[pulumi.Input[_builtins.bool]] = None,
452
1561
  keepalive: Optional[pulumi.Input[_builtins.bool]] = None,
@@ -457,39 +1566,42 @@ class DomainRedirectArgs:
457
1566
  retry: Optional[pulumi.Input[_builtins.bool]] = None,
458
1567
  sni_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
459
1568
  sni_host: Optional[pulumi.Input[_builtins.str]] = None,
460
- write_timeout: Optional[pulumi.Input[_builtins.int]] = None):
461
- """
462
- :param pulumi.Input[_builtins.str] loadbalance: The load balancing algorithm used when returning to the source. Value:
463
- - **iphash**: indicates the IPHash algorithm.
464
- - **roundRobin**: indicates the polling algorithm.
465
- - **leastTime**: indicates the Least Time algorithm.
466
- - 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).
467
- :param pulumi.Input[Sequence[pulumi.Input[_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.
468
- :param pulumi.Input[_builtins.int] connect_timeout: Connection timeout. Unit: seconds, value range: 5~120.
469
- :param pulumi.Input[_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:
470
- - **true**: indicates that forced HTTP back-to-origin is enabled.
471
- - **false**: indicates that forced HTTP back-to-origin is not enabled.
472
- :param pulumi.Input[_builtins.bool] keepalive: Open long connection, default true.
473
- :param pulumi.Input[_builtins.int] keepalive_requests: Number of long connections, default: `60`. range :60-1000.
474
- :param pulumi.Input[_builtins.int] keepalive_timeout: Long connection over time, default: `15`. Range: 1-60.
475
- :param pulumi.Input[_builtins.int] read_timeout: Read timeout duration. **Unit**: seconds, **Value range**: 5~1800.
476
- :param pulumi.Input[Sequence[pulumi.Input['DomainRedirectRequestHeaderArgs']]] request_headers: The traffic tag field and value of the domain name which used to mark the traffic processed by WAF.
477
- It formats as `[{" k ":"_key_"," v ":"_value_"}]`. Where the `k` represents the specified custom request header field,
478
- and the `v` represents the value set for this field. By specifying the custom request header field and the corresponding value,
479
- when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value
480
- to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the
481
- custom header field already exists in the request, the system will overwrite the value of the custom field in the
482
- request with the set traffic tag value. See `request_headers` below.
483
- :param pulumi.Input[_builtins.bool] retry: Back to Source Retry. default: true, retry 3 times by default.
484
- :param pulumi.Input[_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:
485
- - **true**: indicates that the back-to-source SNI is enabled.
486
- - **false** (default) indicates that the back-to-source SNI is not enabled.
487
- :param pulumi.Input[_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).
488
- :param pulumi.Input[_builtins.int] write_timeout: Write timeout duration> **Unit**: seconds, **Value range**: 5~1800.
1569
+ write_timeout: Optional[pulumi.Input[_builtins.int]] = None,
1570
+ xff_proto: Optional[pulumi.Input[_builtins.bool]] = None):
1571
+ """
1572
+ :param pulumi.Input[_builtins.str] loadbalance: The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:
1573
+ :param pulumi.Input[Sequence[pulumi.Input[_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.
1574
+
1575
+ - If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.
1576
+ - If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.
1577
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] backup_backends: The secondary IP address or domain name of the origin server.
1578
+ :param pulumi.Input[_builtins.int] connect_timeout: Connection timeout duration. Unit: seconds.
1579
+ Value range: 1~3600. Default value: 5.
1580
+ :param pulumi.Input[_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:
1581
+ :param pulumi.Input[_builtins.bool] keepalive: Specifies whether to enable the persistent connection feature. Valid values:
1582
+ :param pulumi.Input[_builtins.int] keepalive_requests: The number of reused persistent connections. Valid values: 60 to 1000. Default value: 1000
1583
+
1584
+
1585
+ > **NOTE:** This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.
1586
+ :param pulumi.Input[_builtins.int] keepalive_timeout: Idle long connection timeout, value range: 1~60, default 15, unit: seconds.
1587
+
1588
+ > **NOTE:** How long the multiplexed long connection is idle and then released.
1589
+ :param pulumi.Input[_builtins.int] read_timeout: The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
1590
+ :param pulumi.Input[Sequence[pulumi.Input['DomainRedirectRequestHeaderArgs']]] request_headers: The traffic marking field and value of the domain name, which is used to mark the traffic processed by WAF.
1591
+ 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.
1592
+ :param pulumi.Input[_builtins.bool] retry: Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:
1593
+ :param pulumi.Input[_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:
1594
+ :param pulumi.Input[_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.
1595
+
1596
+ > **NOTE:** This parameter is required only if you set `SniEnabled` to true.
1597
+ :param pulumi.Input[_builtins.int] write_timeout: The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
1598
+ :param pulumi.Input[_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:
489
1599
  """
490
1600
  pulumi.set(__self__, "loadbalance", loadbalance)
491
1601
  if backends is not None:
492
1602
  pulumi.set(__self__, "backends", backends)
1603
+ if backup_backends is not None:
1604
+ pulumi.set(__self__, "backup_backends", backup_backends)
493
1605
  if connect_timeout is not None:
494
1606
  pulumi.set(__self__, "connect_timeout", connect_timeout)
495
1607
  if focus_http_backend is not None:
@@ -512,16 +1624,14 @@ class DomainRedirectArgs:
512
1624
  pulumi.set(__self__, "sni_host", sni_host)
513
1625
  if write_timeout is not None:
514
1626
  pulumi.set(__self__, "write_timeout", write_timeout)
1627
+ if xff_proto is not None:
1628
+ pulumi.set(__self__, "xff_proto", xff_proto)
515
1629
 
516
1630
  @_builtins.property
517
1631
  @pulumi.getter
518
1632
  def loadbalance(self) -> pulumi.Input[_builtins.str]:
519
1633
  """
520
- The load balancing algorithm used when returning to the source. Value:
521
- - **iphash**: indicates the IPHash algorithm.
522
- - **roundRobin**: indicates the polling algorithm.
523
- - **leastTime**: indicates the Least Time algorithm.
524
- - 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).
1634
+ The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:
525
1635
  """
526
1636
  return pulumi.get(self, "loadbalance")
527
1637
 
@@ -533,7 +1643,10 @@ class DomainRedirectArgs:
533
1643
  @pulumi.getter
534
1644
  def backends(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
535
1645
  """
536
- The IP address of the origin server corresponding to the domain name or the back-to-origin domain name of the server.
1646
+ 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.
1647
+
1648
+ - If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.
1649
+ - If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.
537
1650
  """
538
1651
  return pulumi.get(self, "backends")
539
1652
 
@@ -541,11 +1654,24 @@ class DomainRedirectArgs:
541
1654
  def backends(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
542
1655
  pulumi.set(self, "backends", value)
543
1656
 
1657
+ @_builtins.property
1658
+ @pulumi.getter(name="backupBackends")
1659
+ def backup_backends(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1660
+ """
1661
+ The secondary IP address or domain name of the origin server.
1662
+ """
1663
+ return pulumi.get(self, "backup_backends")
1664
+
1665
+ @backup_backends.setter
1666
+ def backup_backends(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1667
+ pulumi.set(self, "backup_backends", value)
1668
+
544
1669
  @_builtins.property
545
1670
  @pulumi.getter(name="connectTimeout")
546
1671
  def connect_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
547
1672
  """
548
- Connection timeout. Unit: seconds, value range: 5~120.
1673
+ Connection timeout duration. Unit: seconds.
1674
+ Value range: 1~3600. Default value: 5.
549
1675
  """
550
1676
  return pulumi.get(self, "connect_timeout")
551
1677
 
@@ -557,9 +1683,7 @@ class DomainRedirectArgs:
557
1683
  @pulumi.getter(name="focusHttpBackend")
558
1684
  def focus_http_backend(self) -> Optional[pulumi.Input[_builtins.bool]]:
559
1685
  """
560
- 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:
561
- - **true**: indicates that forced HTTP back-to-origin is enabled.
562
- - **false**: indicates that forced HTTP back-to-origin is not enabled.
1686
+ 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:
563
1687
  """
564
1688
  return pulumi.get(self, "focus_http_backend")
565
1689
 
@@ -571,7 +1695,7 @@ class DomainRedirectArgs:
571
1695
  @pulumi.getter
572
1696
  def keepalive(self) -> Optional[pulumi.Input[_builtins.bool]]:
573
1697
  """
574
- Open long connection, default true.
1698
+ Specifies whether to enable the persistent connection feature. Valid values:
575
1699
  """
576
1700
  return pulumi.get(self, "keepalive")
577
1701
 
@@ -583,7 +1707,10 @@ class DomainRedirectArgs:
583
1707
  @pulumi.getter(name="keepaliveRequests")
584
1708
  def keepalive_requests(self) -> Optional[pulumi.Input[_builtins.int]]:
585
1709
  """
586
- Number of long connections, default: `60`. range :60-1000.
1710
+ The number of reused persistent connections. Valid values: 60 to 1000. Default value: 1000
1711
+
1712
+
1713
+ > **NOTE:** This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.
587
1714
  """
588
1715
  return pulumi.get(self, "keepalive_requests")
589
1716
 
@@ -595,7 +1722,9 @@ class DomainRedirectArgs:
595
1722
  @pulumi.getter(name="keepaliveTimeout")
596
1723
  def keepalive_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
597
1724
  """
598
- Long connection over time, default: `15`. Range: 1-60.
1725
+ Idle long connection timeout, value range: 1~60, default 15, unit: seconds.
1726
+
1727
+ > **NOTE:** How long the multiplexed long connection is idle and then released.
599
1728
  """
600
1729
  return pulumi.get(self, "keepalive_timeout")
601
1730
 
@@ -607,7 +1736,7 @@ class DomainRedirectArgs:
607
1736
  @pulumi.getter(name="readTimeout")
608
1737
  def read_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
609
1738
  """
610
- Read timeout duration. **Unit**: seconds, **Value range**: 5~1800.
1739
+ The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
611
1740
  """
612
1741
  return pulumi.get(self, "read_timeout")
613
1742
 
@@ -619,13 +1748,8 @@ class DomainRedirectArgs:
619
1748
  @pulumi.getter(name="requestHeaders")
620
1749
  def request_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DomainRedirectRequestHeaderArgs']]]]:
621
1750
  """
622
- The traffic tag field and value of the domain name which used to mark the traffic processed by WAF.
623
- It formats as `[{" k ":"_key_"," v ":"_value_"}]`. Where the `k` represents the specified custom request header field,
624
- and the `v` represents the value set for this field. By specifying the custom request header field and the corresponding value,
625
- when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value
626
- to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the
627
- custom header field already exists in the request, the system will overwrite the value of the custom field in the
628
- request with the set traffic tag value. See `request_headers` below.
1751
+ The traffic marking field and value of the domain name, which is used to mark the traffic processed by WAF.
1752
+ 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.
629
1753
  """
630
1754
  return pulumi.get(self, "request_headers")
631
1755
 
@@ -637,7 +1761,7 @@ class DomainRedirectArgs:
637
1761
  @pulumi.getter
638
1762
  def retry(self) -> Optional[pulumi.Input[_builtins.bool]]:
639
1763
  """
640
- Back to Source Retry. default: true, retry 3 times by default.
1764
+ Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:
641
1765
  """
642
1766
  return pulumi.get(self, "retry")
643
1767
 
@@ -649,9 +1773,7 @@ class DomainRedirectArgs:
649
1773
  @pulumi.getter(name="sniEnabled")
650
1774
  def sni_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
651
1775
  """
652
- 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:
653
- - **true**: indicates that the back-to-source SNI is enabled.
654
- - **false** (default) indicates that the back-to-source SNI is not enabled.
1776
+ 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:
655
1777
  """
656
1778
  return pulumi.get(self, "sni_enabled")
657
1779
 
@@ -663,7 +1785,9 @@ class DomainRedirectArgs:
663
1785
  @pulumi.getter(name="sniHost")
664
1786
  def sni_host(self) -> Optional[pulumi.Input[_builtins.str]]:
665
1787
  """
666
- 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).
1788
+ 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.
1789
+
1790
+ > **NOTE:** This parameter is required only if you set `SniEnabled` to true.
667
1791
  """
668
1792
  return pulumi.get(self, "sni_host")
669
1793
 
@@ -675,7 +1799,7 @@ class DomainRedirectArgs:
675
1799
  @pulumi.getter(name="writeTimeout")
676
1800
  def write_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
677
1801
  """
678
- Write timeout duration> **Unit**: seconds, **Value range**: 5~1800.
1802
+ The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.
679
1803
  """
680
1804
  return pulumi.get(self, "write_timeout")
681
1805
 
@@ -683,16 +1807,28 @@ class DomainRedirectArgs:
683
1807
  def write_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
684
1808
  pulumi.set(self, "write_timeout", value)
685
1809
 
1810
+ @_builtins.property
1811
+ @pulumi.getter(name="xffProto")
1812
+ def xff_proto(self) -> Optional[pulumi.Input[_builtins.bool]]:
1813
+ """
1814
+ 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:
1815
+ """
1816
+ return pulumi.get(self, "xff_proto")
1817
+
1818
+ @xff_proto.setter
1819
+ def xff_proto(self, value: Optional[pulumi.Input[_builtins.bool]]):
1820
+ pulumi.set(self, "xff_proto", value)
1821
+
686
1822
 
687
1823
  if not MYPY:
688
1824
  class DomainRedirectRequestHeaderArgsDict(TypedDict):
689
1825
  key: NotRequired[pulumi.Input[_builtins.str]]
690
1826
  """
691
- 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.
1827
+ Specified custom request header fields
692
1828
  """
693
1829
  value: NotRequired[pulumi.Input[_builtins.str]]
694
1830
  """
695
- 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.
1831
+ Customize the value of the request header field.
696
1832
  """
697
1833
  elif False:
698
1834
  DomainRedirectRequestHeaderArgsDict: TypeAlias = Mapping[str, Any]
@@ -703,8 +1839,8 @@ class DomainRedirectRequestHeaderArgs:
703
1839
  key: Optional[pulumi.Input[_builtins.str]] = None,
704
1840
  value: Optional[pulumi.Input[_builtins.str]] = None):
705
1841
  """
706
- :param pulumi.Input[_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.
707
- :param pulumi.Input[_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.
1842
+ :param pulumi.Input[_builtins.str] key: Specified custom request header fields
1843
+ :param pulumi.Input[_builtins.str] value: Customize the value of the request header field.
708
1844
  """
709
1845
  if key is not None:
710
1846
  pulumi.set(__self__, "key", key)
@@ -715,7 +1851,7 @@ class DomainRedirectRequestHeaderArgs:
715
1851
  @pulumi.getter
716
1852
  def key(self) -> Optional[pulumi.Input[_builtins.str]]:
717
1853
  """
718
- 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.
1854
+ Specified custom request header fields
719
1855
  """
720
1856
  return pulumi.get(self, "key")
721
1857
 
@@ -727,7 +1863,7 @@ class DomainRedirectRequestHeaderArgs:
727
1863
  @pulumi.getter
728
1864
  def value(self) -> Optional[pulumi.Input[_builtins.str]]:
729
1865
  """
730
- 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.
1866
+ Customize the value of the request header field.
731
1867
  """
732
1868
  return pulumi.get(self, "value")
733
1869