pulumi-alicloud 3.76.0a1743571220__py3-none-any.whl → 3.76.0a1744139894__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 (237) hide show
  1. pulumi_alicloud/__init__.py +271 -4
  2. pulumi_alicloud/_inputs.py +20 -0
  3. pulumi_alicloud/actiontrail/global_events_storage_region.py +2 -2
  4. pulumi_alicloud/adb/db_cluster_lake_version.py +458 -49
  5. pulumi_alicloud/alb/load_balancer_access_log_config_attachment.py +2 -2
  6. pulumi_alicloud/alb/server_group.py +2 -2
  7. pulumi_alicloud/alikafka/sasl_acl.py +7 -7
  8. pulumi_alicloud/apigateway/_inputs.py +134 -0
  9. pulumi_alicloud/apigateway/group.py +117 -5
  10. pulumi_alicloud/apigateway/instance.py +148 -7
  11. pulumi_alicloud/apigateway/outputs.py +107 -0
  12. pulumi_alicloud/arms/alert_contact.py +2 -2
  13. pulumi_alicloud/arms/alert_contact_group.py +2 -2
  14. pulumi_alicloud/arms/get_prometheus.py +2 -6
  15. pulumi_alicloud/arms/grafana_workspace.py +511 -69
  16. pulumi_alicloud/arms/outputs.py +18 -18
  17. pulumi_alicloud/arms/prometheus_alert_rule.py +2 -2
  18. pulumi_alicloud/arms/prometheus_monitoring.py +2 -2
  19. pulumi_alicloud/cdn/domain_new.py +2 -2
  20. pulumi_alicloud/cen/_inputs.py +6 -3
  21. pulumi_alicloud/cen/get_transit_router_vpn_attachments.py +131 -19
  22. pulumi_alicloud/cen/instance.py +101 -59
  23. pulumi_alicloud/cen/inter_region_traffic_qos_policy.py +126 -81
  24. pulumi_alicloud/cen/inter_region_traffic_qos_queue.py +93 -47
  25. pulumi_alicloud/cen/outputs.py +69 -26
  26. pulumi_alicloud/cen/transit_route_table_aggregation.py +171 -55
  27. pulumi_alicloud/cen/transit_router.py +127 -53
  28. pulumi_alicloud/cen/transit_router_cidr.py +53 -35
  29. pulumi_alicloud/cen/transit_router_ecr_attachment.py +2 -2
  30. pulumi_alicloud/cen/transit_router_peer_attachment.py +360 -143
  31. pulumi_alicloud/cen/transit_router_route_table_association.py +33 -43
  32. pulumi_alicloud/cen/transit_router_vpn_attachment.py +438 -109
  33. pulumi_alicloud/clickhouse/db_cluster.py +179 -6
  34. pulumi_alicloud/clickhouseenterprisedbcluster/__init__.py +14 -0
  35. pulumi_alicloud/clickhouseenterprisedbcluster/_inputs.py +167 -0
  36. pulumi_alicloud/clickhouseenterprisedbcluster/account.py +554 -0
  37. pulumi_alicloud/clickhouseenterprisedbcluster/backup_policy.py +407 -0
  38. pulumi_alicloud/clickhouseenterprisedbcluster/click_house_enterprise_db_cluster.py +641 -0
  39. pulumi_alicloud/clickhouseenterprisedbcluster/outputs.py +147 -0
  40. pulumi_alicloud/clickhouseenterprisedbcluster/public_endpoint.py +364 -0
  41. pulumi_alicloud/clickhouseenterprisedbcluster/security_ip.py +357 -0
  42. pulumi_alicloud/cloudsso/scim_server_credential.py +178 -11
  43. pulumi_alicloud/config/outputs.py +12 -0
  44. pulumi_alicloud/cs/__init__.py +1 -0
  45. pulumi_alicloud/cs/get_kubernetes_node_pools.py +147 -0
  46. pulumi_alicloud/cs/managed_kubernetes.py +127 -24
  47. pulumi_alicloud/cs/node_pool.py +42 -42
  48. pulumi_alicloud/cs/outputs.py +1782 -4
  49. pulumi_alicloud/databasefilesystem/service_linked_role.py +2 -2
  50. pulumi_alicloud/dataworks/data_source.py +2 -2
  51. pulumi_alicloud/dataworks/data_source_shared_rule.py +2 -2
  52. pulumi_alicloud/dataworks/di_alarm_rule.py +2 -2
  53. pulumi_alicloud/dataworks/di_job.py +2 -2
  54. pulumi_alicloud/dataworks/dw_resource_group.py +2 -2
  55. pulumi_alicloud/dataworks/network.py +2 -2
  56. pulumi_alicloud/dataworks/project.py +2 -2
  57. pulumi_alicloud/dataworks/project_member.py +2 -2
  58. pulumi_alicloud/dbs/backup_plan.py +2 -2
  59. pulumi_alicloud/ddos/bgp_policy.py +2 -2
  60. pulumi_alicloud/eais/__init__.py +2 -0
  61. pulumi_alicloud/eais/_inputs.py +75 -0
  62. pulumi_alicloud/eais/client_instance_attachment.py +408 -0
  63. pulumi_alicloud/eais/instance.py +365 -118
  64. pulumi_alicloud/eais/outputs.py +32 -0
  65. pulumi_alicloud/ebs/disk_replica_group.py +512 -30
  66. pulumi_alicloud/ebs/disk_replica_pair.py +443 -113
  67. pulumi_alicloud/ebs/enterprise_snapshot_policy.py +2 -2
  68. pulumi_alicloud/ebs/enterprise_snapshot_policy_attachment.py +2 -2
  69. pulumi_alicloud/ecp/instance.py +2 -2
  70. pulumi_alicloud/ecp/key_pair.py +4 -4
  71. pulumi_alicloud/ecs/_inputs.py +33 -0
  72. pulumi_alicloud/ecs/disk.py +1 -1
  73. pulumi_alicloud/ecs/ecs_disk.py +1 -1
  74. pulumi_alicloud/ecs/ecs_launch_template.py +23 -23
  75. pulumi_alicloud/ecs/instance.py +1 -1
  76. pulumi_alicloud/ecs/outputs.py +26 -2
  77. pulumi_alicloud/eflo/__init__.py +5 -0
  78. pulumi_alicloud/eflo/_inputs.py +1717 -0
  79. pulumi_alicloud/eflo/cluster.py +935 -0
  80. pulumi_alicloud/eflo/invocation.py +1114 -0
  81. pulumi_alicloud/eflo/node.py +1013 -0
  82. pulumi_alicloud/eflo/node_group.py +1101 -0
  83. pulumi_alicloud/eflo/outputs.py +1366 -0
  84. pulumi_alicloud/ens/eip_instance_attachment.py +2 -2
  85. pulumi_alicloud/ens/image.py +81 -34
  86. pulumi_alicloud/esa/__init__.py +4 -0
  87. pulumi_alicloud/esa/_inputs.py +640 -18
  88. pulumi_alicloud/esa/cache_reserve_instance.py +522 -0
  89. pulumi_alicloud/esa/cache_rule.py +193 -179
  90. pulumi_alicloud/esa/certificate.py +99 -92
  91. pulumi_alicloud/esa/compression_rule.py +42 -28
  92. pulumi_alicloud/esa/edge_container_app.py +972 -0
  93. pulumi_alicloud/esa/edge_container_app_record.py +376 -0
  94. pulumi_alicloud/esa/http_request_header_modification_rule.py +56 -42
  95. pulumi_alicloud/esa/http_response_header_modification_rule.py +35 -56
  96. pulumi_alicloud/esa/https_application_configuration.py +42 -28
  97. pulumi_alicloud/esa/https_basic_configuration.py +56 -42
  98. pulumi_alicloud/esa/image_transform.py +42 -28
  99. pulumi_alicloud/esa/kv_namespace.py +11 -11
  100. pulumi_alicloud/esa/list.py +28 -28
  101. pulumi_alicloud/esa/network_optimization.py +56 -126
  102. pulumi_alicloud/esa/origin_pool.py +19 -19
  103. pulumi_alicloud/esa/origin_rule.py +67 -39
  104. pulumi_alicloud/esa/outputs.py +536 -12
  105. pulumi_alicloud/esa/page.py +28 -49
  106. pulumi_alicloud/esa/rate_plan_instance.py +86 -159
  107. pulumi_alicloud/esa/redirect_rule.py +42 -28
  108. pulumi_alicloud/esa/rewrite_url_rule.py +49 -63
  109. pulumi_alicloud/esa/site.py +67 -123
  110. pulumi_alicloud/esa/site_delivery_task.py +841 -0
  111. pulumi_alicloud/esa/waiting_room.py +269 -319
  112. pulumi_alicloud/esa/waiting_room_event.py +291 -305
  113. pulumi_alicloud/esa/waiting_room_rule.py +46 -53
  114. pulumi_alicloud/ess/_inputs.py +155 -0
  115. pulumi_alicloud/ess/outputs.py +128 -0
  116. pulumi_alicloud/ess/scaling_group.py +237 -2
  117. pulumi_alicloud/ess/scaling_rule.py +143 -2
  118. pulumi_alicloud/expressconnect/router_grant_association.py +2 -2
  119. pulumi_alicloud/expressconnect/virtual_border_router.py +4 -4
  120. pulumi_alicloud/gpdb/hadoop_data_source.py +2 -2
  121. pulumi_alicloud/gpdb/jdbc_data_source.py +2 -2
  122. pulumi_alicloud/gpdb/remote_adb_data_source.py +6 -6
  123. pulumi_alicloud/gpdb/streaming_data_source.py +2 -2
  124. pulumi_alicloud/gpdb/streaming_job.py +2 -2
  125. pulumi_alicloud/ims/oidc_provider.py +24 -13
  126. pulumi_alicloud/kvstore/account.py +9 -9
  127. pulumi_alicloud/kvstore/connection.py +2 -2
  128. pulumi_alicloud/kvstore/get_instance_classes.py +2 -2
  129. pulumi_alicloud/kvstore/get_instance_engines.py +2 -2
  130. pulumi_alicloud/kvstore/instance.py +7 -7
  131. pulumi_alicloud/kvstore/outputs.py +2 -2
  132. pulumi_alicloud/live/caster.py +2 -2
  133. pulumi_alicloud/maxcompute/__init__.py +1 -0
  134. pulumi_alicloud/maxcompute/_inputs.py +232 -3
  135. pulumi_alicloud/maxcompute/outputs.py +183 -2
  136. pulumi_alicloud/maxcompute/project.py +2 -2
  137. pulumi_alicloud/maxcompute/quota.py +438 -0
  138. pulumi_alicloud/nas/mount_target.py +149 -54
  139. pulumi_alicloud/nlb/__init__.py +1 -0
  140. pulumi_alicloud/nlb/_inputs.py +43 -6
  141. pulumi_alicloud/nlb/load_balancer.py +212 -24
  142. pulumi_alicloud/nlb/load_balancer_zone_shifted_attachment.py +397 -0
  143. pulumi_alicloud/nlb/outputs.py +30 -4
  144. pulumi_alicloud/nlb/server_group_server_attachment.py +118 -65
  145. pulumi_alicloud/oss/__init__.py +1 -0
  146. pulumi_alicloud/oss/_inputs.py +20 -0
  147. pulumi_alicloud/oss/access_point.py +2 -2
  148. pulumi_alicloud/oss/bucket_cname.py +2 -2
  149. pulumi_alicloud/oss/bucket_cors.py +2 -2
  150. pulumi_alicloud/oss/bucket_style.py +402 -0
  151. pulumi_alicloud/oss/bucket_website.py +2 -2
  152. pulumi_alicloud/oss/outputs.py +14 -0
  153. pulumi_alicloud/pai/service.py +59 -67
  154. pulumi_alicloud/polardb/cluster.py +75 -28
  155. pulumi_alicloud/privatelink/vpc_endpoint_zone.py +1 -1
  156. pulumi_alicloud/pulumi-plugin.json +1 -1
  157. pulumi_alicloud/ram/__init__.py +3 -0
  158. pulumi_alicloud/ram/_inputs.py +9 -9
  159. pulumi_alicloud/ram/access_key.py +77 -31
  160. pulumi_alicloud/ram/account_alias.py +18 -45
  161. pulumi_alicloud/ram/get_system_policys.py +189 -0
  162. pulumi_alicloud/ram/group.py +156 -35
  163. pulumi_alicloud/ram/group_policy_attachment.py +51 -29
  164. pulumi_alicloud/ram/login_profile.py +92 -38
  165. pulumi_alicloud/ram/outputs.py +91 -6
  166. pulumi_alicloud/ram/password_policy.py +779 -0
  167. pulumi_alicloud/ram/policy.py +199 -88
  168. pulumi_alicloud/ram/role_policy_attachment.py +51 -29
  169. pulumi_alicloud/ram/saml_provider.py +44 -37
  170. pulumi_alicloud/ram/user_group_attachment.py +273 -0
  171. pulumi_alicloud/ram/user_policy_attachment.py +49 -27
  172. pulumi_alicloud/rds/__init__.py +1 -0
  173. pulumi_alicloud/rds/custom_disk.py +1053 -0
  174. pulumi_alicloud/rds/instance.py +110 -14
  175. pulumi_alicloud/redis/tair_instance.py +14 -14
  176. pulumi_alicloud/resourcemanager/__init__.py +1 -0
  177. pulumi_alicloud/resourcemanager/_inputs.py +53 -0
  178. pulumi_alicloud/resourcemanager/auto_grouping_rule.py +796 -0
  179. pulumi_alicloud/resourcemanager/outputs.py +50 -0
  180. pulumi_alicloud/resourcemanager/shared_resource.py +7 -0
  181. pulumi_alicloud/rocketmq/__init__.py +1 -1
  182. pulumi_alicloud/rocketmq/_inputs.py +146 -4
  183. pulumi_alicloud/rocketmq/account.py +452 -0
  184. pulumi_alicloud/rocketmq/acl.py +473 -47
  185. pulumi_alicloud/rocketmq/client_user.py +8 -2
  186. pulumi_alicloud/rocketmq/consumer_group.py +121 -24
  187. pulumi_alicloud/rocketmq/dnat_entry.py +8 -2
  188. pulumi_alicloud/rocketmq/outputs.py +113 -4
  189. pulumi_alicloud/rocketmq/qos.py +8 -2
  190. pulumi_alicloud/rocketmq/qos_car.py +10 -4
  191. pulumi_alicloud/rocketmq/qos_policy.py +6 -0
  192. pulumi_alicloud/rocketmq/rocket_mq_instance.py +136 -7
  193. pulumi_alicloud/rocketmq/rocket_mq_topic.py +121 -24
  194. pulumi_alicloud/rocketmq/snat_entry.py +8 -2
  195. pulumi_alicloud/sag/__init__.py +8 -0
  196. pulumi_alicloud/sag/acl.py +200 -0
  197. pulumi_alicloud/{rocketmq → sag}/acl_rule.py +7 -7
  198. pulumi_alicloud/sag/client_user.py +560 -0
  199. pulumi_alicloud/sag/dnat_entry.py +512 -0
  200. pulumi_alicloud/sag/get_acls.py +2 -2
  201. pulumi_alicloud/sag/qos.py +202 -0
  202. pulumi_alicloud/sag/qos_car.py +654 -0
  203. pulumi_alicloud/sag/qos_policy.py +659 -0
  204. pulumi_alicloud/sag/snat_entry.py +313 -0
  205. pulumi_alicloud/securitycenter/group.py +2 -2
  206. pulumi_alicloud/selectdb/db_instance.py +60 -11
  207. pulumi_alicloud/slb/server_group_server_attachment.py +101 -111
  208. pulumi_alicloud/sls/oss_export_sink.py +2 -2
  209. pulumi_alicloud/threatdetection/__init__.py +3 -0
  210. pulumi_alicloud/threatdetection/anti_brute_force_rule.py +41 -65
  211. pulumi_alicloud/threatdetection/asset_bind.py +209 -0
  212. pulumi_alicloud/threatdetection/asset_selection_config.py +258 -0
  213. pulumi_alicloud/threatdetection/instance.py +271 -54
  214. pulumi_alicloud/threatdetection/log_meta.py +351 -0
  215. pulumi_alicloud/vpc/__init__.py +1 -0
  216. pulumi_alicloud/vpc/_inputs.py +281 -0
  217. pulumi_alicloud/vpc/gateway_endpoint.py +85 -27
  218. pulumi_alicloud/vpc/get_ipam_ipam_pool_allocations.py +2 -2
  219. pulumi_alicloud/vpc/get_ipam_ipam_pool_cidrs.py +2 -2
  220. pulumi_alicloud/vpc/get_ipam_ipam_pools.py +2 -2
  221. pulumi_alicloud/vpc/get_ipam_ipam_scopes.py +2 -2
  222. pulumi_alicloud/vpc/get_ipam_ipams.py +2 -2
  223. pulumi_alicloud/vpc/ipv6_address.py +85 -5
  224. pulumi_alicloud/vpc/outputs.py +232 -0
  225. pulumi_alicloud/vpc/peer_connection.py +84 -42
  226. pulumi_alicloud/vpc/peer_connection_accepter.py +7 -21
  227. pulumi_alicloud/vpc/route_table.py +100 -45
  228. pulumi_alicloud/vpc/vpc_route_entry.py +724 -0
  229. pulumi_alicloud/vpn/_inputs.py +716 -71
  230. pulumi_alicloud/vpn/gateway_vpn_attachment.py +622 -128
  231. pulumi_alicloud/vpn/get_gateway_vpn_attachments.py +20 -63
  232. pulumi_alicloud/vpn/ipsec_server.py +2 -2
  233. pulumi_alicloud/vpn/outputs.py +1963 -998
  234. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/METADATA +1 -1
  235. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/RECORD +237 -197
  236. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/WHEEL +0 -0
  237. {pulumi_alicloud-3.76.0a1743571220.dist-info → pulumi_alicloud-3.76.0a1744139894.dist-info}/top_level.txt +0 -0
