pulumi-openstack 5.1.0a1732601510__py3-none-any.whl → 5.5.0a1767139866__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.
Files changed (232) hide show
  1. pulumi_openstack/__init__.py +143 -1
  2. pulumi_openstack/_inputs.py +92 -26
  3. pulumi_openstack/_utilities.py +9 -5
  4. pulumi_openstack/bgpvpn/__init__.py +14 -0
  5. pulumi_openstack/bgpvpn/_inputs.py +129 -0
  6. pulumi_openstack/bgpvpn/network_associate_v2.py +398 -0
  7. pulumi_openstack/bgpvpn/outputs.py +103 -0
  8. pulumi_openstack/bgpvpn/port_associate_v2.py +521 -0
  9. pulumi_openstack/bgpvpn/router_associate_v2.py +452 -0
  10. pulumi_openstack/bgpvpn/v2.py +827 -0
  11. pulumi_openstack/bgpvpn_network_associate_v2.py +79 -72
  12. pulumi_openstack/bgpvpn_port_associate_v2.py +99 -92
  13. pulumi_openstack/bgpvpn_router_associate_v2.py +96 -89
  14. pulumi_openstack/bgpvpn_v2.py +217 -210
  15. pulumi_openstack/blockstorage/__init__.py +2 -1
  16. pulumi_openstack/blockstorage/_inputs.py +47 -47
  17. pulumi_openstack/blockstorage/get_availability_zones_v3.py +20 -20
  18. pulumi_openstack/blockstorage/get_quotaset_v3.py +34 -34
  19. pulumi_openstack/blockstorage/get_snapshot_v3.py +42 -42
  20. pulumi_openstack/blockstorage/get_volume_v3.py +53 -53
  21. pulumi_openstack/blockstorage/outputs.py +40 -40
  22. pulumi_openstack/blockstorage/qos_association_v3.py +54 -53
  23. pulumi_openstack/blockstorage/qos_v3.py +71 -70
  24. pulumi_openstack/blockstorage/quote_set_v3.py +173 -178
  25. pulumi_openstack/blockstorage/volume.py +317 -255
  26. pulumi_openstack/blockstorage/volume_attach.py +234 -233
  27. pulumi_openstack/blockstorage/volume_type_access_v3.py +54 -53
  28. pulumi_openstack/blockstorage/volume_type_v3.py +88 -87
  29. pulumi_openstack/compute/__init__.py +3 -1
  30. pulumi_openstack/compute/_inputs.py +231 -231
  31. pulumi_openstack/compute/aggregate_v2.py +88 -87
  32. pulumi_openstack/compute/flavor.py +207 -206
  33. pulumi_openstack/compute/flavor_access.py +54 -53
  34. pulumi_openstack/compute/get_aggregate_v2.py +49 -27
  35. pulumi_openstack/compute/get_availability_zones.py +20 -20
  36. pulumi_openstack/compute/get_flavor.py +80 -80
  37. pulumi_openstack/compute/get_hypervisor_v2.py +49 -27
  38. pulumi_openstack/compute/get_instance_v2.py +58 -51
  39. pulumi_openstack/compute/get_keypair.py +28 -28
  40. pulumi_openstack/compute/get_limits_v2.py +56 -56
  41. pulumi_openstack/compute/get_quota_set_v2.py +46 -46
  42. pulumi_openstack/compute/get_servergroup_v2.py +218 -0
  43. pulumi_openstack/compute/instance.py +498 -446
  44. pulumi_openstack/compute/interface_attach.py +208 -87
  45. pulumi_openstack/compute/keypair.py +106 -105
  46. pulumi_openstack/compute/outputs.py +168 -155
  47. pulumi_openstack/compute/quota_set_v2.py +275 -280
  48. pulumi_openstack/compute/server_group.py +83 -82
  49. pulumi_openstack/compute/volume_attach.py +214 -103
  50. pulumi_openstack/config/__init__.py +2 -1
  51. pulumi_openstack/config/__init__.pyi +14 -10
  52. pulumi_openstack/config/vars.py +46 -42
  53. pulumi_openstack/containerinfra/__init__.py +2 -1
  54. pulumi_openstack/containerinfra/cluster.py +376 -376
  55. pulumi_openstack/containerinfra/cluster_template.py +543 -543
  56. pulumi_openstack/containerinfra/get_cluster.py +68 -68
  57. pulumi_openstack/containerinfra/get_cluster_template.py +80 -80
  58. pulumi_openstack/containerinfra/get_node_group.py +46 -46
  59. pulumi_openstack/containerinfra/node_group.py +230 -229
  60. pulumi_openstack/database/__init__.py +2 -1
  61. pulumi_openstack/database/_inputs.py +110 -110
  62. pulumi_openstack/database/configuration.py +60 -59
  63. pulumi_openstack/database/database.py +64 -56
  64. pulumi_openstack/database/instance.py +173 -111
  65. pulumi_openstack/database/outputs.py +74 -74
  66. pulumi_openstack/database/user.py +111 -103
  67. pulumi_openstack/dns/__init__.py +5 -1
  68. pulumi_openstack/dns/get_dns_zone.py +108 -108
  69. pulumi_openstack/dns/get_zone_share_v2.py +230 -0
  70. pulumi_openstack/dns/quota_v2.py +495 -0
  71. pulumi_openstack/dns/record_set.py +173 -172
  72. pulumi_openstack/dns/transfer_accept.py +105 -111
  73. pulumi_openstack/dns/transfer_request.py +135 -141
  74. pulumi_openstack/dns/zone.py +209 -215
  75. pulumi_openstack/dns/zone_share_v2.py +381 -0
  76. pulumi_openstack/firewall/__init__.py +5 -1
  77. pulumi_openstack/firewall/get_group_v2.py +334 -0
  78. pulumi_openstack/firewall/get_policy_v2.py +271 -0
  79. pulumi_openstack/firewall/get_rule_v2.py +428 -0
  80. pulumi_openstack/firewall/group_v2.py +182 -181
  81. pulumi_openstack/firewall/policy_v2.py +139 -138
  82. pulumi_openstack/firewall/rule_v2.py +241 -240
  83. pulumi_openstack/get_fw_group_v2.py +80 -76
  84. pulumi_openstack/get_fw_policy_v2.py +62 -58
  85. pulumi_openstack/get_fw_rule_v2.py +108 -104
  86. pulumi_openstack/identity/__init__.py +4 -1
  87. pulumi_openstack/identity/_inputs.py +32 -32
  88. pulumi_openstack/identity/application_credential.py +134 -133
  89. pulumi_openstack/identity/ec2_credential_v3.py +81 -80
  90. pulumi_openstack/identity/endpoint_v3.py +123 -122
  91. pulumi_openstack/identity/get_auth_scope.py +48 -48
  92. pulumi_openstack/identity/get_endpoint.py +50 -50
  93. pulumi_openstack/identity/get_group.py +26 -26
  94. pulumi_openstack/identity/get_project.py +55 -53
  95. pulumi_openstack/identity/get_project_ids_v3.py +58 -54
  96. pulumi_openstack/identity/get_role.py +24 -24
  97. pulumi_openstack/identity/get_service.py +32 -32
  98. pulumi_openstack/identity/get_user.py +61 -59
  99. pulumi_openstack/identity/group_v3.py +71 -70
  100. pulumi_openstack/identity/inherit_role_assignment.py +128 -100
  101. pulumi_openstack/identity/limit_v3.py +532 -0
  102. pulumi_openstack/identity/outputs.py +64 -64
  103. pulumi_openstack/identity/project.py +139 -138
  104. pulumi_openstack/identity/registered_limit_v3.py +434 -0
  105. pulumi_openstack/identity/role.py +54 -53
  106. pulumi_openstack/identity/role_assignment.py +128 -100
  107. pulumi_openstack/identity/service_v3.py +88 -87
  108. pulumi_openstack/identity/user.py +210 -209
  109. pulumi_openstack/identity/user_membership_v3.py +54 -53
  110. pulumi_openstack/images/__init__.py +2 -1
  111. pulumi_openstack/images/get_image.py +122 -122
  112. pulumi_openstack/images/get_image_ids.py +98 -98
  113. pulumi_openstack/images/image.py +420 -419
  114. pulumi_openstack/images/image_access.py +98 -97
  115. pulumi_openstack/images/image_access_accept.py +98 -97
  116. pulumi_openstack/keymanager/__init__.py +2 -1
  117. pulumi_openstack/keymanager/_inputs.py +113 -113
  118. pulumi_openstack/keymanager/container_v1.py +107 -106
  119. pulumi_openstack/keymanager/get_container.py +33 -33
  120. pulumi_openstack/keymanager/get_secret.py +89 -89
  121. pulumi_openstack/keymanager/order_v1.py +121 -120
  122. pulumi_openstack/keymanager/outputs.py +129 -129
  123. pulumi_openstack/keymanager/secret_v1.py +290 -255
  124. pulumi_openstack/lb_flavorprofile_v2.py +111 -70
  125. pulumi_openstack/lb_loadbalancer_v2.py +266 -261
  126. pulumi_openstack/loadbalancer/__init__.py +10 -1
  127. pulumi_openstack/loadbalancer/_inputs.py +75 -75
  128. pulumi_openstack/loadbalancer/flavor_v2.py +447 -0
  129. pulumi_openstack/loadbalancer/flavorprofile_v2.py +430 -0
  130. pulumi_openstack/loadbalancer/get_flavor_v2.py +30 -30
  131. pulumi_openstack/loadbalancer/get_flavorprofile_v2.py +190 -0
  132. pulumi_openstack/loadbalancer/get_lb_flavor_deprecated.py +197 -0
  133. pulumi_openstack/loadbalancer/get_listener_v2.py +634 -0
  134. pulumi_openstack/loadbalancer/get_loadbalancer_v2.py +470 -0
  135. pulumi_openstack/loadbalancer/get_pool_v2.py +482 -0
  136. pulumi_openstack/loadbalancer/l7_policy_v2.py +209 -208
  137. pulumi_openstack/loadbalancer/l7_rule_v2.py +167 -166
  138. pulumi_openstack/loadbalancer/listener.py +481 -480
  139. pulumi_openstack/loadbalancer/load_balancer.py +1033 -0
  140. pulumi_openstack/loadbalancer/member.py +224 -223
  141. pulumi_openstack/loadbalancer/members.py +40 -39
  142. pulumi_openstack/loadbalancer/monitor.py +258 -257
  143. pulumi_openstack/loadbalancer/outputs.py +311 -51
  144. pulumi_openstack/loadbalancer/pool.py +291 -290
  145. pulumi_openstack/loadbalancer/quota.py +156 -161
  146. pulumi_openstack/networking/__init__.py +8 -1
  147. pulumi_openstack/networking/_inputs.py +234 -141
  148. pulumi_openstack/networking/address_group_v2.py +421 -0
  149. pulumi_openstack/networking/address_scope.py +88 -87
  150. pulumi_openstack/networking/bgp_peer_v2.py +550 -0
  151. pulumi_openstack/networking/bgp_speaker_v2.py +697 -0
  152. pulumi_openstack/networking/floating_ip.py +247 -247
  153. pulumi_openstack/networking/floating_ip_associate.py +67 -66
  154. pulumi_openstack/networking/get_address_scope.py +36 -36
  155. pulumi_openstack/networking/get_floating_ip.py +66 -66
  156. pulumi_openstack/networking/get_network.py +85 -85
  157. pulumi_openstack/networking/get_port.py +111 -111
  158. pulumi_openstack/networking/get_port_ids.py +106 -106
  159. pulumi_openstack/networking/get_qos_bandwidth_limit_rule.py +32 -32
  160. pulumi_openstack/networking/get_qos_dscp_marking_rule.py +24 -24
  161. pulumi_openstack/networking/get_qos_minimum_bandwidth_rule.py +28 -28
  162. pulumi_openstack/networking/get_qos_policy.py +56 -56
  163. pulumi_openstack/networking/get_quota_v2.py +36 -36
  164. pulumi_openstack/networking/get_router.py +102 -74
  165. pulumi_openstack/networking/get_sec_group.py +50 -50
  166. pulumi_openstack/networking/get_segment_v2.py +303 -0
  167. pulumi_openstack/networking/get_subnet.py +126 -107
  168. pulumi_openstack/networking/get_subnet_ids_v2.py +128 -109
  169. pulumi_openstack/networking/get_subnet_pool.py +94 -94
  170. pulumi_openstack/networking/get_trunk.py +63 -63
  171. pulumi_openstack/networking/network.py +270 -269
  172. pulumi_openstack/networking/outputs.py +287 -177
  173. pulumi_openstack/networking/port.py +356 -355
  174. pulumi_openstack/networking/port_forwarding_v2.py +139 -138
  175. pulumi_openstack/networking/port_sec_group_associate.py +80 -79
  176. pulumi_openstack/networking/qos_bandwidth_limit_rule.py +88 -87
  177. pulumi_openstack/networking/qos_dscp_marking_rule.py +54 -53
  178. pulumi_openstack/networking/qos_minimum_bandwidth_rule.py +71 -70
  179. pulumi_openstack/networking/qos_policy.py +175 -174
  180. pulumi_openstack/networking/quota_v2.py +190 -195
  181. pulumi_openstack/networking/rbac_policy_v2.py +95 -94
  182. pulumi_openstack/networking/router.py +286 -224
  183. pulumi_openstack/networking/router_interface.py +88 -87
  184. pulumi_openstack/networking/router_route.py +71 -70
  185. pulumi_openstack/networking/router_routes_v2.py +382 -0
  186. pulumi_openstack/networking/sec_group.py +131 -130
  187. pulumi_openstack/networking/sec_group_rule.py +258 -189
  188. pulumi_openstack/networking/segment_v2.py +633 -0
  189. pulumi_openstack/networking/subnet.py +399 -337
  190. pulumi_openstack/networking/subnet_pool.py +294 -293
  191. pulumi_openstack/networking/subnet_route.py +71 -70
  192. pulumi_openstack/networking/trunk.py +134 -133
  193. pulumi_openstack/objectstorage/__init__.py +2 -1
  194. pulumi_openstack/objectstorage/_inputs.py +22 -16
  195. pulumi_openstack/objectstorage/account_v1.py +99 -98
  196. pulumi_openstack/objectstorage/container.py +429 -308
  197. pulumi_openstack/objectstorage/container_object.py +298 -289
  198. pulumi_openstack/objectstorage/outputs.py +15 -11
  199. pulumi_openstack/objectstorage/temp_url.py +165 -164
  200. pulumi_openstack/orchestration/__init__.py +2 -1
  201. pulumi_openstack/orchestration/_inputs.py +18 -18
  202. pulumi_openstack/orchestration/outputs.py +12 -12
  203. pulumi_openstack/orchestration/stack_v1.py +278 -277
  204. pulumi_openstack/outputs.py +75 -18
  205. pulumi_openstack/provider.py +351 -316
  206. pulumi_openstack/pulumi-plugin.json +1 -1
  207. pulumi_openstack/sharedfilesystem/__init__.py +2 -1
  208. pulumi_openstack/sharedfilesystem/_inputs.py +12 -12
  209. pulumi_openstack/sharedfilesystem/get_availbility_zones.py +14 -14
  210. pulumi_openstack/sharedfilesystem/get_share.py +74 -70
  211. pulumi_openstack/sharedfilesystem/get_share_network.py +66 -66
  212. pulumi_openstack/sharedfilesystem/get_snapshot.py +44 -44
  213. pulumi_openstack/sharedfilesystem/outputs.py +14 -14
  214. pulumi_openstack/sharedfilesystem/security_service.py +182 -181
  215. pulumi_openstack/sharedfilesystem/share.py +263 -262
  216. pulumi_openstack/sharedfilesystem/share_access.py +123 -122
  217. pulumi_openstack/sharedfilesystem/share_network.py +150 -149
  218. pulumi_openstack/taas_tap_mirror_v2.py +653 -0
  219. pulumi_openstack/vpnaas/__init__.py +2 -1
  220. pulumi_openstack/vpnaas/_inputs.py +42 -42
  221. pulumi_openstack/vpnaas/endpoint_group.py +122 -121
  222. pulumi_openstack/vpnaas/ike_policy.py +213 -198
  223. pulumi_openstack/vpnaas/ip_sec_policy.py +213 -198
  224. pulumi_openstack/vpnaas/outputs.py +28 -28
  225. pulumi_openstack/vpnaas/service.py +166 -165
  226. pulumi_openstack/vpnaas/site_connection.py +312 -311
  227. pulumi_openstack/workflow_workflow_v2.py +244 -0
  228. {pulumi_openstack-5.1.0a1732601510.dist-info → pulumi_openstack-5.5.0a1767139866.dist-info}/METADATA +5 -5
  229. pulumi_openstack-5.5.0a1767139866.dist-info/RECORD +232 -0
  230. {pulumi_openstack-5.1.0a1732601510.dist-info → pulumi_openstack-5.5.0a1767139866.dist-info}/WHEEL +1 -1
  231. pulumi_openstack-5.1.0a1732601510.dist-info/RECORD +0 -200
  232. {pulumi_openstack-5.1.0a1732601510.dist-info → pulumi_openstack-5.5.0a1767139866.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,827 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['V2Args', 'V2']
18
+
19
+ @pulumi.input_type
20
+ class V2Args:
21
+ def __init__(__self__, *,
22
+ export_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
23
+ import_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
24
+ local_pref: Optional[pulumi.Input[_builtins.int]] = None,
25
+ name: Optional[pulumi.Input[_builtins.str]] = None,
26
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
27
+ region: Optional[pulumi.Input[_builtins.str]] = None,
28
+ route_distinguishers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
29
+ route_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
30
+ type: Optional[pulumi.Input[_builtins.str]] = None,
31
+ vni: Optional[pulumi.Input[_builtins.int]] = None):
32
+ """
33
+ The set of arguments for constructing a V2 resource.
34
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] export_targets: A list of additional Route Targets that will be
35
+ used for export.
36
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] import_targets: A list of additional Route Targets that will be
37
+ imported.
38
+ :param pulumi.Input[_builtins.int] local_pref: The default BGP LOCAL\\_PREF of routes that will be
39
+ advertised to the BGP VPN, unless overridden per-route.
40
+ :param pulumi.Input[_builtins.str] name: The name of the BGP VPN. Changing this updates the name of
41
+ the existing BGP VPN.
42
+ :param pulumi.Input[_builtins.str] project_id: The ID of the project that owns the BGPVPN. Only
43
+ administrative and users with `advsvc` role can specify a project ID other
44
+ than their own. Changing this creates a new BGP VPN.
45
+ :param pulumi.Input[_builtins.str] region: The region in which to obtain the V2 Networking client.
46
+ A Networking client is needed to create a BGP VPN service. If omitted, the
47
+ `region` argument of the provider is used. Changing this creates a new
48
+ BGP VPN.
49
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_distinguishers: A list of route distinguisher strings. If
50
+ specified, one of these RDs will be used to advertise VPN routes.
51
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_targets: A list of Route Targets that will be both
52
+ imported and used for export.
53
+ :param pulumi.Input[_builtins.str] type: The type of the BGP VPN (either `l2` or `l3`). Changing this
54
+ creates a new BGP VPN. Defaults to `l3`.
55
+ :param pulumi.Input[_builtins.int] vni: The globally-assigned VXLAN VNI for the BGP VPN. Changing
56
+ this creates a new BGP VPN.
57
+ """
58
+ if export_targets is not None:
59
+ pulumi.set(__self__, "export_targets", export_targets)
60
+ if import_targets is not None:
61
+ pulumi.set(__self__, "import_targets", import_targets)
62
+ if local_pref is not None:
63
+ pulumi.set(__self__, "local_pref", local_pref)
64
+ if name is not None:
65
+ pulumi.set(__self__, "name", name)
66
+ if project_id is not None:
67
+ pulumi.set(__self__, "project_id", project_id)
68
+ if region is not None:
69
+ pulumi.set(__self__, "region", region)
70
+ if route_distinguishers is not None:
71
+ pulumi.set(__self__, "route_distinguishers", route_distinguishers)
72
+ if route_targets is not None:
73
+ pulumi.set(__self__, "route_targets", route_targets)
74
+ if type is not None:
75
+ pulumi.set(__self__, "type", type)
76
+ if vni is not None:
77
+ pulumi.set(__self__, "vni", vni)
78
+
79
+ @_builtins.property
80
+ @pulumi.getter(name="exportTargets")
81
+ def export_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
82
+ """
83
+ A list of additional Route Targets that will be
84
+ used for export.
85
+ """
86
+ return pulumi.get(self, "export_targets")
87
+
88
+ @export_targets.setter
89
+ def export_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
90
+ pulumi.set(self, "export_targets", value)
91
+
92
+ @_builtins.property
93
+ @pulumi.getter(name="importTargets")
94
+ def import_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
95
+ """
96
+ A list of additional Route Targets that will be
97
+ imported.
98
+ """
99
+ return pulumi.get(self, "import_targets")
100
+
101
+ @import_targets.setter
102
+ def import_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
103
+ pulumi.set(self, "import_targets", value)
104
+
105
+ @_builtins.property
106
+ @pulumi.getter(name="localPref")
107
+ def local_pref(self) -> Optional[pulumi.Input[_builtins.int]]:
108
+ """
109
+ The default BGP LOCAL\\_PREF of routes that will be
110
+ advertised to the BGP VPN, unless overridden per-route.
111
+ """
112
+ return pulumi.get(self, "local_pref")
113
+
114
+ @local_pref.setter
115
+ def local_pref(self, value: Optional[pulumi.Input[_builtins.int]]):
116
+ pulumi.set(self, "local_pref", value)
117
+
118
+ @_builtins.property
119
+ @pulumi.getter
120
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
121
+ """
122
+ The name of the BGP VPN. Changing this updates the name of
123
+ the existing BGP VPN.
124
+ """
125
+ return pulumi.get(self, "name")
126
+
127
+ @name.setter
128
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
129
+ pulumi.set(self, "name", value)
130
+
131
+ @_builtins.property
132
+ @pulumi.getter(name="projectId")
133
+ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
134
+ """
135
+ The ID of the project that owns the BGPVPN. Only
136
+ administrative and users with `advsvc` role can specify a project ID other
137
+ than their own. Changing this creates a new BGP VPN.
138
+ """
139
+ return pulumi.get(self, "project_id")
140
+
141
+ @project_id.setter
142
+ def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
143
+ pulumi.set(self, "project_id", value)
144
+
145
+ @_builtins.property
146
+ @pulumi.getter
147
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
148
+ """
149
+ The region in which to obtain the V2 Networking client.
150
+ A Networking client is needed to create a BGP VPN service. If omitted, the
151
+ `region` argument of the provider is used. Changing this creates a new
152
+ BGP VPN.
153
+ """
154
+ return pulumi.get(self, "region")
155
+
156
+ @region.setter
157
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
158
+ pulumi.set(self, "region", value)
159
+
160
+ @_builtins.property
161
+ @pulumi.getter(name="routeDistinguishers")
162
+ def route_distinguishers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
163
+ """
164
+ A list of route distinguisher strings. If
165
+ specified, one of these RDs will be used to advertise VPN routes.
166
+ """
167
+ return pulumi.get(self, "route_distinguishers")
168
+
169
+ @route_distinguishers.setter
170
+ def route_distinguishers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
171
+ pulumi.set(self, "route_distinguishers", value)
172
+
173
+ @_builtins.property
174
+ @pulumi.getter(name="routeTargets")
175
+ def route_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
176
+ """
177
+ A list of Route Targets that will be both
178
+ imported and used for export.
179
+ """
180
+ return pulumi.get(self, "route_targets")
181
+
182
+ @route_targets.setter
183
+ def route_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
184
+ pulumi.set(self, "route_targets", value)
185
+
186
+ @_builtins.property
187
+ @pulumi.getter
188
+ def type(self) -> Optional[pulumi.Input[_builtins.str]]:
189
+ """
190
+ The type of the BGP VPN (either `l2` or `l3`). Changing this
191
+ creates a new BGP VPN. Defaults to `l3`.
192
+ """
193
+ return pulumi.get(self, "type")
194
+
195
+ @type.setter
196
+ def type(self, value: Optional[pulumi.Input[_builtins.str]]):
197
+ pulumi.set(self, "type", value)
198
+
199
+ @_builtins.property
200
+ @pulumi.getter
201
+ def vni(self) -> Optional[pulumi.Input[_builtins.int]]:
202
+ """
203
+ The globally-assigned VXLAN VNI for the BGP VPN. Changing
204
+ this creates a new BGP VPN.
205
+ """
206
+ return pulumi.get(self, "vni")
207
+
208
+ @vni.setter
209
+ def vni(self, value: Optional[pulumi.Input[_builtins.int]]):
210
+ pulumi.set(self, "vni", value)
211
+
212
+
213
+ @pulumi.input_type
214
+ class _V2State:
215
+ def __init__(__self__, *,
216
+ export_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
217
+ import_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
218
+ local_pref: Optional[pulumi.Input[_builtins.int]] = None,
219
+ name: Optional[pulumi.Input[_builtins.str]] = None,
220
+ networks: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
221
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
222
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
223
+ region: Optional[pulumi.Input[_builtins.str]] = None,
224
+ route_distinguishers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
225
+ route_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
226
+ routers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
227
+ shared: Optional[pulumi.Input[_builtins.bool]] = None,
228
+ type: Optional[pulumi.Input[_builtins.str]] = None,
229
+ vni: Optional[pulumi.Input[_builtins.int]] = None):
230
+ """
231
+ Input properties used for looking up and filtering V2 resources.
232
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] export_targets: A list of additional Route Targets that will be
233
+ used for export.
234
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] import_targets: A list of additional Route Targets that will be
235
+ imported.
236
+ :param pulumi.Input[_builtins.int] local_pref: The default BGP LOCAL\\_PREF of routes that will be
237
+ advertised to the BGP VPN, unless overridden per-route.
238
+ :param pulumi.Input[_builtins.str] name: The name of the BGP VPN. Changing this updates the name of
239
+ the existing BGP VPN.
240
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] networks: A list of network IDs that are associated with the BGP VPN.
241
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ports: A list of port IDs that are associated with the BGP VPN.
242
+ :param pulumi.Input[_builtins.str] project_id: The ID of the project that owns the BGPVPN. Only
243
+ administrative and users with `advsvc` role can specify a project ID other
244
+ than their own. Changing this creates a new BGP VPN.
245
+ :param pulumi.Input[_builtins.str] region: The region in which to obtain the V2 Networking client.
246
+ A Networking client is needed to create a BGP VPN service. If omitted, the
247
+ `region` argument of the provider is used. Changing this creates a new
248
+ BGP VPN.
249
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_distinguishers: A list of route distinguisher strings. If
250
+ specified, one of these RDs will be used to advertise VPN routes.
251
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_targets: A list of Route Targets that will be both
252
+ imported and used for export.
253
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] routers: A list of router IDs that are associated with the BGP VPN.
254
+ :param pulumi.Input[_builtins.bool] shared: Indicates whether the BGP VPN is shared across projects.
255
+ :param pulumi.Input[_builtins.str] type: The type of the BGP VPN (either `l2` or `l3`). Changing this
256
+ creates a new BGP VPN. Defaults to `l3`.
257
+ :param pulumi.Input[_builtins.int] vni: The globally-assigned VXLAN VNI for the BGP VPN. Changing
258
+ this creates a new BGP VPN.
259
+ """
260
+ if export_targets is not None:
261
+ pulumi.set(__self__, "export_targets", export_targets)
262
+ if import_targets is not None:
263
+ pulumi.set(__self__, "import_targets", import_targets)
264
+ if local_pref is not None:
265
+ pulumi.set(__self__, "local_pref", local_pref)
266
+ if name is not None:
267
+ pulumi.set(__self__, "name", name)
268
+ if networks is not None:
269
+ pulumi.set(__self__, "networks", networks)
270
+ if ports is not None:
271
+ pulumi.set(__self__, "ports", ports)
272
+ if project_id is not None:
273
+ pulumi.set(__self__, "project_id", project_id)
274
+ if region is not None:
275
+ pulumi.set(__self__, "region", region)
276
+ if route_distinguishers is not None:
277
+ pulumi.set(__self__, "route_distinguishers", route_distinguishers)
278
+ if route_targets is not None:
279
+ pulumi.set(__self__, "route_targets", route_targets)
280
+ if routers is not None:
281
+ pulumi.set(__self__, "routers", routers)
282
+ if shared is not None:
283
+ pulumi.set(__self__, "shared", shared)
284
+ if type is not None:
285
+ pulumi.set(__self__, "type", type)
286
+ if vni is not None:
287
+ pulumi.set(__self__, "vni", vni)
288
+
289
+ @_builtins.property
290
+ @pulumi.getter(name="exportTargets")
291
+ def export_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
292
+ """
293
+ A list of additional Route Targets that will be
294
+ used for export.
295
+ """
296
+ return pulumi.get(self, "export_targets")
297
+
298
+ @export_targets.setter
299
+ def export_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
300
+ pulumi.set(self, "export_targets", value)
301
+
302
+ @_builtins.property
303
+ @pulumi.getter(name="importTargets")
304
+ def import_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
305
+ """
306
+ A list of additional Route Targets that will be
307
+ imported.
308
+ """
309
+ return pulumi.get(self, "import_targets")
310
+
311
+ @import_targets.setter
312
+ def import_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
313
+ pulumi.set(self, "import_targets", value)
314
+
315
+ @_builtins.property
316
+ @pulumi.getter(name="localPref")
317
+ def local_pref(self) -> Optional[pulumi.Input[_builtins.int]]:
318
+ """
319
+ The default BGP LOCAL\\_PREF of routes that will be
320
+ advertised to the BGP VPN, unless overridden per-route.
321
+ """
322
+ return pulumi.get(self, "local_pref")
323
+
324
+ @local_pref.setter
325
+ def local_pref(self, value: Optional[pulumi.Input[_builtins.int]]):
326
+ pulumi.set(self, "local_pref", value)
327
+
328
+ @_builtins.property
329
+ @pulumi.getter
330
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
331
+ """
332
+ The name of the BGP VPN. Changing this updates the name of
333
+ the existing BGP VPN.
334
+ """
335
+ return pulumi.get(self, "name")
336
+
337
+ @name.setter
338
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
339
+ pulumi.set(self, "name", value)
340
+
341
+ @_builtins.property
342
+ @pulumi.getter
343
+ def networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
344
+ """
345
+ A list of network IDs that are associated with the BGP VPN.
346
+ """
347
+ return pulumi.get(self, "networks")
348
+
349
+ @networks.setter
350
+ def networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
351
+ pulumi.set(self, "networks", value)
352
+
353
+ @_builtins.property
354
+ @pulumi.getter
355
+ def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
356
+ """
357
+ A list of port IDs that are associated with the BGP VPN.
358
+ """
359
+ return pulumi.get(self, "ports")
360
+
361
+ @ports.setter
362
+ def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
363
+ pulumi.set(self, "ports", value)
364
+
365
+ @_builtins.property
366
+ @pulumi.getter(name="projectId")
367
+ def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
368
+ """
369
+ The ID of the project that owns the BGPVPN. Only
370
+ administrative and users with `advsvc` role can specify a project ID other
371
+ than their own. Changing this creates a new BGP VPN.
372
+ """
373
+ return pulumi.get(self, "project_id")
374
+
375
+ @project_id.setter
376
+ def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
377
+ pulumi.set(self, "project_id", value)
378
+
379
+ @_builtins.property
380
+ @pulumi.getter
381
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
382
+ """
383
+ The region in which to obtain the V2 Networking client.
384
+ A Networking client is needed to create a BGP VPN service. If omitted, the
385
+ `region` argument of the provider is used. Changing this creates a new
386
+ BGP VPN.
387
+ """
388
+ return pulumi.get(self, "region")
389
+
390
+ @region.setter
391
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
392
+ pulumi.set(self, "region", value)
393
+
394
+ @_builtins.property
395
+ @pulumi.getter(name="routeDistinguishers")
396
+ def route_distinguishers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
397
+ """
398
+ A list of route distinguisher strings. If
399
+ specified, one of these RDs will be used to advertise VPN routes.
400
+ """
401
+ return pulumi.get(self, "route_distinguishers")
402
+
403
+ @route_distinguishers.setter
404
+ def route_distinguishers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
405
+ pulumi.set(self, "route_distinguishers", value)
406
+
407
+ @_builtins.property
408
+ @pulumi.getter(name="routeTargets")
409
+ def route_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
410
+ """
411
+ A list of Route Targets that will be both
412
+ imported and used for export.
413
+ """
414
+ return pulumi.get(self, "route_targets")
415
+
416
+ @route_targets.setter
417
+ def route_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
418
+ pulumi.set(self, "route_targets", value)
419
+
420
+ @_builtins.property
421
+ @pulumi.getter
422
+ def routers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
423
+ """
424
+ A list of router IDs that are associated with the BGP VPN.
425
+ """
426
+ return pulumi.get(self, "routers")
427
+
428
+ @routers.setter
429
+ def routers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
430
+ pulumi.set(self, "routers", value)
431
+
432
+ @_builtins.property
433
+ @pulumi.getter
434
+ def shared(self) -> Optional[pulumi.Input[_builtins.bool]]:
435
+ """
436
+ Indicates whether the BGP VPN is shared across projects.
437
+ """
438
+ return pulumi.get(self, "shared")
439
+
440
+ @shared.setter
441
+ def shared(self, value: Optional[pulumi.Input[_builtins.bool]]):
442
+ pulumi.set(self, "shared", value)
443
+
444
+ @_builtins.property
445
+ @pulumi.getter
446
+ def type(self) -> Optional[pulumi.Input[_builtins.str]]:
447
+ """
448
+ The type of the BGP VPN (either `l2` or `l3`). Changing this
449
+ creates a new BGP VPN. Defaults to `l3`.
450
+ """
451
+ return pulumi.get(self, "type")
452
+
453
+ @type.setter
454
+ def type(self, value: Optional[pulumi.Input[_builtins.str]]):
455
+ pulumi.set(self, "type", value)
456
+
457
+ @_builtins.property
458
+ @pulumi.getter
459
+ def vni(self) -> Optional[pulumi.Input[_builtins.int]]:
460
+ """
461
+ The globally-assigned VXLAN VNI for the BGP VPN. Changing
462
+ this creates a new BGP VPN.
463
+ """
464
+ return pulumi.get(self, "vni")
465
+
466
+ @vni.setter
467
+ def vni(self, value: Optional[pulumi.Input[_builtins.int]]):
468
+ pulumi.set(self, "vni", value)
469
+
470
+
471
+ @pulumi.type_token("openstack:bgpvpn/v2:V2")
472
+ class V2(pulumi.CustomResource):
473
+ @overload
474
+ def __init__(__self__,
475
+ resource_name: str,
476
+ opts: Optional[pulumi.ResourceOptions] = None,
477
+ export_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
478
+ import_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
479
+ local_pref: Optional[pulumi.Input[_builtins.int]] = None,
480
+ name: Optional[pulumi.Input[_builtins.str]] = None,
481
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
482
+ region: Optional[pulumi.Input[_builtins.str]] = None,
483
+ route_distinguishers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
484
+ route_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
485
+ type: Optional[pulumi.Input[_builtins.str]] = None,
486
+ vni: Optional[pulumi.Input[_builtins.int]] = None,
487
+ __props__=None):
488
+ """
489
+ Manages a V2 BGP VPN service resource within OpenStack.
490
+
491
+ ## Example Usage
492
+
493
+ ```python
494
+ import pulumi
495
+ import pulumi_openstack as openstack
496
+
497
+ bgpvpn1 = openstack.bgpvpn.V2("bgpvpn_1",
498
+ name="bgpvpn1",
499
+ route_distinguishers=["64512:1"],
500
+ route_targets=["64512:1"],
501
+ import_targets=["64512:2"],
502
+ export_targets=["64512:3"])
503
+ ```
504
+
505
+ ## Import
506
+
507
+ BGP VPNs can be imported using the `id`, e.g.
508
+
509
+ hcl
510
+
511
+ ```sh
512
+ $ pulumi import openstack:bgpvpn/v2:V2 bgpvpn_1 1eec2c66-6be2-4305-af3f-354c9b81f18c
513
+ ```
514
+
515
+ :param str resource_name: The name of the resource.
516
+ :param pulumi.ResourceOptions opts: Options for the resource.
517
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] export_targets: A list of additional Route Targets that will be
518
+ used for export.
519
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] import_targets: A list of additional Route Targets that will be
520
+ imported.
521
+ :param pulumi.Input[_builtins.int] local_pref: The default BGP LOCAL\\_PREF of routes that will be
522
+ advertised to the BGP VPN, unless overridden per-route.
523
+ :param pulumi.Input[_builtins.str] name: The name of the BGP VPN. Changing this updates the name of
524
+ the existing BGP VPN.
525
+ :param pulumi.Input[_builtins.str] project_id: The ID of the project that owns the BGPVPN. Only
526
+ administrative and users with `advsvc` role can specify a project ID other
527
+ than their own. Changing this creates a new BGP VPN.
528
+ :param pulumi.Input[_builtins.str] region: The region in which to obtain the V2 Networking client.
529
+ A Networking client is needed to create a BGP VPN service. If omitted, the
530
+ `region` argument of the provider is used. Changing this creates a new
531
+ BGP VPN.
532
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_distinguishers: A list of route distinguisher strings. If
533
+ specified, one of these RDs will be used to advertise VPN routes.
534
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_targets: A list of Route Targets that will be both
535
+ imported and used for export.
536
+ :param pulumi.Input[_builtins.str] type: The type of the BGP VPN (either `l2` or `l3`). Changing this
537
+ creates a new BGP VPN. Defaults to `l3`.
538
+ :param pulumi.Input[_builtins.int] vni: The globally-assigned VXLAN VNI for the BGP VPN. Changing
539
+ this creates a new BGP VPN.
540
+ """
541
+ ...
542
+ @overload
543
+ def __init__(__self__,
544
+ resource_name: str,
545
+ args: Optional[V2Args] = None,
546
+ opts: Optional[pulumi.ResourceOptions] = None):
547
+ """
548
+ Manages a V2 BGP VPN service resource within OpenStack.
549
+
550
+ ## Example Usage
551
+
552
+ ```python
553
+ import pulumi
554
+ import pulumi_openstack as openstack
555
+
556
+ bgpvpn1 = openstack.bgpvpn.V2("bgpvpn_1",
557
+ name="bgpvpn1",
558
+ route_distinguishers=["64512:1"],
559
+ route_targets=["64512:1"],
560
+ import_targets=["64512:2"],
561
+ export_targets=["64512:3"])
562
+ ```
563
+
564
+ ## Import
565
+
566
+ BGP VPNs can be imported using the `id`, e.g.
567
+
568
+ hcl
569
+
570
+ ```sh
571
+ $ pulumi import openstack:bgpvpn/v2:V2 bgpvpn_1 1eec2c66-6be2-4305-af3f-354c9b81f18c
572
+ ```
573
+
574
+ :param str resource_name: The name of the resource.
575
+ :param V2Args args: The arguments to use to populate this resource's properties.
576
+ :param pulumi.ResourceOptions opts: Options for the resource.
577
+ """
578
+ ...
579
+ def __init__(__self__, resource_name: str, *args, **kwargs):
580
+ resource_args, opts = _utilities.get_resource_args_opts(V2Args, pulumi.ResourceOptions, *args, **kwargs)
581
+ if resource_args is not None:
582
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
583
+ else:
584
+ __self__._internal_init(resource_name, *args, **kwargs)
585
+
586
+ def _internal_init(__self__,
587
+ resource_name: str,
588
+ opts: Optional[pulumi.ResourceOptions] = None,
589
+ export_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
590
+ import_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
591
+ local_pref: Optional[pulumi.Input[_builtins.int]] = None,
592
+ name: Optional[pulumi.Input[_builtins.str]] = None,
593
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
594
+ region: Optional[pulumi.Input[_builtins.str]] = None,
595
+ route_distinguishers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
596
+ route_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
597
+ type: Optional[pulumi.Input[_builtins.str]] = None,
598
+ vni: Optional[pulumi.Input[_builtins.int]] = None,
599
+ __props__=None):
600
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
601
+ if not isinstance(opts, pulumi.ResourceOptions):
602
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
603
+ if opts.id is None:
604
+ if __props__ is not None:
605
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
606
+ __props__ = V2Args.__new__(V2Args)
607
+
608
+ __props__.__dict__["export_targets"] = export_targets
609
+ __props__.__dict__["import_targets"] = import_targets
610
+ __props__.__dict__["local_pref"] = local_pref
611
+ __props__.__dict__["name"] = name
612
+ __props__.__dict__["project_id"] = project_id
613
+ __props__.__dict__["region"] = region
614
+ __props__.__dict__["route_distinguishers"] = route_distinguishers
615
+ __props__.__dict__["route_targets"] = route_targets
616
+ __props__.__dict__["type"] = type
617
+ __props__.__dict__["vni"] = vni
618
+ __props__.__dict__["networks"] = None
619
+ __props__.__dict__["ports"] = None
620
+ __props__.__dict__["routers"] = None
621
+ __props__.__dict__["shared"] = None
622
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="openstack:index/bgpvpnV2:BgpvpnV2")])
623
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
624
+ super(V2, __self__).__init__(
625
+ 'openstack:bgpvpn/v2:V2',
626
+ resource_name,
627
+ __props__,
628
+ opts)
629
+
630
+ @staticmethod
631
+ def get(resource_name: str,
632
+ id: pulumi.Input[str],
633
+ opts: Optional[pulumi.ResourceOptions] = None,
634
+ export_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
635
+ import_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
636
+ local_pref: Optional[pulumi.Input[_builtins.int]] = None,
637
+ name: Optional[pulumi.Input[_builtins.str]] = None,
638
+ networks: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
639
+ ports: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
640
+ project_id: Optional[pulumi.Input[_builtins.str]] = None,
641
+ region: Optional[pulumi.Input[_builtins.str]] = None,
642
+ route_distinguishers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
643
+ route_targets: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
644
+ routers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
645
+ shared: Optional[pulumi.Input[_builtins.bool]] = None,
646
+ type: Optional[pulumi.Input[_builtins.str]] = None,
647
+ vni: Optional[pulumi.Input[_builtins.int]] = None) -> 'V2':
648
+ """
649
+ Get an existing V2 resource's state with the given name, id, and optional extra
650
+ properties used to qualify the lookup.
651
+
652
+ :param str resource_name: The unique name of the resulting resource.
653
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
654
+ :param pulumi.ResourceOptions opts: Options for the resource.
655
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] export_targets: A list of additional Route Targets that will be
656
+ used for export.
657
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] import_targets: A list of additional Route Targets that will be
658
+ imported.
659
+ :param pulumi.Input[_builtins.int] local_pref: The default BGP LOCAL\\_PREF of routes that will be
660
+ advertised to the BGP VPN, unless overridden per-route.
661
+ :param pulumi.Input[_builtins.str] name: The name of the BGP VPN. Changing this updates the name of
662
+ the existing BGP VPN.
663
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] networks: A list of network IDs that are associated with the BGP VPN.
664
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ports: A list of port IDs that are associated with the BGP VPN.
665
+ :param pulumi.Input[_builtins.str] project_id: The ID of the project that owns the BGPVPN. Only
666
+ administrative and users with `advsvc` role can specify a project ID other
667
+ than their own. Changing this creates a new BGP VPN.
668
+ :param pulumi.Input[_builtins.str] region: The region in which to obtain the V2 Networking client.
669
+ A Networking client is needed to create a BGP VPN service. If omitted, the
670
+ `region` argument of the provider is used. Changing this creates a new
671
+ BGP VPN.
672
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_distinguishers: A list of route distinguisher strings. If
673
+ specified, one of these RDs will be used to advertise VPN routes.
674
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] route_targets: A list of Route Targets that will be both
675
+ imported and used for export.
676
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] routers: A list of router IDs that are associated with the BGP VPN.
677
+ :param pulumi.Input[_builtins.bool] shared: Indicates whether the BGP VPN is shared across projects.
678
+ :param pulumi.Input[_builtins.str] type: The type of the BGP VPN (either `l2` or `l3`). Changing this
679
+ creates a new BGP VPN. Defaults to `l3`.
680
+ :param pulumi.Input[_builtins.int] vni: The globally-assigned VXLAN VNI for the BGP VPN. Changing
681
+ this creates a new BGP VPN.
682
+ """
683
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
684
+
685
+ __props__ = _V2State.__new__(_V2State)
686
+
687
+ __props__.__dict__["export_targets"] = export_targets
688
+ __props__.__dict__["import_targets"] = import_targets
689
+ __props__.__dict__["local_pref"] = local_pref
690
+ __props__.__dict__["name"] = name
691
+ __props__.__dict__["networks"] = networks
692
+ __props__.__dict__["ports"] = ports
693
+ __props__.__dict__["project_id"] = project_id
694
+ __props__.__dict__["region"] = region
695
+ __props__.__dict__["route_distinguishers"] = route_distinguishers
696
+ __props__.__dict__["route_targets"] = route_targets
697
+ __props__.__dict__["routers"] = routers
698
+ __props__.__dict__["shared"] = shared
699
+ __props__.__dict__["type"] = type
700
+ __props__.__dict__["vni"] = vni
701
+ return V2(resource_name, opts=opts, __props__=__props__)
702
+
703
+ @_builtins.property
704
+ @pulumi.getter(name="exportTargets")
705
+ def export_targets(self) -> pulumi.Output[Sequence[_builtins.str]]:
706
+ """
707
+ A list of additional Route Targets that will be
708
+ used for export.
709
+ """
710
+ return pulumi.get(self, "export_targets")
711
+
712
+ @_builtins.property
713
+ @pulumi.getter(name="importTargets")
714
+ def import_targets(self) -> pulumi.Output[Sequence[_builtins.str]]:
715
+ """
716
+ A list of additional Route Targets that will be
717
+ imported.
718
+ """
719
+ return pulumi.get(self, "import_targets")
720
+
721
+ @_builtins.property
722
+ @pulumi.getter(name="localPref")
723
+ def local_pref(self) -> pulumi.Output[Optional[_builtins.int]]:
724
+ """
725
+ The default BGP LOCAL\\_PREF of routes that will be
726
+ advertised to the BGP VPN, unless overridden per-route.
727
+ """
728
+ return pulumi.get(self, "local_pref")
729
+
730
+ @_builtins.property
731
+ @pulumi.getter
732
+ def name(self) -> pulumi.Output[_builtins.str]:
733
+ """
734
+ The name of the BGP VPN. Changing this updates the name of
735
+ the existing BGP VPN.
736
+ """
737
+ return pulumi.get(self, "name")
738
+
739
+ @_builtins.property
740
+ @pulumi.getter
741
+ def networks(self) -> pulumi.Output[Sequence[_builtins.str]]:
742
+ """
743
+ A list of network IDs that are associated with the BGP VPN.
744
+ """
745
+ return pulumi.get(self, "networks")
746
+
747
+ @_builtins.property
748
+ @pulumi.getter
749
+ def ports(self) -> pulumi.Output[Sequence[_builtins.str]]:
750
+ """
751
+ A list of port IDs that are associated with the BGP VPN.
752
+ """
753
+ return pulumi.get(self, "ports")
754
+
755
+ @_builtins.property
756
+ @pulumi.getter(name="projectId")
757
+ def project_id(self) -> pulumi.Output[_builtins.str]:
758
+ """
759
+ The ID of the project that owns the BGPVPN. Only
760
+ administrative and users with `advsvc` role can specify a project ID other
761
+ than their own. Changing this creates a new BGP VPN.
762
+ """
763
+ return pulumi.get(self, "project_id")
764
+
765
+ @_builtins.property
766
+ @pulumi.getter
767
+ def region(self) -> pulumi.Output[_builtins.str]:
768
+ """
769
+ The region in which to obtain the V2 Networking client.
770
+ A Networking client is needed to create a BGP VPN service. If omitted, the
771
+ `region` argument of the provider is used. Changing this creates a new
772
+ BGP VPN.
773
+ """
774
+ return pulumi.get(self, "region")
775
+
776
+ @_builtins.property
777
+ @pulumi.getter(name="routeDistinguishers")
778
+ def route_distinguishers(self) -> pulumi.Output[Sequence[_builtins.str]]:
779
+ """
780
+ A list of route distinguisher strings. If
781
+ specified, one of these RDs will be used to advertise VPN routes.
782
+ """
783
+ return pulumi.get(self, "route_distinguishers")
784
+
785
+ @_builtins.property
786
+ @pulumi.getter(name="routeTargets")
787
+ def route_targets(self) -> pulumi.Output[Sequence[_builtins.str]]:
788
+ """
789
+ A list of Route Targets that will be both
790
+ imported and used for export.
791
+ """
792
+ return pulumi.get(self, "route_targets")
793
+
794
+ @_builtins.property
795
+ @pulumi.getter
796
+ def routers(self) -> pulumi.Output[Sequence[_builtins.str]]:
797
+ """
798
+ A list of router IDs that are associated with the BGP VPN.
799
+ """
800
+ return pulumi.get(self, "routers")
801
+
802
+ @_builtins.property
803
+ @pulumi.getter
804
+ def shared(self) -> pulumi.Output[_builtins.bool]:
805
+ """
806
+ Indicates whether the BGP VPN is shared across projects.
807
+ """
808
+ return pulumi.get(self, "shared")
809
+
810
+ @_builtins.property
811
+ @pulumi.getter
812
+ def type(self) -> pulumi.Output[_builtins.str]:
813
+ """
814
+ The type of the BGP VPN (either `l2` or `l3`). Changing this
815
+ creates a new BGP VPN. Defaults to `l3`.
816
+ """
817
+ return pulumi.get(self, "type")
818
+
819
+ @_builtins.property
820
+ @pulumi.getter
821
+ def vni(self) -> pulumi.Output[Optional[_builtins.int]]:
822
+ """
823
+ The globally-assigned VXLAN VNI for the BGP VPN. Changing
824
+ this creates a new BGP VPN.
825
+ """
826
+ return pulumi.get(self, "vni")
827
+