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