@@ -21,44 +21,74 @@ __all__ = ['GatewayVpnAttachmentArgs', 'GatewayVpnAttachment']
21
21
  @pulumi.input_type
22
22
  class GatewayVpnAttachmentArgs:
23
23
  def __init__(__self__, *,
24
- customer_gateway_id: pulumi.Input[str],
25
24
  local_subnet: pulumi.Input[str],
26
25
  remote_subnet: pulumi.Input[str],
27
26
  bgp_config: Optional[pulumi.Input['GatewayVpnAttachmentBgpConfigArgs']] = None,
27
+ customer_gateway_id: Optional[pulumi.Input[str]] = None,
28
28
  effect_immediately: Optional[pulumi.Input[bool]] = None,
29
29
  enable_dpd: Optional[pulumi.Input[bool]] = None,
30
30
  enable_nat_traversal: Optional[pulumi.Input[bool]] = None,
31
+ enable_tunnels_bgp: Optional[pulumi.Input[bool]] = None,
31
32
  health_check_config: Optional[pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs']] = None,
32
33
  ike_config: Optional[pulumi.Input['GatewayVpnAttachmentIkeConfigArgs']] = None,
33
34
  ipsec_config: Optional[pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs']] = None,
34
35
  network_type: Optional[pulumi.Input[str]] = None,
36
+ resource_group_id: Optional[pulumi.Input[str]] = None,
37
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
38
+ tunnel_options_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]]] = None,
35
39
  vpn_attachment_name: Optional[pulumi.Input[str]] = None):
36
40
  """
37
41
  The set of arguments for constructing a GatewayVpnAttachment resource.
38
- :param pulumi.Input[str] customer_gateway_id: The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
39
- :param pulumi.Input[str] local_subnet: The CIDR block of the virtual private cloud (VPC).
40
- :param pulumi.Input[str] remote_subnet: The CIDR block of the on-premises data center.
41
- :param pulumi.Input['GatewayVpnAttachmentBgpConfigArgs'] bgp_config: Bgp configuration information. See `bgp_config` below.
42
- :param pulumi.Input[bool] effect_immediately: Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
43
- :param pulumi.Input[bool] enable_dpd: Whether to enable the DPD (peer survival detection) function.
44
- :param pulumi.Input[bool] enable_nat_traversal: Allow NAT penetration.
45
- :param pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs'] health_check_config: Health check configuration information. See `health_check_config` below.
46
- :param pulumi.Input['GatewayVpnAttachmentIkeConfigArgs'] ike_config: Configuration negotiated in the second stage. See `ike_config` below.
47
- :param pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs'] ipsec_config: Configuration negotiated in the second stage. See `ipsec_config` below.
48
- :param pulumi.Input[str] network_type: The network type of the IPsec connection. Valid values: `public`, `private`.
49
- :param pulumi.Input[str] vpn_attachment_name: The name of the vpn attachment.
50
- """
51
- pulumi.set(__self__, "customer_gateway_id", customer_gateway_id)
42
+ :param pulumi.Input[str] local_subnet: The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
43
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
44
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
45
+ :param pulumi.Input[str] remote_subnet: The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
46
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
47
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
48
+ :param pulumi.Input['GatewayVpnAttachmentBgpConfigArgs'] bgp_config: Bgp configuration information.
49
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
50
+ :param pulumi.Input[str] customer_gateway_id: Customer gateway ID.
51
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
52
+ :param pulumi.Input[bool] effect_immediately: Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
53
+ :param pulumi.Input[bool] enable_dpd: This parameter is supported if you create an vpn attachment in single-tunnel mode.
54
+ Whether to enable the DPD (peer survival detection) function.
55
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
56
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
57
+ :param pulumi.Input[bool] enable_nat_traversal: This parameter is supported if you create an vpn attachment in single-tunnel mode.
58
+ Specifies whether to enable NAT traversal. Valid values:
59
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
60
+ - false: disables NAT traversal.
61
+ :param pulumi.Input[bool] enable_tunnels_bgp: You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
62
+
63
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
64
+ :param pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs'] health_check_config: This parameter is supported if you create an vpn attachment in single-tunnel mode.
65
+ Health check configuration information. See `health_check_config` below.
66
+ :param pulumi.Input['GatewayVpnAttachmentIkeConfigArgs'] ike_config: The configurations of Phase 1 negotiations.
67
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
68
+ :param pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs'] ipsec_config: Configuration negotiated in the second stage.
69
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
70
+ :param pulumi.Input[str] network_type: network type
71
+ :param pulumi.Input[str] resource_group_id: The ID of the resource group
72
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags
73
+ :param pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]] tunnel_options_specifications: Configure the tunnel.
74
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
75
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
76
+ :param pulumi.Input[str] vpn_attachment_name: vpn attachment name
77
+ """
52
78
  pulumi.set(__self__, "local_subnet", local_subnet)
53
79
  pulumi.set(__self__, "remote_subnet", remote_subnet)
54
80
  if bgp_config is not None:
55
81
  pulumi.set(__self__, "bgp_config", bgp_config)
82
+ if customer_gateway_id is not None:
83
+ pulumi.set(__self__, "customer_gateway_id", customer_gateway_id)
56
84
  if effect_immediately is not None:
57
85
  pulumi.set(__self__, "effect_immediately", effect_immediately)
58
86
  if enable_dpd is not None:
59
87
  pulumi.set(__self__, "enable_dpd", enable_dpd)
60
88
  if enable_nat_traversal is not None:
61
89
  pulumi.set(__self__, "enable_nat_traversal", enable_nat_traversal)
90
+ if enable_tunnels_bgp is not None:
91
+ pulumi.set(__self__, "enable_tunnels_bgp", enable_tunnels_bgp)
62
92
  if health_check_config is not None:
63
93
  pulumi.set(__self__, "health_check_config", health_check_config)
64
94
  if ike_config is not None:
@@ -67,26 +97,22 @@ class GatewayVpnAttachmentArgs:
67
97
  pulumi.set(__self__, "ipsec_config", ipsec_config)
68
98
  if network_type is not None:
69
99
  pulumi.set(__self__, "network_type", network_type)
100
+ if resource_group_id is not None:
101
+ pulumi.set(__self__, "resource_group_id", resource_group_id)
102
+ if tags is not None:
103
+ pulumi.set(__self__, "tags", tags)
104
+ if tunnel_options_specifications is not None:
105
+ pulumi.set(__self__, "tunnel_options_specifications", tunnel_options_specifications)
70
106
  if vpn_attachment_name is not None:
71
107
  pulumi.set(__self__, "vpn_attachment_name", vpn_attachment_name)
72
108
 
73
- @property
74
- @pulumi.getter(name="customerGatewayId")
75
- def customer_gateway_id(self) -> pulumi.Input[str]:
76
- """
77
- The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
78
- """
79
- return pulumi.get(self, "customer_gateway_id")
80
-
81
- @customer_gateway_id.setter
82
- def customer_gateway_id(self, value: pulumi.Input[str]):
83
- pulumi.set(self, "customer_gateway_id", value)
84
-
85
109
  @property
86
110
  @pulumi.getter(name="localSubnet")
87
111
  def local_subnet(self) -> pulumi.Input[str]:
88
112
  """
89
- The CIDR block of the virtual private cloud (VPC).
113
+ The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
114
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
115
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
90
116
  """
91
117
  return pulumi.get(self, "local_subnet")
92
118
 
@@ -98,7 +124,9 @@ class GatewayVpnAttachmentArgs:
98
124
  @pulumi.getter(name="remoteSubnet")
99
125
  def remote_subnet(self) -> pulumi.Input[str]:
100
126
  """
101
- The CIDR block of the on-premises data center.
127
+ The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
128
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
129
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
102
130
  """
103
131
  return pulumi.get(self, "remote_subnet")
104
132
 
@@ -110,7 +138,8 @@ class GatewayVpnAttachmentArgs:
110
138
  @pulumi.getter(name="bgpConfig")
111
139
  def bgp_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentBgpConfigArgs']]:
112
140
  """
113
- Bgp configuration information. See `bgp_config` below.
141
+ Bgp configuration information.
142
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
114
143
  """
115
144
  return pulumi.get(self, "bgp_config")
116
145
 
@@ -118,11 +147,24 @@ class GatewayVpnAttachmentArgs:
118
147
  def bgp_config(self, value: Optional[pulumi.Input['GatewayVpnAttachmentBgpConfigArgs']]):
119
148
  pulumi.set(self, "bgp_config", value)
120
149
 
150
+ @property
151
+ @pulumi.getter(name="customerGatewayId")
152
+ def customer_gateway_id(self) -> Optional[pulumi.Input[str]]:
153
+ """
154
+ Customer gateway ID.
155
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
156
+ """
157
+ return pulumi.get(self, "customer_gateway_id")
158
+
159
+ @customer_gateway_id.setter
160
+ def customer_gateway_id(self, value: Optional[pulumi.Input[str]]):
161
+ pulumi.set(self, "customer_gateway_id", value)
162
+
121
163
  @property
122
164
  @pulumi.getter(name="effectImmediately")
123
165
  def effect_immediately(self) -> Optional[pulumi.Input[bool]]:
124
166
  """
125
- Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
167
+ Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
126
168
  """
127
169
  return pulumi.get(self, "effect_immediately")
128
170
 
@@ -134,7 +176,10 @@ class GatewayVpnAttachmentArgs:
134
176
  @pulumi.getter(name="enableDpd")
135
177
  def enable_dpd(self) -> Optional[pulumi.Input[bool]]:
136
178
  """
179
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
137
180
  Whether to enable the DPD (peer survival detection) function.
181
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
182
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
138
183
  """
139
184
  return pulumi.get(self, "enable_dpd")
140
185
 
@@ -146,7 +191,10 @@ class GatewayVpnAttachmentArgs:
146
191
  @pulumi.getter(name="enableNatTraversal")
147
192
  def enable_nat_traversal(self) -> Optional[pulumi.Input[bool]]:
148
193
  """
149
- Allow NAT penetration.
194
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
195
+ Specifies whether to enable NAT traversal. Valid values:
196
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
197
+ - false: disables NAT traversal.
150
198
  """
151
199
  return pulumi.get(self, "enable_nat_traversal")
152
200
 
@@ -154,10 +202,25 @@ class GatewayVpnAttachmentArgs:
154
202
  def enable_nat_traversal(self, value: Optional[pulumi.Input[bool]]):
155
203
  pulumi.set(self, "enable_nat_traversal", value)
156
204
 
205
+ @property
206
+ @pulumi.getter(name="enableTunnelsBgp")
207
+ def enable_tunnels_bgp(self) -> Optional[pulumi.Input[bool]]:
208
+ """
209
+ You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
210
+
211
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
212
+ """
213
+ return pulumi.get(self, "enable_tunnels_bgp")
214
+
215
+ @enable_tunnels_bgp.setter
216
+ def enable_tunnels_bgp(self, value: Optional[pulumi.Input[bool]]):
217
+ pulumi.set(self, "enable_tunnels_bgp", value)
218
+
157
219
  @property
158
220
  @pulumi.getter(name="healthCheckConfig")
159
221
  def health_check_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs']]:
160
222
  """
223
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
161
224
  Health check configuration information. See `health_check_config` below.
162
225
  """
163
226
  return pulumi.get(self, "health_check_config")
@@ -170,7 +233,8 @@ class GatewayVpnAttachmentArgs:
170
233
  @pulumi.getter(name="ikeConfig")
171
234
  def ike_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentIkeConfigArgs']]:
172
235
  """
173
- Configuration negotiated in the second stage. See `ike_config` below.
236
+ The configurations of Phase 1 negotiations.
237
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
174
238
  """
175
239
  return pulumi.get(self, "ike_config")
176
240
 
@@ -182,7 +246,8 @@ class GatewayVpnAttachmentArgs:
182
246
  @pulumi.getter(name="ipsecConfig")
183
247
  def ipsec_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs']]:
184
248
  """
185
- Configuration negotiated in the second stage. See `ipsec_config` below.
249
+ Configuration negotiated in the second stage.
250
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
186
251
  """
187
252
  return pulumi.get(self, "ipsec_config")
188
253
 
@@ -194,7 +259,7 @@ class GatewayVpnAttachmentArgs:
194
259
  @pulumi.getter(name="networkType")
195
260
  def network_type(self) -> Optional[pulumi.Input[str]]:
196
261
  """
197
- The network type of the IPsec connection. Valid values: `public`, `private`.
262
+ network type
198
263
  """
199
264
  return pulumi.get(self, "network_type")
200
265
 
@@ -202,11 +267,49 @@ class GatewayVpnAttachmentArgs:
202
267
  def network_type(self, value: Optional[pulumi.Input[str]]):
203
268
  pulumi.set(self, "network_type", value)
204
269
 
270
+ @property
271
+ @pulumi.getter(name="resourceGroupId")
272
+ def resource_group_id(self) -> Optional[pulumi.Input[str]]:
273
+ """
274
+ The ID of the resource group
275
+ """
276
+ return pulumi.get(self, "resource_group_id")
277
+
278
+ @resource_group_id.setter
279
+ def resource_group_id(self, value: Optional[pulumi.Input[str]]):
280
+ pulumi.set(self, "resource_group_id", value)
281
+
282
+ @property
283
+ @pulumi.getter
284
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
285
+ """
286
+ Tags
287
+ """
288
+ return pulumi.get(self, "tags")
289
+
290
+ @tags.setter
291
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
292
+ pulumi.set(self, "tags", value)
293
+
294
+ @property
295
+ @pulumi.getter(name="tunnelOptionsSpecifications")
296
+ def tunnel_options_specifications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]]]:
297
+ """
298
+ Configure the tunnel.
299
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
300
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
301
+ """
302
+ return pulumi.get(self, "tunnel_options_specifications")
303
+
304
+ @tunnel_options_specifications.setter
305
+ def tunnel_options_specifications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]]]):
306
+ pulumi.set(self, "tunnel_options_specifications", value)
307
+
205
308
  @property
206
309
  @pulumi.getter(name="vpnAttachmentName")
207
310
  def vpn_attachment_name(self) -> Optional[pulumi.Input[str]]:
208
311
  """
209
- The name of the vpn attachment.
312
+ vpn attachment name
210
313
  """
211
314
  return pulumi.get(self, "vpn_attachment_name")
212
315
 
@@ -219,38 +322,67 @@ class GatewayVpnAttachmentArgs:
219
322
  class _GatewayVpnAttachmentState:
220
323
  def __init__(__self__, *,
221
324
  bgp_config: Optional[pulumi.Input['GatewayVpnAttachmentBgpConfigArgs']] = None,
325
+ create_time: Optional[pulumi.Input[str]] = None,
222
326
  customer_gateway_id: Optional[pulumi.Input[str]] = None,
223
327
  effect_immediately: Optional[pulumi.Input[bool]] = None,
224
328
  enable_dpd: Optional[pulumi.Input[bool]] = None,
225
329
  enable_nat_traversal: Optional[pulumi.Input[bool]] = None,
330
+ enable_tunnels_bgp: Optional[pulumi.Input[bool]] = None,
226
331
  health_check_config: Optional[pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs']] = None,
227
332
  ike_config: Optional[pulumi.Input['GatewayVpnAttachmentIkeConfigArgs']] = None,
228
- internet_ip: Optional[pulumi.Input[str]] = None,
229
333
  ipsec_config: Optional[pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs']] = None,
230
334
  local_subnet: Optional[pulumi.Input[str]] = None,
231
335
  network_type: Optional[pulumi.Input[str]] = None,
232
336
  remote_subnet: Optional[pulumi.Input[str]] = None,
337
+ resource_group_id: Optional[pulumi.Input[str]] = None,
233
338
  status: Optional[pulumi.Input[str]] = None,
339
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
340
+ tunnel_options_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]]] = None,
234
341
  vpn_attachment_name: Optional[pulumi.Input[str]] = None):
235
342
  """
236
343
  Input properties used for looking up and filtering GatewayVpnAttachment resources.
237
- :param pulumi.Input['GatewayVpnAttachmentBgpConfigArgs'] bgp_config: Bgp configuration information. See `bgp_config` below.
238
- :param pulumi.Input[str] customer_gateway_id: The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
239
- :param pulumi.Input[bool] effect_immediately: Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
240
- :param pulumi.Input[bool] enable_dpd: Whether to enable the DPD (peer survival detection) function.
241
- :param pulumi.Input[bool] enable_nat_traversal: Allow NAT penetration.
242
- :param pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs'] health_check_config: Health check configuration information. See `health_check_config` below.
243
- :param pulumi.Input['GatewayVpnAttachmentIkeConfigArgs'] ike_config: Configuration negotiated in the second stage. See `ike_config` below.
244
- :param pulumi.Input[str] internet_ip: The VPN gateway IP.
245
- :param pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs'] ipsec_config: Configuration negotiated in the second stage. See `ipsec_config` below.
246
- :param pulumi.Input[str] local_subnet: The CIDR block of the virtual private cloud (VPC).
247
- :param pulumi.Input[str] network_type: The network type of the IPsec connection. Valid values: `public`, `private`.
248
- :param pulumi.Input[str] remote_subnet: The CIDR block of the on-premises data center.
249
- :param pulumi.Input[str] status: The status of the resource.
250
- :param pulumi.Input[str] vpn_attachment_name: The name of the vpn attachment.
344
+ :param pulumi.Input['GatewayVpnAttachmentBgpConfigArgs'] bgp_config: Bgp configuration information.
345
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
346
+ :param pulumi.Input[str] create_time: The creation time of the resource
347
+ :param pulumi.Input[str] customer_gateway_id: Customer gateway ID.
348
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
349
+ :param pulumi.Input[bool] effect_immediately: Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
350
+ :param pulumi.Input[bool] enable_dpd: This parameter is supported if you create an vpn attachment in single-tunnel mode.
351
+ Whether to enable the DPD (peer survival detection) function.
352
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
353
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
354
+ :param pulumi.Input[bool] enable_nat_traversal: This parameter is supported if you create an vpn attachment in single-tunnel mode.
355
+ Specifies whether to enable NAT traversal. Valid values:
356
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
357
+ - false: disables NAT traversal.
358
+ :param pulumi.Input[bool] enable_tunnels_bgp: You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
359
+
360
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
361
+ :param pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs'] health_check_config: This parameter is supported if you create an vpn attachment in single-tunnel mode.
362
+ Health check configuration information. See `health_check_config` below.
363
+ :param pulumi.Input['GatewayVpnAttachmentIkeConfigArgs'] ike_config: The configurations of Phase 1 negotiations.
364
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
365
+ :param pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs'] ipsec_config: Configuration negotiated in the second stage.
366
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
367
+ :param pulumi.Input[str] local_subnet: The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
368
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
369
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
370
+ :param pulumi.Input[str] network_type: network type
371
+ :param pulumi.Input[str] remote_subnet: The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
372
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
373
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
374
+ :param pulumi.Input[str] resource_group_id: The ID of the resource group
375
+ :param pulumi.Input[str] status: The negotiation status of Tunnel.
376
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags
377
+ :param pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]] tunnel_options_specifications: Configure the tunnel.
378
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
379
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
380
+ :param pulumi.Input[str] vpn_attachment_name: vpn attachment name
251
381
  """
252
382
  if bgp_config is not None:
253
383
  pulumi.set(__self__, "bgp_config", bgp_config)
384
+ if create_time is not None:
385
+ pulumi.set(__self__, "create_time", create_time)
254
386
  if customer_gateway_id is not None:
255
387
  pulumi.set(__self__, "customer_gateway_id", customer_gateway_id)
256
388
  if effect_immediately is not None:
@@ -259,12 +391,12 @@ class _GatewayVpnAttachmentState:
259
391
  pulumi.set(__self__, "enable_dpd", enable_dpd)
260
392
  if enable_nat_traversal is not None:
261
393
  pulumi.set(__self__, "enable_nat_traversal", enable_nat_traversal)
394
+ if enable_tunnels_bgp is not None:
395
+ pulumi.set(__self__, "enable_tunnels_bgp", enable_tunnels_bgp)
262
396
  if health_check_config is not None:
263
397
  pulumi.set(__self__, "health_check_config", health_check_config)
264
398
  if ike_config is not None:
265
399
  pulumi.set(__self__, "ike_config", ike_config)
266
- if internet_ip is not None:
267
- pulumi.set(__self__, "internet_ip", internet_ip)
268
400
  if ipsec_config is not None:
269
401
  pulumi.set(__self__, "ipsec_config", ipsec_config)
270
402
  if local_subnet is not None:
@@ -273,8 +405,14 @@ class _GatewayVpnAttachmentState:
273
405
  pulumi.set(__self__, "network_type", network_type)
274
406
  if remote_subnet is not None:
275
407
  pulumi.set(__self__, "remote_subnet", remote_subnet)
408
+ if resource_group_id is not None:
409
+ pulumi.set(__self__, "resource_group_id", resource_group_id)
276
410
  if status is not None:
277
411
  pulumi.set(__self__, "status", status)
412
+ if tags is not None:
413
+ pulumi.set(__self__, "tags", tags)
414
+ if tunnel_options_specifications is not None:
415
+ pulumi.set(__self__, "tunnel_options_specifications", tunnel_options_specifications)
278
416
  if vpn_attachment_name is not None:
279
417
  pulumi.set(__self__, "vpn_attachment_name", vpn_attachment_name)
280
418
 
@@ -282,7 +420,8 @@ class _GatewayVpnAttachmentState:
282
420
  @pulumi.getter(name="bgpConfig")
283
421
  def bgp_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentBgpConfigArgs']]:
284
422
  """
285
- Bgp configuration information. See `bgp_config` below.
423
+ Bgp configuration information.
424
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
286
425
  """
287
426
  return pulumi.get(self, "bgp_config")
288
427
 
@@ -290,11 +429,24 @@ class _GatewayVpnAttachmentState:
290
429
  def bgp_config(self, value: Optional[pulumi.Input['GatewayVpnAttachmentBgpConfigArgs']]):
291
430
  pulumi.set(self, "bgp_config", value)
292
431
 
432
+ @property
433
+ @pulumi.getter(name="createTime")
434
+ def create_time(self) -> Optional[pulumi.Input[str]]:
435
+ """
436
+ The creation time of the resource
437
+ """
438
+ return pulumi.get(self, "create_time")
439
+
440
+ @create_time.setter
441
+ def create_time(self, value: Optional[pulumi.Input[str]]):
442
+ pulumi.set(self, "create_time", value)
443
+
293
444
  @property
294
445
  @pulumi.getter(name="customerGatewayId")
295
446
  def customer_gateway_id(self) -> Optional[pulumi.Input[str]]:
296
447
  """
297
- The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
448
+ Customer gateway ID.
449
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
298
450
  """
299
451
  return pulumi.get(self, "customer_gateway_id")
300
452
 
@@ -306,7 +458,7 @@ class _GatewayVpnAttachmentState:
306
458
  @pulumi.getter(name="effectImmediately")
307
459
  def effect_immediately(self) -> Optional[pulumi.Input[bool]]:
308
460
  """
309
- Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
461
+ Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
310
462
  """
311
463
  return pulumi.get(self, "effect_immediately")
312
464
 
@@ -318,7 +470,10 @@ class _GatewayVpnAttachmentState:
318
470
  @pulumi.getter(name="enableDpd")
319
471
  def enable_dpd(self) -> Optional[pulumi.Input[bool]]:
320
472
  """
473
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
321
474
  Whether to enable the DPD (peer survival detection) function.
475
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
476
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
322
477
  """
323
478
  return pulumi.get(self, "enable_dpd")
324
479
 
@@ -330,7 +485,10 @@ class _GatewayVpnAttachmentState:
330
485
  @pulumi.getter(name="enableNatTraversal")
331
486
  def enable_nat_traversal(self) -> Optional[pulumi.Input[bool]]:
332
487
  """
333
- Allow NAT penetration.
488
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
489
+ Specifies whether to enable NAT traversal. Valid values:
490
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
491
+ - false: disables NAT traversal.
334
492
  """
335
493
  return pulumi.get(self, "enable_nat_traversal")
336
494
 
@@ -338,10 +496,25 @@ class _GatewayVpnAttachmentState:
338
496
  def enable_nat_traversal(self, value: Optional[pulumi.Input[bool]]):
339
497
  pulumi.set(self, "enable_nat_traversal", value)
340
498
 
499
+ @property
500
+ @pulumi.getter(name="enableTunnelsBgp")
501
+ def enable_tunnels_bgp(self) -> Optional[pulumi.Input[bool]]:
502
+ """
503
+ You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
504
+
505
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
506
+ """
507
+ return pulumi.get(self, "enable_tunnels_bgp")
508
+
509
+ @enable_tunnels_bgp.setter
510
+ def enable_tunnels_bgp(self, value: Optional[pulumi.Input[bool]]):
511
+ pulumi.set(self, "enable_tunnels_bgp", value)
512
+
341
513
  @property
342
514
  @pulumi.getter(name="healthCheckConfig")
343
515
  def health_check_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentHealthCheckConfigArgs']]:
344
516
  """
517
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
345
518
  Health check configuration information. See `health_check_config` below.
346
519
  """
347
520
  return pulumi.get(self, "health_check_config")
@@ -354,7 +527,8 @@ class _GatewayVpnAttachmentState:
354
527
  @pulumi.getter(name="ikeConfig")
355
528
  def ike_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentIkeConfigArgs']]:
356
529
  """
357
- Configuration negotiated in the second stage. See `ike_config` below.
530
+ The configurations of Phase 1 negotiations.
531
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
358
532
  """
359
533
  return pulumi.get(self, "ike_config")
360
534
 
@@ -362,23 +536,12 @@ class _GatewayVpnAttachmentState:
362
536
  def ike_config(self, value: Optional[pulumi.Input['GatewayVpnAttachmentIkeConfigArgs']]):
363
537
  pulumi.set(self, "ike_config", value)
364
538
 
365
- @property
366
- @pulumi.getter(name="internetIp")
367
- def internet_ip(self) -> Optional[pulumi.Input[str]]:
368
- """
369
- The VPN gateway IP.
370
- """
371
- return pulumi.get(self, "internet_ip")
372
-
373
- @internet_ip.setter
374
- def internet_ip(self, value: Optional[pulumi.Input[str]]):
375
- pulumi.set(self, "internet_ip", value)
376
-
377
539
  @property
378
540
  @pulumi.getter(name="ipsecConfig")
379
541
  def ipsec_config(self) -> Optional[pulumi.Input['GatewayVpnAttachmentIpsecConfigArgs']]:
380
542
  """
381
- Configuration negotiated in the second stage. See `ipsec_config` below.
543
+ Configuration negotiated in the second stage.
544
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
382
545
  """
383
546
  return pulumi.get(self, "ipsec_config")
384
547
 
@@ -390,7 +553,9 @@ class _GatewayVpnAttachmentState:
390
553
  @pulumi.getter(name="localSubnet")
391
554
  def local_subnet(self) -> Optional[pulumi.Input[str]]:
392
555
  """
393
- The CIDR block of the virtual private cloud (VPC).
556
+ The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
557
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
558
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
394
559
  """
395
560
  return pulumi.get(self, "local_subnet")
396
561
 
@@ -402,7 +567,7 @@ class _GatewayVpnAttachmentState:
402
567
  @pulumi.getter(name="networkType")
403
568
  def network_type(self) -> Optional[pulumi.Input[str]]:
404
569
  """
405
- The network type of the IPsec connection. Valid values: `public`, `private`.
570
+ network type
406
571
  """
407
572
  return pulumi.get(self, "network_type")
408
573
 
@@ -414,7 +579,9 @@ class _GatewayVpnAttachmentState:
414
579
  @pulumi.getter(name="remoteSubnet")
415
580
  def remote_subnet(self) -> Optional[pulumi.Input[str]]:
416
581
  """
417
- The CIDR block of the on-premises data center.
582
+ The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
583
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
584
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
418
585
  """
419
586
  return pulumi.get(self, "remote_subnet")
420
587
 
@@ -422,11 +589,23 @@ class _GatewayVpnAttachmentState:
422
589
  def remote_subnet(self, value: Optional[pulumi.Input[str]]):
423
590
  pulumi.set(self, "remote_subnet", value)
424
591
 
592
+ @property
593
+ @pulumi.getter(name="resourceGroupId")
594
+ def resource_group_id(self) -> Optional[pulumi.Input[str]]:
595
+ """
596
+ The ID of the resource group
597
+ """
598
+ return pulumi.get(self, "resource_group_id")
599
+
600
+ @resource_group_id.setter
601
+ def resource_group_id(self, value: Optional[pulumi.Input[str]]):
602
+ pulumi.set(self, "resource_group_id", value)
603
+
425
604
  @property
426
605
  @pulumi.getter
427
606
  def status(self) -> Optional[pulumi.Input[str]]:
428
607
  """
429
- The status of the resource.
608
+ The negotiation status of Tunnel.
430
609
  """
431
610
  return pulumi.get(self, "status")
432
611
 
@@ -434,11 +613,37 @@ class _GatewayVpnAttachmentState:
434
613
  def status(self, value: Optional[pulumi.Input[str]]):
435
614
  pulumi.set(self, "status", value)
436
615
 
616
+ @property
617
+ @pulumi.getter
618
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
619
+ """
620
+ Tags
621
+ """
622
+ return pulumi.get(self, "tags")
623
+
624
+ @tags.setter
625
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
626
+ pulumi.set(self, "tags", value)
627
+
628
+ @property
629
+ @pulumi.getter(name="tunnelOptionsSpecifications")
630
+ def tunnel_options_specifications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]]]:
631
+ """
632
+ Configure the tunnel.
633
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
634
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
635
+ """
636
+ return pulumi.get(self, "tunnel_options_specifications")
637
+
638
+ @tunnel_options_specifications.setter
639
+ def tunnel_options_specifications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GatewayVpnAttachmentTunnelOptionsSpecificationArgs']]]]):
640
+ pulumi.set(self, "tunnel_options_specifications", value)
641
+
437
642
  @property
438
643
  @pulumi.getter(name="vpnAttachmentName")
439
644
  def vpn_attachment_name(self) -> Optional[pulumi.Input[str]]:
440
645
  """
441
- The name of the vpn attachment.
646
+ vpn attachment name
442
647
  """
443
648
  return pulumi.get(self, "vpn_attachment_name")
444
649
 
@@ -457,17 +662,23 @@ class GatewayVpnAttachment(pulumi.CustomResource):
457
662
  effect_immediately: Optional[pulumi.Input[bool]] = None,
458
663
  enable_dpd: Optional[pulumi.Input[bool]] = None,
459
664
  enable_nat_traversal: Optional[pulumi.Input[bool]] = None,
665
+ enable_tunnels_bgp: Optional[pulumi.Input[bool]] = None,
460
666
  health_check_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']]] = None,
461
667
  ike_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']]] = None,
462
668
  ipsec_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']]] = None,
463
669
  local_subnet: Optional[pulumi.Input[str]] = None,
464
670
  network_type: Optional[pulumi.Input[str]] = None,
465
671
  remote_subnet: Optional[pulumi.Input[str]] = None,
672
+ resource_group_id: Optional[pulumi.Input[str]] = None,
673
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
674
+ tunnel_options_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GatewayVpnAttachmentTunnelOptionsSpecificationArgs', 'GatewayVpnAttachmentTunnelOptionsSpecificationArgsDict']]]]] = None,
466
675
  vpn_attachment_name: Optional[pulumi.Input[str]] = None,
467
676
  __props__=None):
468
677
  """
469
678
  Provides a VPN Gateway Vpn Attachment resource.
470
679
 
680
+ VpnAttachment has been upgraded to dual-tunnel mode. When you create a VpnAttachment in dual tunnel mode, you can configure the following request parameters in addition to the required parameters: vpn_attachment_name, network_type, effectImmediately, tags array, resource_group_id, tunnel_options_specification array, and enable_tunnels_bgp.
681
+
471
682
  For information about VPN Gateway Vpn Attachment and how to use it, see [What is Vpn Attachment](https://www.alibabacloud.com/help/zh/virtual-private-cloud/latest/createvpnattachment).
472
683
 
473
684
  > **NOTE:** Available since v1.181.0.
@@ -531,6 +742,91 @@ class GatewayVpnAttachment(pulumi.CustomResource):
531
742
  vpn_attachment_name=name)
532
743
  ```
533
744
 
745
+ Dual Tunnel Mode Usage
746
+
747
+ ```python
748
+ import pulumi
749
+ import pulumi_alicloud as alicloud
750
+
751
+ config = pulumi.Config()
752
+ name = config.get("name")
753
+ if name is None:
754
+ name = "tf_example"
755
+ default = alicloud.resourcemanager.get_resource_groups()
756
+ cgw1 = alicloud.vpn.CustomerGateway("cgw1",
757
+ ip_address="2.2.2.2",
758
+ asn="1219001")
759
+ cgw2 = alicloud.vpn.CustomerGateway("cgw2",
760
+ ip_address="43.43.3.22",
761
+ asn="44331",
762
+ customer_gateway_name="example_amp")
763
+ default_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment("default",
764
+ local_subnet="0.0.0.0/0",
765
+ enable_tunnels_bgp=True,
766
+ vpn_attachment_name="tfaccvpngateway25800",
767
+ tunnel_options_specifications=[
768
+ {
769
+ "tunnel_ipsec_config": {
770
+ "ipsec_lifetime": 86200,
771
+ "ipsec_pfs": "group5",
772
+ "ipsec_auth_alg": "md5",
773
+ "ipsec_enc_alg": "aes",
774
+ },
775
+ "customer_gateway_id": cgw1.id,
776
+ "enable_dpd": True,
777
+ "enable_nat_traversal": True,
778
+ "tunnel_index": 1,
779
+ "tunnel_bgp_config": {
780
+ "local_asn": 1219001,
781
+ "local_bgp_ip": "169.254.10.1",
782
+ "tunnel_cidr": "169.254.10.0/30",
783
+ },
784
+ "tunnel_ike_config": {
785
+ "ike_mode": "main",
786
+ "ike_version": "ikev1",
787
+ "psk": "12345678",
788
+ "remote_id": "2.2.2.2",
789
+ "ike_auth_alg": "md5",
790
+ "ike_enc_alg": "aes",
791
+ "ike_lifetime": 86100,
792
+ "ike_pfs": "group2",
793
+ "local_id": "1.1.1.1",
794
+ },
795
+ },
796
+ {
797
+ "tunnel_ipsec_config": {
798
+ "ipsec_enc_alg": "aes",
799
+ "ipsec_lifetime": 86400,
800
+ "ipsec_pfs": "group5",
801
+ "ipsec_auth_alg": "sha256",
802
+ },
803
+ "customer_gateway_id": cgw1.id,
804
+ "enable_dpd": True,
805
+ "enable_nat_traversal": True,
806
+ "tunnel_index": 2,
807
+ "tunnel_bgp_config": {
808
+ "local_asn": 1219001,
809
+ "local_bgp_ip": "169.254.20.1",
810
+ "tunnel_cidr": "169.254.20.0/30",
811
+ },
812
+ "tunnel_ike_config": {
813
+ "local_id": "4.4.4.4",
814
+ "remote_id": "5.5.5.5",
815
+ "ike_lifetime": 86400,
816
+ "ike_mode": "main",
817
+ "ike_pfs": "group5",
818
+ "ike_version": "ikev2",
819
+ "ike_auth_alg": "md5",
820
+ "ike_enc_alg": "aes",
821
+ "psk": "32333442",
822
+ },
823
+ },
824
+ ],
825
+ remote_subnet="0.0.0.0/0",
826
+ network_type="public",
827
+ resource_group_id=default.ids[0])
828
+ ```
829
+
534
830
  ## Import
535
831
 
536
832
  VPN Gateway Vpn Attachment can be imported using the id, e.g.
@@ -541,18 +837,41 @@ class GatewayVpnAttachment(pulumi.CustomResource):
541
837
 
542
838
  :param str resource_name: The name of the resource.
543
839
  :param pulumi.ResourceOptions opts: Options for the resource.
544
- :param pulumi.Input[Union['GatewayVpnAttachmentBgpConfigArgs', 'GatewayVpnAttachmentBgpConfigArgsDict']] bgp_config: Bgp configuration information. See `bgp_config` below.
545
- :param pulumi.Input[str] customer_gateway_id: The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
546
- :param pulumi.Input[bool] effect_immediately: Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
547
- :param pulumi.Input[bool] enable_dpd: Whether to enable the DPD (peer survival detection) function.
548
- :param pulumi.Input[bool] enable_nat_traversal: Allow NAT penetration.
549
- :param pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']] health_check_config: Health check configuration information. See `health_check_config` below.
550
- :param pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']] ike_config: Configuration negotiated in the second stage. See `ike_config` below.
551
- :param pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']] ipsec_config: Configuration negotiated in the second stage. See `ipsec_config` below.
552
- :param pulumi.Input[str] local_subnet: The CIDR block of the virtual private cloud (VPC).
553
- :param pulumi.Input[str] network_type: The network type of the IPsec connection. Valid values: `public`, `private`.
554
- :param pulumi.Input[str] remote_subnet: The CIDR block of the on-premises data center.
555
- :param pulumi.Input[str] vpn_attachment_name: The name of the vpn attachment.
840
+ :param pulumi.Input[Union['GatewayVpnAttachmentBgpConfigArgs', 'GatewayVpnAttachmentBgpConfigArgsDict']] bgp_config: Bgp configuration information.
841
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
842
+ :param pulumi.Input[str] customer_gateway_id: Customer gateway ID.
843
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
844
+ :param pulumi.Input[bool] effect_immediately: Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
845
+ :param pulumi.Input[bool] enable_dpd: This parameter is supported if you create an vpn attachment in single-tunnel mode.
846
+ Whether to enable the DPD (peer survival detection) function.
847
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
848
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
849
+ :param pulumi.Input[bool] enable_nat_traversal: This parameter is supported if you create an vpn attachment in single-tunnel mode.
850
+ Specifies whether to enable NAT traversal. Valid values:
851
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
852
+ - false: disables NAT traversal.
853
+ :param pulumi.Input[bool] enable_tunnels_bgp: You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
854
+
855
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
856
+ :param pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']] health_check_config: This parameter is supported if you create an vpn attachment in single-tunnel mode.
857
+ Health check configuration information. See `health_check_config` below.
858
+ :param pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']] ike_config: The configurations of Phase 1 negotiations.
859
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
860
+ :param pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']] ipsec_config: Configuration negotiated in the second stage.
861
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
862
+ :param pulumi.Input[str] local_subnet: The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
863
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
864
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
865
+ :param pulumi.Input[str] network_type: network type
866
+ :param pulumi.Input[str] remote_subnet: The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
867
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
868
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
869
+ :param pulumi.Input[str] resource_group_id: The ID of the resource group
870
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags
871
+ :param pulumi.Input[Sequence[pulumi.Input[Union['GatewayVpnAttachmentTunnelOptionsSpecificationArgs', 'GatewayVpnAttachmentTunnelOptionsSpecificationArgsDict']]]] tunnel_options_specifications: Configure the tunnel.
872
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
873
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
874
+ :param pulumi.Input[str] vpn_attachment_name: vpn attachment name
556
875
  """
557
876
  ...
558
877
  @overload
@@ -563,6 +882,8 @@ class GatewayVpnAttachment(pulumi.CustomResource):
563
882
  """
564
883
  Provides a VPN Gateway Vpn Attachment resource.
565
884
 
885
+ VpnAttachment has been upgraded to dual-tunnel mode. When you create a VpnAttachment in dual tunnel mode, you can configure the following request parameters in addition to the required parameters: vpn_attachment_name, network_type, effectImmediately, tags array, resource_group_id, tunnel_options_specification array, and enable_tunnels_bgp.
886
+
566
887
  For information about VPN Gateway Vpn Attachment and how to use it, see [What is Vpn Attachment](https://www.alibabacloud.com/help/zh/virtual-private-cloud/latest/createvpnattachment).
567
888
 
568
889
  > **NOTE:** Available since v1.181.0.
@@ -626,6 +947,91 @@ class GatewayVpnAttachment(pulumi.CustomResource):
626
947
  vpn_attachment_name=name)
627
948
  ```
628
949
 
950
+ Dual Tunnel Mode Usage
951
+
952
+ ```python
953
+ import pulumi
954
+ import pulumi_alicloud as alicloud
955
+
956
+ config = pulumi.Config()
957
+ name = config.get("name")
958
+ if name is None:
959
+ name = "tf_example"
960
+ default = alicloud.resourcemanager.get_resource_groups()
961
+ cgw1 = alicloud.vpn.CustomerGateway("cgw1",
962
+ ip_address="2.2.2.2",
963
+ asn="1219001")
964
+ cgw2 = alicloud.vpn.CustomerGateway("cgw2",
965
+ ip_address="43.43.3.22",
966
+ asn="44331",
967
+ customer_gateway_name="example_amp")
968
+ default_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment("default",
969
+ local_subnet="0.0.0.0/0",
970
+ enable_tunnels_bgp=True,
971
+ vpn_attachment_name="tfaccvpngateway25800",
972
+ tunnel_options_specifications=[
973
+ {
974
+ "tunnel_ipsec_config": {
975
+ "ipsec_lifetime": 86200,
976
+ "ipsec_pfs": "group5",
977
+ "ipsec_auth_alg": "md5",
978
+ "ipsec_enc_alg": "aes",
979
+ },
980
+ "customer_gateway_id": cgw1.id,
981
+ "enable_dpd": True,
982
+ "enable_nat_traversal": True,
983
+ "tunnel_index": 1,
984
+ "tunnel_bgp_config": {
985
+ "local_asn": 1219001,
986
+ "local_bgp_ip": "169.254.10.1",
987
+ "tunnel_cidr": "169.254.10.0/30",
988
+ },
989
+ "tunnel_ike_config": {
990
+ "ike_mode": "main",
991
+ "ike_version": "ikev1",
992
+ "psk": "12345678",
993
+ "remote_id": "2.2.2.2",
994
+ "ike_auth_alg": "md5",
995
+ "ike_enc_alg": "aes",
996
+ "ike_lifetime": 86100,
997
+ "ike_pfs": "group2",
998
+ "local_id": "1.1.1.1",
999
+ },
1000
+ },
1001
+ {
1002
+ "tunnel_ipsec_config": {
1003
+ "ipsec_enc_alg": "aes",
1004
+ "ipsec_lifetime": 86400,
1005
+ "ipsec_pfs": "group5",
1006
+ "ipsec_auth_alg": "sha256",
1007
+ },
1008
+ "customer_gateway_id": cgw1.id,
1009
+ "enable_dpd": True,
1010
+ "enable_nat_traversal": True,
1011
+ "tunnel_index": 2,
1012
+ "tunnel_bgp_config": {
1013
+ "local_asn": 1219001,
1014
+ "local_bgp_ip": "169.254.20.1",
1015
+ "tunnel_cidr": "169.254.20.0/30",
1016
+ },
1017
+ "tunnel_ike_config": {
1018
+ "local_id": "4.4.4.4",
1019
+ "remote_id": "5.5.5.5",
1020
+ "ike_lifetime": 86400,
1021
+ "ike_mode": "main",
1022
+ "ike_pfs": "group5",
1023
+ "ike_version": "ikev2",
1024
+ "ike_auth_alg": "md5",
1025
+ "ike_enc_alg": "aes",
1026
+ "psk": "32333442",
1027
+ },
1028
+ },
1029
+ ],
1030
+ remote_subnet="0.0.0.0/0",
1031
+ network_type="public",
1032
+ resource_group_id=default.ids[0])
1033
+ ```
1034
+
629
1035
  ## Import
630
1036
 
631
1037
  VPN Gateway Vpn Attachment can be imported using the id, e.g.
@@ -654,12 +1060,16 @@ class GatewayVpnAttachment(pulumi.CustomResource):
654
1060
  effect_immediately: Optional[pulumi.Input[bool]] = None,
655
1061
  enable_dpd: Optional[pulumi.Input[bool]] = None,
656
1062
  enable_nat_traversal: Optional[pulumi.Input[bool]] = None,
1063
+ enable_tunnels_bgp: Optional[pulumi.Input[bool]] = None,
657
1064
  health_check_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']]] = None,
658
1065
  ike_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']]] = None,
659
1066
  ipsec_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']]] = None,
660
1067
  local_subnet: Optional[pulumi.Input[str]] = None,
661
1068
  network_type: Optional[pulumi.Input[str]] = None,
662
1069
  remote_subnet: Optional[pulumi.Input[str]] = None,
1070
+ resource_group_id: Optional[pulumi.Input[str]] = None,
1071
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1072
+ tunnel_options_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GatewayVpnAttachmentTunnelOptionsSpecificationArgs', 'GatewayVpnAttachmentTunnelOptionsSpecificationArgsDict']]]]] = None,
663
1073
  vpn_attachment_name: Optional[pulumi.Input[str]] = None,
664
1074
  __props__=None):
665
1075
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -671,12 +1081,11 @@ class GatewayVpnAttachment(pulumi.CustomResource):
671
1081
  __props__ = GatewayVpnAttachmentArgs.__new__(GatewayVpnAttachmentArgs)
672
1082
 
673
1083
  __props__.__dict__["bgp_config"] = bgp_config
674
- if customer_gateway_id is None and not opts.urn:
675
- raise TypeError("Missing required property 'customer_gateway_id'")
676
1084
  __props__.__dict__["customer_gateway_id"] = customer_gateway_id
677
1085
  __props__.__dict__["effect_immediately"] = effect_immediately
678
1086
  __props__.__dict__["enable_dpd"] = enable_dpd
679
1087
  __props__.__dict__["enable_nat_traversal"] = enable_nat_traversal
1088
+ __props__.__dict__["enable_tunnels_bgp"] = enable_tunnels_bgp
680
1089
  __props__.__dict__["health_check_config"] = health_check_config
681
1090
  __props__.__dict__["ike_config"] = ike_config
682
1091
  __props__.__dict__["ipsec_config"] = ipsec_config
@@ -687,8 +1096,11 @@ class GatewayVpnAttachment(pulumi.CustomResource):
687
1096
  if remote_subnet is None and not opts.urn:
688
1097
  raise TypeError("Missing required property 'remote_subnet'")
689
1098
  __props__.__dict__["remote_subnet"] = remote_subnet
1099
+ __props__.__dict__["resource_group_id"] = resource_group_id
1100
+ __props__.__dict__["tags"] = tags
1101
+ __props__.__dict__["tunnel_options_specifications"] = tunnel_options_specifications
690
1102
  __props__.__dict__["vpn_attachment_name"] = vpn_attachment_name
691
- __props__.__dict__["internet_ip"] = None
1103
+ __props__.__dict__["create_time"] = None
692
1104
  __props__.__dict__["status"] = None
693
1105
  super(GatewayVpnAttachment, __self__).__init__(
694
1106
  'alicloud:vpn/gatewayVpnAttachment:GatewayVpnAttachment',
@@ -701,18 +1113,22 @@ class GatewayVpnAttachment(pulumi.CustomResource):
701
1113
  id: pulumi.Input[str],
702
1114
  opts: Optional[pulumi.ResourceOptions] = None,
703
1115
  bgp_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentBgpConfigArgs', 'GatewayVpnAttachmentBgpConfigArgsDict']]] = None,
1116
+ create_time: Optional[pulumi.Input[str]] = None,
704
1117
  customer_gateway_id: Optional[pulumi.Input[str]] = None,
705
1118
  effect_immediately: Optional[pulumi.Input[bool]] = None,
706
1119
  enable_dpd: Optional[pulumi.Input[bool]] = None,
707
1120
  enable_nat_traversal: Optional[pulumi.Input[bool]] = None,
1121
+ enable_tunnels_bgp: Optional[pulumi.Input[bool]] = None,
708
1122
  health_check_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']]] = None,
709
1123
  ike_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']]] = None,
710
- internet_ip: Optional[pulumi.Input[str]] = None,
711
1124
  ipsec_config: Optional[pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']]] = None,
712
1125
  local_subnet: Optional[pulumi.Input[str]] = None,
713
1126
  network_type: Optional[pulumi.Input[str]] = None,
714
1127
  remote_subnet: Optional[pulumi.Input[str]] = None,
1128
+ resource_group_id: Optional[pulumi.Input[str]] = None,
715
1129
  status: Optional[pulumi.Input[str]] = None,
1130
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1131
+ tunnel_options_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GatewayVpnAttachmentTunnelOptionsSpecificationArgs', 'GatewayVpnAttachmentTunnelOptionsSpecificationArgsDict']]]]] = None,
716
1132
  vpn_attachment_name: Optional[pulumi.Input[str]] = None) -> 'GatewayVpnAttachment':
717
1133
  """
718
1134
  Get an existing GatewayVpnAttachment resource's state with the given name, id, and optional extra
@@ -721,38 +1137,65 @@ class GatewayVpnAttachment(pulumi.CustomResource):
721
1137
  :param str resource_name: The unique name of the resulting resource.
722
1138
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
723
1139
  :param pulumi.ResourceOptions opts: Options for the resource.
724
- :param pulumi.Input[Union['GatewayVpnAttachmentBgpConfigArgs', 'GatewayVpnAttachmentBgpConfigArgsDict']] bgp_config: Bgp configuration information. See `bgp_config` below.
725
- :param pulumi.Input[str] customer_gateway_id: The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
726
- :param pulumi.Input[bool] effect_immediately: Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
727
- :param pulumi.Input[bool] enable_dpd: Whether to enable the DPD (peer survival detection) function.
728
- :param pulumi.Input[bool] enable_nat_traversal: Allow NAT penetration.
729
- :param pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']] health_check_config: Health check configuration information. See `health_check_config` below.
730
- :param pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']] ike_config: Configuration negotiated in the second stage. See `ike_config` below.
731
- :param pulumi.Input[str] internet_ip: The VPN gateway IP.
732
- :param pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']] ipsec_config: Configuration negotiated in the second stage. See `ipsec_config` below.
733
- :param pulumi.Input[str] local_subnet: The CIDR block of the virtual private cloud (VPC).
734
- :param pulumi.Input[str] network_type: The network type of the IPsec connection. Valid values: `public`, `private`.
735
- :param pulumi.Input[str] remote_subnet: The CIDR block of the on-premises data center.
736
- :param pulumi.Input[str] status: The status of the resource.
737
- :param pulumi.Input[str] vpn_attachment_name: The name of the vpn attachment.
1140
+ :param pulumi.Input[Union['GatewayVpnAttachmentBgpConfigArgs', 'GatewayVpnAttachmentBgpConfigArgsDict']] bgp_config: Bgp configuration information.
1141
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
1142
+ :param pulumi.Input[str] create_time: The creation time of the resource
1143
+ :param pulumi.Input[str] customer_gateway_id: Customer gateway ID.
1144
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
1145
+ :param pulumi.Input[bool] effect_immediately: Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
1146
+ :param pulumi.Input[bool] enable_dpd: This parameter is supported if you create an vpn attachment in single-tunnel mode.
1147
+ Whether to enable the DPD (peer survival detection) function.
1148
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
1149
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
1150
+ :param pulumi.Input[bool] enable_nat_traversal: This parameter is supported if you create an vpn attachment in single-tunnel mode.
1151
+ Specifies whether to enable NAT traversal. Valid values:
1152
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
1153
+ - false: disables NAT traversal.
1154
+ :param pulumi.Input[bool] enable_tunnels_bgp: You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
1155
+
1156
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
1157
+ :param pulumi.Input[Union['GatewayVpnAttachmentHealthCheckConfigArgs', 'GatewayVpnAttachmentHealthCheckConfigArgsDict']] health_check_config: This parameter is supported if you create an vpn attachment in single-tunnel mode.
1158
+ Health check configuration information. See `health_check_config` below.
1159
+ :param pulumi.Input[Union['GatewayVpnAttachmentIkeConfigArgs', 'GatewayVpnAttachmentIkeConfigArgsDict']] ike_config: The configurations of Phase 1 negotiations.
1160
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
1161
+ :param pulumi.Input[Union['GatewayVpnAttachmentIpsecConfigArgs', 'GatewayVpnAttachmentIpsecConfigArgsDict']] ipsec_config: Configuration negotiated in the second stage.
1162
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
1163
+ :param pulumi.Input[str] local_subnet: The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
1164
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
1165
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
1166
+ :param pulumi.Input[str] network_type: network type
1167
+ :param pulumi.Input[str] remote_subnet: The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
1168
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
1169
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
1170
+ :param pulumi.Input[str] resource_group_id: The ID of the resource group
1171
+ :param pulumi.Input[str] status: The negotiation status of Tunnel.
1172
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags
1173
+ :param pulumi.Input[Sequence[pulumi.Input[Union['GatewayVpnAttachmentTunnelOptionsSpecificationArgs', 'GatewayVpnAttachmentTunnelOptionsSpecificationArgsDict']]]] tunnel_options_specifications: Configure the tunnel.
1174
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
1175
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
1176
+ :param pulumi.Input[str] vpn_attachment_name: vpn attachment name
738
1177
  """
739
1178
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
740
1179
 
741
1180
  __props__ = _GatewayVpnAttachmentState.__new__(_GatewayVpnAttachmentState)
742
1181
 
743
1182
  __props__.__dict__["bgp_config"] = bgp_config
1183
+ __props__.__dict__["create_time"] = create_time
744
1184
  __props__.__dict__["customer_gateway_id"] = customer_gateway_id
745
1185
  __props__.__dict__["effect_immediately"] = effect_immediately
746
1186
  __props__.__dict__["enable_dpd"] = enable_dpd
747
1187
  __props__.__dict__["enable_nat_traversal"] = enable_nat_traversal
1188
+ __props__.__dict__["enable_tunnels_bgp"] = enable_tunnels_bgp
748
1189
  __props__.__dict__["health_check_config"] = health_check_config
749
1190
  __props__.__dict__["ike_config"] = ike_config
750
- __props__.__dict__["internet_ip"] = internet_ip
751
1191
  __props__.__dict__["ipsec_config"] = ipsec_config
752
1192
  __props__.__dict__["local_subnet"] = local_subnet
753
1193
  __props__.__dict__["network_type"] = network_type
754
1194
  __props__.__dict__["remote_subnet"] = remote_subnet
1195
+ __props__.__dict__["resource_group_id"] = resource_group_id
755
1196
  __props__.__dict__["status"] = status
1197
+ __props__.__dict__["tags"] = tags
1198
+ __props__.__dict__["tunnel_options_specifications"] = tunnel_options_specifications
756
1199
  __props__.__dict__["vpn_attachment_name"] = vpn_attachment_name
757
1200
  return GatewayVpnAttachment(resource_name, opts=opts, __props__=__props__)
758
1201
 
@@ -760,23 +1203,33 @@ class GatewayVpnAttachment(pulumi.CustomResource):
760
1203
  @pulumi.getter(name="bgpConfig")
761
1204
  def bgp_config(self) -> pulumi.Output['outputs.GatewayVpnAttachmentBgpConfig']:
762
1205
  """
763
- Bgp configuration information. See `bgp_config` below.
1206
+ Bgp configuration information.
1207
+ - This parameter is supported when you create an vpn attachment in single-tunnel mode. See `bgp_config` below.
764
1208
  """
765
1209
  return pulumi.get(self, "bgp_config")
766
1210
 
1211
+ @property
1212
+ @pulumi.getter(name="createTime")
1213
+ def create_time(self) -> pulumi.Output[str]:
1214
+ """
1215
+ The creation time of the resource
1216
+ """
1217
+ return pulumi.get(self, "create_time")
1218
+
767
1219
  @property
768
1220
  @pulumi.getter(name="customerGatewayId")
769
- def customer_gateway_id(self) -> pulumi.Output[str]:
1221
+ def customer_gateway_id(self) -> pulumi.Output[Optional[str]]:
770
1222
  """
771
- The ID of the customer gateway. From version 1.196.0, `customer_gateway_id` can be modified.
1223
+ Customer gateway ID.
1224
+ - This parameter is required when creating a single-tunnel mode vpn attachment.
772
1225
  """
773
1226
  return pulumi.get(self, "customer_gateway_id")
774
1227
 
775
1228
  @property
776
1229
  @pulumi.getter(name="effectImmediately")
777
- def effect_immediately(self) -> pulumi.Output[Optional[bool]]:
1230
+ def effect_immediately(self) -> pulumi.Output[bool]:
778
1231
  """
779
- Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.
1232
+ Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:
780
1233
  """
781
1234
  return pulumi.get(self, "effect_immediately")
782
1235
 
@@ -784,7 +1237,10 @@ class GatewayVpnAttachment(pulumi.CustomResource):
784
1237
  @pulumi.getter(name="enableDpd")
785
1238
  def enable_dpd(self) -> pulumi.Output[bool]:
786
1239
  """
1240
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
787
1241
  Whether to enable the DPD (peer survival detection) function.
1242
+ - true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.
1243
+ - false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.
788
1244
  """
789
1245
  return pulumi.get(self, "enable_dpd")
790
1246
 
@@ -792,14 +1248,28 @@ class GatewayVpnAttachment(pulumi.CustomResource):
792
1248
  @pulumi.getter(name="enableNatTraversal")
793
1249
  def enable_nat_traversal(self) -> pulumi.Output[bool]:
794
1250
  """
795
- Allow NAT penetration.
1251
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
1252
+ Specifies whether to enable NAT traversal. Valid values:
1253
+ - true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.
1254
+ - false: disables NAT traversal.
796
1255
  """
797
1256
  return pulumi.get(self, "enable_nat_traversal")
798
1257
 
1258
+ @property
1259
+ @pulumi.getter(name="enableTunnelsBgp")
1260
+ def enable_tunnels_bgp(self) -> pulumi.Output[bool]:
1261
+ """
1262
+ You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: `true` or `false` (default).
1263
+
1264
+ > **NOTE:** before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.
1265
+ """
1266
+ return pulumi.get(self, "enable_tunnels_bgp")
1267
+
799
1268
  @property
800
1269
  @pulumi.getter(name="healthCheckConfig")
801
1270
  def health_check_config(self) -> pulumi.Output['outputs.GatewayVpnAttachmentHealthCheckConfig']:
802
1271
  """
1272
+ This parameter is supported if you create an vpn attachment in single-tunnel mode.
803
1273
  Health check configuration information. See `health_check_config` below.
804
1274
  """
805
1275
  return pulumi.get(self, "health_check_config")
@@ -808,23 +1278,17 @@ class GatewayVpnAttachment(pulumi.CustomResource):
808
1278
  @pulumi.getter(name="ikeConfig")
809
1279
  def ike_config(self) -> pulumi.Output['outputs.GatewayVpnAttachmentIkeConfig']:
810
1280
  """
811
- Configuration negotiated in the second stage. See `ike_config` below.
1281
+ The configurations of Phase 1 negotiations.
1282
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ike_config` below.
812
1283
  """
813
1284
  return pulumi.get(self, "ike_config")
814
1285
 
815
- @property
816
- @pulumi.getter(name="internetIp")
817
- def internet_ip(self) -> pulumi.Output[str]:
818
- """
819
- The VPN gateway IP.
820
- """
821
- return pulumi.get(self, "internet_ip")
822
-
823
1286
  @property
824
1287
  @pulumi.getter(name="ipsecConfig")
825
1288
  def ipsec_config(self) -> pulumi.Output['outputs.GatewayVpnAttachmentIpsecConfig']:
826
1289
  """
827
- Configuration negotiated in the second stage. See `ipsec_config` below.
1290
+ Configuration negotiated in the second stage.
1291
+ - This parameter is supported if you create an vpn attachment in single-tunnel mode. See `ipsec_config` below.
828
1292
  """
829
1293
  return pulumi.get(self, "ipsec_config")
830
1294
 
@@ -832,7 +1296,9 @@ class GatewayVpnAttachment(pulumi.CustomResource):
832
1296
  @pulumi.getter(name="localSubnet")
833
1297
  def local_subnet(self) -> pulumi.Output[str]:
834
1298
  """
835
- The CIDR block of the virtual private cloud (VPC).
1299
+ The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:
1300
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
1301
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
836
1302
  """
837
1303
  return pulumi.get(self, "local_subnet")
838
1304
 
@@ -840,7 +1306,7 @@ class GatewayVpnAttachment(pulumi.CustomResource):
840
1306
  @pulumi.getter(name="networkType")
841
1307
  def network_type(self) -> pulumi.Output[str]:
842
1308
  """
843
- The network type of the IPsec connection. Valid values: `public`, `private`.
1309
+ network type
844
1310
  """
845
1311
  return pulumi.get(self, "network_type")
846
1312
 
@@ -848,23 +1314,51 @@ class GatewayVpnAttachment(pulumi.CustomResource):
848
1314
  @pulumi.getter(name="remoteSubnet")
849
1315
  def remote_subnet(self) -> pulumi.Output[str]:
850
1316
  """
851
- The CIDR block of the on-premises data center.
1317
+ The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:
1318
+ - If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
1319
+ - If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.
852
1320
  """
853
1321
  return pulumi.get(self, "remote_subnet")
854
1322
 
1323
+ @property
1324
+ @pulumi.getter(name="resourceGroupId")
1325
+ def resource_group_id(self) -> pulumi.Output[str]:
1326
+ """
1327
+ The ID of the resource group
1328
+ """
1329
+ return pulumi.get(self, "resource_group_id")
1330
+
855
1331
  @property
856
1332
  @pulumi.getter
857
1333
  def status(self) -> pulumi.Output[str]:
858
1334
  """
859
- The status of the resource.
1335
+ The negotiation status of Tunnel.
860
1336
  """
861
1337
  return pulumi.get(self, "status")
862
1338
 
1339
+ @property
1340
+ @pulumi.getter
1341
+ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1342
+ """
1343
+ Tags
1344
+ """
1345
+ return pulumi.get(self, "tags")
1346
+
1347
+ @property
1348
+ @pulumi.getter(name="tunnelOptionsSpecifications")
1349
+ def tunnel_options_specifications(self) -> pulumi.Output[Sequence['outputs.GatewayVpnAttachmentTunnelOptionsSpecification']]:
1350
+ """
1351
+ Configure the tunnel.
1352
+ - You can configure parameters in the `tunnel_options_specification` array when you create a vpn attachment in dual-tunnel mode.
1353
+ - When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See `tunnel_options_specification` below.
1354
+ """
1355
+ return pulumi.get(self, "tunnel_options_specifications")
1356
+
863
1357
  @property
864
1358
  @pulumi.getter(name="vpnAttachmentName")
865
1359
  def vpn_attachment_name(self) -> pulumi.Output[Optional[str]]:
866
1360
  """
867
- The name of the vpn attachment.
1361
+ vpn attachment name
868
1362
  """
869
1363
  return pulumi.get(self, "vpn_attachment_name")
870
1364