pulumi-gcp 7.19.0a1713335069__py3-none-any.whl → 7.19.0a1713444144__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 (41) hide show
  1. pulumi_gcp/__init__.py +11 -0
  2. pulumi_gcp/accesscontextmanager/access_policy.py +4 -4
  3. pulumi_gcp/apigee/sync_authorization.py +4 -4
  4. pulumi_gcp/compute/_inputs.py +24 -0
  5. pulumi_gcp/compute/get_router_nat.py +11 -1
  6. pulumi_gcp/compute/instance_settings.py +16 -0
  7. pulumi_gcp/compute/outputs.py +41 -0
  8. pulumi_gcp/compute/router_interface.py +47 -0
  9. pulumi_gcp/compute/router_nat.py +68 -0
  10. pulumi_gcp/compute/router_peer.py +141 -0
  11. pulumi_gcp/config/__init__.pyi +2 -0
  12. pulumi_gcp/config/vars.py +4 -0
  13. pulumi_gcp/container/_inputs.py +48 -7
  14. pulumi_gcp/container/outputs.py +67 -8
  15. pulumi_gcp/datastore/data_store_index.py +14 -0
  16. pulumi_gcp/dns/_inputs.py +22 -22
  17. pulumi_gcp/dns/outputs.py +22 -22
  18. pulumi_gcp/firestore/_inputs.py +80 -11
  19. pulumi_gcp/firestore/document.py +0 -4
  20. pulumi_gcp/firestore/index.py +116 -42
  21. pulumi_gcp/firestore/outputs.py +70 -11
  22. pulumi_gcp/gkebackup/_inputs.py +358 -3
  23. pulumi_gcp/gkebackup/backup_plan.py +294 -0
  24. pulumi_gcp/gkebackup/outputs.py +353 -3
  25. pulumi_gcp/networksecurity/firewall_endpoint.py +2 -0
  26. pulumi_gcp/networksecurity/firewall_endpoint_association.py +61 -0
  27. pulumi_gcp/parallelstore/__init__.py +8 -0
  28. pulumi_gcp/parallelstore/instance.py +1128 -0
  29. pulumi_gcp/provider.py +20 -0
  30. pulumi_gcp/sql/_inputs.py +16 -0
  31. pulumi_gcp/sql/outputs.py +36 -0
  32. pulumi_gcp/tags/__init__.py +2 -0
  33. pulumi_gcp/tags/get_tag_keys.py +101 -0
  34. pulumi_gcp/tags/get_tag_values.py +101 -0
  35. pulumi_gcp/tags/outputs.py +200 -0
  36. pulumi_gcp/vmwareengine/get_private_cloud.py +21 -1
  37. pulumi_gcp/vmwareengine/private_cloud.py +101 -7
  38. {pulumi_gcp-7.19.0a1713335069.dist-info → pulumi_gcp-7.19.0a1713444144.dist-info}/METADATA +1 -1
  39. {pulumi_gcp-7.19.0a1713335069.dist-info → pulumi_gcp-7.19.0a1713444144.dist-info}/RECORD +41 -37
  40. {pulumi_gcp-7.19.0a1713335069.dist-info → pulumi_gcp-7.19.0a1713444144.dist-info}/WHEEL +0 -0
  41. {pulumi_gcp-7.19.0a1713335069.dist-info → pulumi_gcp-7.19.0a1713444144.dist-info}/top_level.txt +0 -0
pulumi_gcp/__init__.py CHANGED
@@ -192,6 +192,8 @@ if typing.TYPE_CHECKING:
192
192
  osconfig = __osconfig
193
193
  import pulumi_gcp.oslogin as __oslogin
194
194
  oslogin = __oslogin
195
+ import pulumi_gcp.parallelstore as __parallelstore
196
+ parallelstore = __parallelstore
195
197
  import pulumi_gcp.projects as __projects
196
198
  projects = __projects
197
199
  import pulumi_gcp.pubsub as __pubsub
@@ -336,6 +338,7 @@ else:
336
338
  orgpolicy = _utilities.lazy_import('pulumi_gcp.orgpolicy')
337
339
  osconfig = _utilities.lazy_import('pulumi_gcp.osconfig')
338
340
  oslogin = _utilities.lazy_import('pulumi_gcp.oslogin')
341
+ parallelstore = _utilities.lazy_import('pulumi_gcp.parallelstore')
339
342
  projects = _utilities.lazy_import('pulumi_gcp.projects')
340
343
  pubsub = _utilities.lazy_import('pulumi_gcp.pubsub')
341
344
  recaptcha = _utilities.lazy_import('pulumi_gcp.recaptcha')
@@ -6230,6 +6233,14 @@ _utilities.register(
6230
6233
  "gcp:oslogin/sshPublicKey:SshPublicKey": "SshPublicKey"
6231
6234
  }
6232
6235
  },
6236
+ {
6237
+ "pkg": "gcp",
6238
+ "mod": "parallelstore/instance",
6239
+ "fqn": "pulumi_gcp.parallelstore",
6240
+ "classes": {
6241
+ "gcp:parallelstore/instance:Instance": "Instance"
6242
+ }
6243
+ },
6233
6244
  {
6234
6245
  "pkg": "gcp",
6235
6246
  "mod": "projects/accessApprovalSettings",
@@ -239,8 +239,8 @@ class AccessPolicy(pulumi.CustomResource):
239
239
  import pulumi_gcp as gcp
240
240
 
241
241
  project = gcp.organizations.Project("project",
242
- project_id="acm-test-proj-123",
243
- name="acm-test-proj-123",
242
+ project_id="my-project-name",
243
+ name="my-project-name",
244
244
  org_id="123456789")
245
245
  access_policy = gcp.accesscontextmanager.AccessPolicy("access-policy",
246
246
  parent="organizations/123456789",
@@ -319,8 +319,8 @@ class AccessPolicy(pulumi.CustomResource):
319
319
  import pulumi_gcp as gcp
320
320
 
321
321
  project = gcp.organizations.Project("project",
322
- project_id="acm-test-proj-123",
323
- name="acm-test-proj-123",
322
+ project_id="my-project-name",
323
+ name="my-project-name",
324
324
  org_id="123456789")
325
325
  access_policy = gcp.accesscontextmanager.AccessPolicy("access-policy",
326
326
  parent="organizations/123456789",
@@ -173,10 +173,10 @@ class SyncAuthorization(pulumi.CustomResource):
173
173
  service_account = gcp.serviceaccount.Account("service_account",
174
174
  account_id="my-account",
175
175
  display_name="Service Account")
176
- synchronizer_iam = gcp.projects.IAMBinding("synchronizer-iam",
176
+ synchronizer_iam = gcp.projects.IAMMember("synchronizer-iam",
177
177
  project=project.project_id,
178
178
  role="roles/apigee.synchronizerManager",
179
- members=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
179
+ member=service_account.email.apply(lambda email: f"serviceAccount:{email}"))
180
180
  apigee_sync_authorization = gcp.apigee.SyncAuthorization("apigee_sync_authorization",
181
181
  name=apigee_org.name,
182
182
  identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
@@ -251,10 +251,10 @@ class SyncAuthorization(pulumi.CustomResource):
251
251
  service_account = gcp.serviceaccount.Account("service_account",
252
252
  account_id="my-account",
253
253
  display_name="Service Account")
254
- synchronizer_iam = gcp.projects.IAMBinding("synchronizer-iam",
254
+ synchronizer_iam = gcp.projects.IAMMember("synchronizer-iam",
255
255
  project=project.project_id,
256
256
  role="roles/apigee.synchronizerManager",
257
- members=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
257
+ member=service_account.email.apply(lambda email: f"serviceAccount:{email}"))
258
258
  apigee_sync_authorization = gcp.apigee.SyncAuthorization("apigee_sync_authorization",
259
259
  name=apigee_org.name,
260
260
  identities=[service_account.email.apply(lambda email: f"serviceAccount:{email}")])
@@ -28038,6 +28038,7 @@ class RouterBgpArgs:
28038
28038
  advertise_mode: Optional[pulumi.Input[str]] = None,
28039
28039
  advertised_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
28040
28040
  advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterBgpAdvertisedIpRangeArgs']]]] = None,
28041
+ identifier_range: Optional[pulumi.Input[str]] = None,
28041
28042
  keepalive_interval: Optional[pulumi.Input[int]] = None):
28042
28043
  """
28043
28044
  :param pulumi.Input[int] asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
@@ -28059,6 +28060,11 @@ class RouterBgpArgs:
28059
28060
  ranges will be advertised in addition to any specified groups.
28060
28061
  Leave this field blank to advertise no custom IP ranges.
28061
28062
  Structure is documented below.
28063
+ :param pulumi.Input[str] identifier_range: Explicitly specifies a range of valid BGP Identifiers for this Router.
28064
+ It is provided as a link-local IPv4 range (from 169.254.0.0/16), of
28065
+ size at least /30, even if the BGP sessions are over IPv6. It must
28066
+ not overlap with any IPv4 BGP session ranges. Other vendors commonly
28067
+ call this router ID.
28062
28068
  :param pulumi.Input[int] keepalive_interval: The interval in seconds between BGP keepalive messages that are sent
28063
28069
  to the peer. Hold time is three times the interval at which keepalive
28064
28070
  messages are sent, and the hold time is the maximum number of seconds
@@ -28076,6 +28082,8 @@ class RouterBgpArgs:
28076
28082
  pulumi.set(__self__, "advertised_groups", advertised_groups)
28077
28083
  if advertised_ip_ranges is not None:
28078
28084
  pulumi.set(__self__, "advertised_ip_ranges", advertised_ip_ranges)
28085
+ if identifier_range is not None:
28086
+ pulumi.set(__self__, "identifier_range", identifier_range)
28079
28087
  if keepalive_interval is not None:
28080
28088
  pulumi.set(__self__, "keepalive_interval", keepalive_interval)
28081
28089
 
@@ -28142,6 +28150,22 @@ class RouterBgpArgs:
28142
28150
  def advertised_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterBgpAdvertisedIpRangeArgs']]]]):
28143
28151
  pulumi.set(self, "advertised_ip_ranges", value)
28144
28152
 
28153
+ @property
28154
+ @pulumi.getter(name="identifierRange")
28155
+ def identifier_range(self) -> Optional[pulumi.Input[str]]:
28156
+ """
28157
+ Explicitly specifies a range of valid BGP Identifiers for this Router.
28158
+ It is provided as a link-local IPv4 range (from 169.254.0.0/16), of
28159
+ size at least /30, even if the BGP sessions are over IPv6. It must
28160
+ not overlap with any IPv4 BGP session ranges. Other vendors commonly
28161
+ call this router ID.
28162
+ """
28163
+ return pulumi.get(self, "identifier_range")
28164
+
28165
+ @identifier_range.setter
28166
+ def identifier_range(self, value: Optional[pulumi.Input[str]]):
28167
+ pulumi.set(self, "identifier_range", value)
28168
+
28145
28169
  @property
28146
28170
  @pulumi.getter(name="keepaliveInterval")
28147
28171
  def keepalive_interval(self) -> Optional[pulumi.Input[int]]:
@@ -22,7 +22,7 @@ class GetRouterNatResult:
22
22
  """
23
23
  A collection of values returned by getRouterNat.
24
24
  """
25
- def __init__(__self__, drain_nat_ips=None, enable_dynamic_port_allocation=None, enable_endpoint_independent_mapping=None, icmp_idle_timeout_sec=None, id=None, log_configs=None, max_ports_per_vm=None, min_ports_per_vm=None, name=None, nat_ip_allocate_option=None, nat_ips=None, project=None, region=None, router=None, rules=None, source_subnetwork_ip_ranges_to_nat=None, subnetworks=None, tcp_established_idle_timeout_sec=None, tcp_time_wait_timeout_sec=None, tcp_transitory_idle_timeout_sec=None, type=None, udp_idle_timeout_sec=None):
25
+ def __init__(__self__, drain_nat_ips=None, enable_dynamic_port_allocation=None, enable_endpoint_independent_mapping=None, endpoint_types=None, icmp_idle_timeout_sec=None, id=None, log_configs=None, max_ports_per_vm=None, min_ports_per_vm=None, name=None, nat_ip_allocate_option=None, nat_ips=None, project=None, region=None, router=None, rules=None, source_subnetwork_ip_ranges_to_nat=None, subnetworks=None, tcp_established_idle_timeout_sec=None, tcp_time_wait_timeout_sec=None, tcp_transitory_idle_timeout_sec=None, type=None, udp_idle_timeout_sec=None):
26
26
  if drain_nat_ips and not isinstance(drain_nat_ips, list):
27
27
  raise TypeError("Expected argument 'drain_nat_ips' to be a list")
28
28
  pulumi.set(__self__, "drain_nat_ips", drain_nat_ips)
@@ -32,6 +32,9 @@ class GetRouterNatResult:
32
32
  if enable_endpoint_independent_mapping and not isinstance(enable_endpoint_independent_mapping, bool):
33
33
  raise TypeError("Expected argument 'enable_endpoint_independent_mapping' to be a bool")
34
34
  pulumi.set(__self__, "enable_endpoint_independent_mapping", enable_endpoint_independent_mapping)
35
+ if endpoint_types and not isinstance(endpoint_types, list):
36
+ raise TypeError("Expected argument 'endpoint_types' to be a list")
37
+ pulumi.set(__self__, "endpoint_types", endpoint_types)
35
38
  if icmp_idle_timeout_sec and not isinstance(icmp_idle_timeout_sec, int):
36
39
  raise TypeError("Expected argument 'icmp_idle_timeout_sec' to be a int")
37
40
  pulumi.set(__self__, "icmp_idle_timeout_sec", icmp_idle_timeout_sec)
@@ -105,6 +108,11 @@ class GetRouterNatResult:
105
108
  def enable_endpoint_independent_mapping(self) -> bool:
106
109
  return pulumi.get(self, "enable_endpoint_independent_mapping")
107
110
 
111
+ @property
112
+ @pulumi.getter(name="endpointTypes")
113
+ def endpoint_types(self) -> Sequence[str]:
114
+ return pulumi.get(self, "endpoint_types")
115
+
108
116
  @property
109
117
  @pulumi.getter(name="icmpIdleTimeoutSec")
110
118
  def icmp_idle_timeout_sec(self) -> int:
@@ -213,6 +221,7 @@ class AwaitableGetRouterNatResult(GetRouterNatResult):
213
221
  drain_nat_ips=self.drain_nat_ips,
214
222
  enable_dynamic_port_allocation=self.enable_dynamic_port_allocation,
215
223
  enable_endpoint_independent_mapping=self.enable_endpoint_independent_mapping,
224
+ endpoint_types=self.endpoint_types,
216
225
  icmp_idle_timeout_sec=self.icmp_idle_timeout_sec,
217
226
  id=self.id,
218
227
  log_configs=self.log_configs,
@@ -280,6 +289,7 @@ def get_router_nat(name: Optional[str] = None,
280
289
  drain_nat_ips=pulumi.get(__ret__, 'drain_nat_ips'),
281
290
  enable_dynamic_port_allocation=pulumi.get(__ret__, 'enable_dynamic_port_allocation'),
282
291
  enable_endpoint_independent_mapping=pulumi.get(__ret__, 'enable_endpoint_independent_mapping'),
292
+ endpoint_types=pulumi.get(__ret__, 'endpoint_types'),
283
293
  icmp_idle_timeout_sec=pulumi.get(__ret__, 'icmp_idle_timeout_sec'),
284
294
  id=pulumi.get(__ret__, 'id'),
285
295
  log_configs=pulumi.get(__ret__, 'log_configs'),
@@ -172,6 +172,14 @@ class InstanceSettings(pulumi.CustomResource):
172
172
  zone: Optional[pulumi.Input[str]] = None,
173
173
  __props__=None):
174
174
  """
175
+ Represents an Instance Settings resource. Instance settings are centralized configuration parameters that allow users to configure the default values for specific VM parameters that are normally set using GCE instance API methods.
176
+
177
+ To get more information about InstanceSettings, see:
178
+
179
+ * [API documentation](https://cloud.google.com/compute/docs/reference/rest/beta/instanceSettings)
180
+ * How-to Guides
181
+ * [Update Instance Settings](https://cloud.google.com/compute/docs/metadata/setting-custom-metadata#set-custom-project-zonal-metadata)
182
+
175
183
  ## Example Usage
176
184
 
177
185
  ### Instance Settings Basic
@@ -233,6 +241,14 @@ class InstanceSettings(pulumi.CustomResource):
233
241
  args: InstanceSettingsArgs,
234
242
  opts: Optional[pulumi.ResourceOptions] = None):
235
243
  """
244
+ Represents an Instance Settings resource. Instance settings are centralized configuration parameters that allow users to configure the default values for specific VM parameters that are normally set using GCE instance API methods.
245
+
246
+ To get more information about InstanceSettings, see:
247
+
248
+ * [API documentation](https://cloud.google.com/compute/docs/reference/rest/beta/instanceSettings)
249
+ * How-to Guides
250
+ * [Update Instance Settings](https://cloud.google.com/compute/docs/metadata/setting-custom-metadata#set-custom-project-zonal-metadata)
251
+
236
252
  ## Example Usage
237
253
 
238
254
  ### Instance Settings Basic
@@ -28418,6 +28418,8 @@ class RouterBgp(dict):
28418
28418
  suggest = "advertised_groups"
28419
28419
  elif key == "advertisedIpRanges":
28420
28420
  suggest = "advertised_ip_ranges"
28421
+ elif key == "identifierRange":
28422
+ suggest = "identifier_range"
28421
28423
  elif key == "keepaliveInterval":
28422
28424
  suggest = "keepalive_interval"
28423
28425
 
@@ -28437,6 +28439,7 @@ class RouterBgp(dict):
28437
28439
  advertise_mode: Optional[str] = None,
28438
28440
  advertised_groups: Optional[Sequence[str]] = None,
28439
28441
  advertised_ip_ranges: Optional[Sequence['outputs.RouterBgpAdvertisedIpRange']] = None,
28442
+ identifier_range: Optional[str] = None,
28440
28443
  keepalive_interval: Optional[int] = None):
28441
28444
  """
28442
28445
  :param int asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
@@ -28458,6 +28461,11 @@ class RouterBgp(dict):
28458
28461
  ranges will be advertised in addition to any specified groups.
28459
28462
  Leave this field blank to advertise no custom IP ranges.
28460
28463
  Structure is documented below.
28464
+ :param str identifier_range: Explicitly specifies a range of valid BGP Identifiers for this Router.
28465
+ It is provided as a link-local IPv4 range (from 169.254.0.0/16), of
28466
+ size at least /30, even if the BGP sessions are over IPv6. It must
28467
+ not overlap with any IPv4 BGP session ranges. Other vendors commonly
28468
+ call this router ID.
28461
28469
  :param int keepalive_interval: The interval in seconds between BGP keepalive messages that are sent
28462
28470
  to the peer. Hold time is three times the interval at which keepalive
28463
28471
  messages are sent, and the hold time is the maximum number of seconds
@@ -28475,6 +28483,8 @@ class RouterBgp(dict):
28475
28483
  pulumi.set(__self__, "advertised_groups", advertised_groups)
28476
28484
  if advertised_ip_ranges is not None:
28477
28485
  pulumi.set(__self__, "advertised_ip_ranges", advertised_ip_ranges)
28486
+ if identifier_range is not None:
28487
+ pulumi.set(__self__, "identifier_range", identifier_range)
28478
28488
  if keepalive_interval is not None:
28479
28489
  pulumi.set(__self__, "keepalive_interval", keepalive_interval)
28480
28490
 
@@ -28525,6 +28535,18 @@ class RouterBgp(dict):
28525
28535
  """
28526
28536
  return pulumi.get(self, "advertised_ip_ranges")
28527
28537
 
28538
+ @property
28539
+ @pulumi.getter(name="identifierRange")
28540
+ def identifier_range(self) -> Optional[str]:
28541
+ """
28542
+ Explicitly specifies a range of valid BGP Identifiers for this Router.
28543
+ It is provided as a link-local IPv4 range (from 169.254.0.0/16), of
28544
+ size at least /30, even if the BGP sessions are over IPv6. It must
28545
+ not overlap with any IPv4 BGP session ranges. Other vendors commonly
28546
+ call this router ID.
28547
+ """
28548
+ return pulumi.get(self, "identifier_range")
28549
+
28528
28550
  @property
28529
28551
  @pulumi.getter(name="keepaliveInterval")
28530
28552
  def keepalive_interval(self) -> Optional[int]:
@@ -47193,6 +47215,7 @@ class GetRouterBgpResult(dict):
47193
47215
  advertised_groups: Sequence[str],
47194
47216
  advertised_ip_ranges: Sequence['outputs.GetRouterBgpAdvertisedIpRangeResult'],
47195
47217
  asn: int,
47218
+ identifier_range: str,
47196
47219
  keepalive_interval: int):
47197
47220
  """
47198
47221
  :param str advertise_mode: User-specified flag to indicate which mode to use for advertisement. Default value: "DEFAULT" Possible values: ["DEFAULT", "CUSTOM"]
@@ -47212,6 +47235,11 @@ class GetRouterBgpResult(dict):
47212
47235
  private ASN, either 16-bit or 32-bit. The value will be fixed for
47213
47236
  this router resource. All VPN tunnels that link to this router
47214
47237
  will have the same local ASN.
47238
+ :param str identifier_range: Explicitly specifies a range of valid BGP Identifiers for this Router.
47239
+ It is provided as a link-local IPv4 range (from 169.254.0.0/16), of
47240
+ size at least /30, even if the BGP sessions are over IPv6. It must
47241
+ not overlap with any IPv4 BGP session ranges. Other vendors commonly
47242
+ call this router ID.
47215
47243
  :param int keepalive_interval: The interval in seconds between BGP keepalive messages that are sent
47216
47244
  to the peer. Hold time is three times the interval at which keepalive
47217
47245
  messages are sent, and the hold time is the maximum number of seconds
@@ -47227,6 +47255,7 @@ class GetRouterBgpResult(dict):
47227
47255
  pulumi.set(__self__, "advertised_groups", advertised_groups)
47228
47256
  pulumi.set(__self__, "advertised_ip_ranges", advertised_ip_ranges)
47229
47257
  pulumi.set(__self__, "asn", asn)
47258
+ pulumi.set(__self__, "identifier_range", identifier_range)
47230
47259
  pulumi.set(__self__, "keepalive_interval", keepalive_interval)
47231
47260
 
47232
47261
  @property
@@ -47274,6 +47303,18 @@ class GetRouterBgpResult(dict):
47274
47303
  """
47275
47304
  return pulumi.get(self, "asn")
47276
47305
 
47306
+ @property
47307
+ @pulumi.getter(name="identifierRange")
47308
+ def identifier_range(self) -> str:
47309
+ """
47310
+ Explicitly specifies a range of valid BGP Identifiers for this Router.
47311
+ It is provided as a link-local IPv4 range (from 169.254.0.0/16), of
47312
+ size at least /30, even if the BGP sessions are over IPv6. It must
47313
+ not overlap with any IPv4 BGP session ranges. Other vendors commonly
47314
+ call this router ID.
47315
+ """
47316
+ return pulumi.get(self, "identifier_range")
47317
+
47277
47318
  @property
47278
47319
  @pulumi.getter(name="keepaliveInterval")
47279
47320
  def keepalive_interval(self) -> int:
@@ -17,6 +17,7 @@ class RouterInterfaceArgs:
17
17
  router: pulumi.Input[str],
18
18
  interconnect_attachment: Optional[pulumi.Input[str]] = None,
19
19
  ip_range: Optional[pulumi.Input[str]] = None,
20
+ ip_version: Optional[pulumi.Input[str]] = None,
20
21
  name: Optional[pulumi.Input[str]] = None,
21
22
  private_ip_address: Optional[pulumi.Input[str]] = None,
22
23
  project: Optional[pulumi.Input[str]] = None,
@@ -37,6 +38,7 @@ class RouterInterfaceArgs:
37
38
  be created. Only one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
38
39
  :param pulumi.Input[str] ip_range: IP address and range of the interface. The IP range must be
39
40
  in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
41
+ :param pulumi.Input[str] ip_version: IP version of this interface. Can be either IPV4 or IPV6.
40
42
  :param pulumi.Input[str] name: A unique name for the interface, required by GCE. Changing
41
43
  this forces a new interface to be created.
42
44
  :param pulumi.Input[str] private_ip_address: The regional private internal IP address that is used
@@ -58,6 +60,8 @@ class RouterInterfaceArgs:
58
60
  pulumi.set(__self__, "interconnect_attachment", interconnect_attachment)
59
61
  if ip_range is not None:
60
62
  pulumi.set(__self__, "ip_range", ip_range)
63
+ if ip_version is not None:
64
+ pulumi.set(__self__, "ip_version", ip_version)
61
65
  if name is not None:
62
66
  pulumi.set(__self__, "name", name)
63
67
  if private_ip_address is not None:
@@ -117,6 +121,18 @@ class RouterInterfaceArgs:
117
121
  def ip_range(self, value: Optional[pulumi.Input[str]]):
118
122
  pulumi.set(self, "ip_range", value)
119
123
 
124
+ @property
125
+ @pulumi.getter(name="ipVersion")
126
+ def ip_version(self) -> Optional[pulumi.Input[str]]:
127
+ """
128
+ IP version of this interface. Can be either IPV4 or IPV6.
129
+ """
130
+ return pulumi.get(self, "ip_version")
131
+
132
+ @ip_version.setter
133
+ def ip_version(self, value: Optional[pulumi.Input[str]]):
134
+ pulumi.set(self, "ip_version", value)
135
+
120
136
  @property
121
137
  @pulumi.getter
122
138
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -215,6 +231,7 @@ class _RouterInterfaceState:
215
231
  def __init__(__self__, *,
216
232
  interconnect_attachment: Optional[pulumi.Input[str]] = None,
217
233
  ip_range: Optional[pulumi.Input[str]] = None,
234
+ ip_version: Optional[pulumi.Input[str]] = None,
218
235
  name: Optional[pulumi.Input[str]] = None,
219
236
  private_ip_address: Optional[pulumi.Input[str]] = None,
220
237
  project: Optional[pulumi.Input[str]] = None,
@@ -230,6 +247,7 @@ class _RouterInterfaceState:
230
247
  be created. Only one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
231
248
  :param pulumi.Input[str] ip_range: IP address and range of the interface. The IP range must be
232
249
  in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
250
+ :param pulumi.Input[str] ip_version: IP version of this interface. Can be either IPV4 or IPV6.
233
251
  :param pulumi.Input[str] name: A unique name for the interface, required by GCE. Changing
234
252
  this forces a new interface to be created.
235
253
  :param pulumi.Input[str] private_ip_address: The regional private internal IP address that is used
@@ -256,6 +274,8 @@ class _RouterInterfaceState:
256
274
  pulumi.set(__self__, "interconnect_attachment", interconnect_attachment)
257
275
  if ip_range is not None:
258
276
  pulumi.set(__self__, "ip_range", ip_range)
277
+ if ip_version is not None:
278
+ pulumi.set(__self__, "ip_version", ip_version)
259
279
  if name is not None:
260
280
  pulumi.set(__self__, "name", name)
261
281
  if private_ip_address is not None:
@@ -300,6 +320,18 @@ class _RouterInterfaceState:
300
320
  def ip_range(self, value: Optional[pulumi.Input[str]]):
301
321
  pulumi.set(self, "ip_range", value)
302
322
 
323
+ @property
324
+ @pulumi.getter(name="ipVersion")
325
+ def ip_version(self) -> Optional[pulumi.Input[str]]:
326
+ """
327
+ IP version of this interface. Can be either IPV4 or IPV6.
328
+ """
329
+ return pulumi.get(self, "ip_version")
330
+
331
+ @ip_version.setter
332
+ def ip_version(self, value: Optional[pulumi.Input[str]]):
333
+ pulumi.set(self, "ip_version", value)
334
+
303
335
  @property
304
336
  @pulumi.getter
305
337
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -417,6 +449,7 @@ class RouterInterface(pulumi.CustomResource):
417
449
  opts: Optional[pulumi.ResourceOptions] = None,
418
450
  interconnect_attachment: Optional[pulumi.Input[str]] = None,
419
451
  ip_range: Optional[pulumi.Input[str]] = None,
452
+ ip_version: Optional[pulumi.Input[str]] = None,
420
453
  name: Optional[pulumi.Input[str]] = None,
421
454
  private_ip_address: Optional[pulumi.Input[str]] = None,
422
455
  project: Optional[pulumi.Input[str]] = None,
@@ -473,6 +506,7 @@ class RouterInterface(pulumi.CustomResource):
473
506
  be created. Only one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
474
507
  :param pulumi.Input[str] ip_range: IP address and range of the interface. The IP range must be
475
508
  in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
509
+ :param pulumi.Input[str] ip_version: IP version of this interface. Can be either IPV4 or IPV6.
476
510
  :param pulumi.Input[str] name: A unique name for the interface, required by GCE. Changing
477
511
  this forces a new interface to be created.
478
512
  :param pulumi.Input[str] private_ip_address: The regional private internal IP address that is used
@@ -558,6 +592,7 @@ class RouterInterface(pulumi.CustomResource):
558
592
  opts: Optional[pulumi.ResourceOptions] = None,
559
593
  interconnect_attachment: Optional[pulumi.Input[str]] = None,
560
594
  ip_range: Optional[pulumi.Input[str]] = None,
595
+ ip_version: Optional[pulumi.Input[str]] = None,
561
596
  name: Optional[pulumi.Input[str]] = None,
562
597
  private_ip_address: Optional[pulumi.Input[str]] = None,
563
598
  project: Optional[pulumi.Input[str]] = None,
@@ -577,6 +612,7 @@ class RouterInterface(pulumi.CustomResource):
577
612
 
578
613
  __props__.__dict__["interconnect_attachment"] = interconnect_attachment
579
614
  __props__.__dict__["ip_range"] = ip_range
615
+ __props__.__dict__["ip_version"] = ip_version
580
616
  __props__.__dict__["name"] = name
581
617
  __props__.__dict__["private_ip_address"] = private_ip_address
582
618
  __props__.__dict__["project"] = project
@@ -599,6 +635,7 @@ class RouterInterface(pulumi.CustomResource):
599
635
  opts: Optional[pulumi.ResourceOptions] = None,
600
636
  interconnect_attachment: Optional[pulumi.Input[str]] = None,
601
637
  ip_range: Optional[pulumi.Input[str]] = None,
638
+ ip_version: Optional[pulumi.Input[str]] = None,
602
639
  name: Optional[pulumi.Input[str]] = None,
603
640
  private_ip_address: Optional[pulumi.Input[str]] = None,
604
641
  project: Optional[pulumi.Input[str]] = None,
@@ -619,6 +656,7 @@ class RouterInterface(pulumi.CustomResource):
619
656
  be created. Only one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
620
657
  :param pulumi.Input[str] ip_range: IP address and range of the interface. The IP range must be
621
658
  in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
659
+ :param pulumi.Input[str] ip_version: IP version of this interface. Can be either IPV4 or IPV6.
622
660
  :param pulumi.Input[str] name: A unique name for the interface, required by GCE. Changing
623
661
  this forces a new interface to be created.
624
662
  :param pulumi.Input[str] private_ip_address: The regional private internal IP address that is used
@@ -647,6 +685,7 @@ class RouterInterface(pulumi.CustomResource):
647
685
 
648
686
  __props__.__dict__["interconnect_attachment"] = interconnect_attachment
649
687
  __props__.__dict__["ip_range"] = ip_range
688
+ __props__.__dict__["ip_version"] = ip_version
650
689
  __props__.__dict__["name"] = name
651
690
  __props__.__dict__["private_ip_address"] = private_ip_address
652
691
  __props__.__dict__["project"] = project
@@ -676,6 +715,14 @@ class RouterInterface(pulumi.CustomResource):
676
715
  """
677
716
  return pulumi.get(self, "ip_range")
678
717
 
718
+ @property
719
+ @pulumi.getter(name="ipVersion")
720
+ def ip_version(self) -> pulumi.Output[str]:
721
+ """
722
+ IP version of this interface. Can be either IPV4 or IPV6.
723
+ """
724
+ return pulumi.get(self, "ip_version")
725
+
679
726
  @property
680
727
  @pulumi.getter
681
728
  def name(self) -> pulumi.Output[str]:
@@ -21,6 +21,7 @@ class RouterNatArgs:
21
21
  drain_nat_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
22
22
  enable_dynamic_port_allocation: Optional[pulumi.Input[bool]] = None,
23
23
  enable_endpoint_independent_mapping: Optional[pulumi.Input[bool]] = None,
24
+ endpoint_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
24
25
  icmp_idle_timeout_sec: Optional[pulumi.Input[int]] = None,
25
26
  log_config: Optional[pulumi.Input['RouterNatLogConfigArgs']] = None,
26
27
  max_ports_per_vm: Optional[pulumi.Input[int]] = None,
@@ -64,6 +65,10 @@ class RouterNatArgs:
64
65
  Mutually exclusive with enableEndpointIndependentMapping.
65
66
  :param pulumi.Input[bool] enable_endpoint_independent_mapping: Enable endpoint independent mapping.
66
67
  For more information see the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).
68
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] endpoint_types: Specifies the endpoint Types supported by the NAT Gateway.
69
+ Supported values include:
70
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
71
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
67
72
  :param pulumi.Input[int] icmp_idle_timeout_sec: Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
68
73
  :param pulumi.Input['RouterNatLogConfigArgs'] log_config: Configuration for logging on NAT
69
74
  Structure is documented below.
@@ -108,6 +113,8 @@ class RouterNatArgs:
108
113
  pulumi.set(__self__, "enable_dynamic_port_allocation", enable_dynamic_port_allocation)
109
114
  if enable_endpoint_independent_mapping is not None:
110
115
  pulumi.set(__self__, "enable_endpoint_independent_mapping", enable_endpoint_independent_mapping)
116
+ if endpoint_types is not None:
117
+ pulumi.set(__self__, "endpoint_types", endpoint_types)
111
118
  if icmp_idle_timeout_sec is not None:
112
119
  pulumi.set(__self__, "icmp_idle_timeout_sec", icmp_idle_timeout_sec)
113
120
  if log_config is not None:
@@ -221,6 +228,21 @@ class RouterNatArgs:
221
228
  def enable_endpoint_independent_mapping(self, value: Optional[pulumi.Input[bool]]):
222
229
  pulumi.set(self, "enable_endpoint_independent_mapping", value)
223
230
 
231
+ @property
232
+ @pulumi.getter(name="endpointTypes")
233
+ def endpoint_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
234
+ """
235
+ Specifies the endpoint Types supported by the NAT Gateway.
236
+ Supported values include:
237
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
238
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
239
+ """
240
+ return pulumi.get(self, "endpoint_types")
241
+
242
+ @endpoint_types.setter
243
+ def endpoint_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
244
+ pulumi.set(self, "endpoint_types", value)
245
+
224
246
  @property
225
247
  @pulumi.getter(name="icmpIdleTimeoutSec")
226
248
  def icmp_idle_timeout_sec(self) -> Optional[pulumi.Input[int]]:
@@ -439,6 +461,7 @@ class _RouterNatState:
439
461
  drain_nat_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
440
462
  enable_dynamic_port_allocation: Optional[pulumi.Input[bool]] = None,
441
463
  enable_endpoint_independent_mapping: Optional[pulumi.Input[bool]] = None,
464
+ endpoint_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
442
465
  icmp_idle_timeout_sec: Optional[pulumi.Input[int]] = None,
443
466
  log_config: Optional[pulumi.Input['RouterNatLogConfigArgs']] = None,
444
467
  max_ports_per_vm: Optional[pulumi.Input[int]] = None,
@@ -469,6 +492,10 @@ class _RouterNatState:
469
492
  Mutually exclusive with enableEndpointIndependentMapping.
470
493
  :param pulumi.Input[bool] enable_endpoint_independent_mapping: Enable endpoint independent mapping.
471
494
  For more information see the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).
495
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] endpoint_types: Specifies the endpoint Types supported by the NAT Gateway.
496
+ Supported values include:
497
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
498
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
472
499
  :param pulumi.Input[int] icmp_idle_timeout_sec: Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
473
500
  :param pulumi.Input['RouterNatLogConfigArgs'] log_config: Configuration for logging on NAT
474
501
  Structure is documented below.
@@ -526,6 +553,8 @@ class _RouterNatState:
526
553
  pulumi.set(__self__, "enable_dynamic_port_allocation", enable_dynamic_port_allocation)
527
554
  if enable_endpoint_independent_mapping is not None:
528
555
  pulumi.set(__self__, "enable_endpoint_independent_mapping", enable_endpoint_independent_mapping)
556
+ if endpoint_types is not None:
557
+ pulumi.set(__self__, "endpoint_types", endpoint_types)
529
558
  if icmp_idle_timeout_sec is not None:
530
559
  pulumi.set(__self__, "icmp_idle_timeout_sec", icmp_idle_timeout_sec)
531
560
  if log_config is not None:
@@ -606,6 +635,21 @@ class _RouterNatState:
606
635
  def enable_endpoint_independent_mapping(self, value: Optional[pulumi.Input[bool]]):
607
636
  pulumi.set(self, "enable_endpoint_independent_mapping", value)
608
637
 
638
+ @property
639
+ @pulumi.getter(name="endpointTypes")
640
+ def endpoint_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
641
+ """
642
+ Specifies the endpoint Types supported by the NAT Gateway.
643
+ Supported values include:
644
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
645
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
646
+ """
647
+ return pulumi.get(self, "endpoint_types")
648
+
649
+ @endpoint_types.setter
650
+ def endpoint_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
651
+ pulumi.set(self, "endpoint_types", value)
652
+
609
653
  @property
610
654
  @pulumi.getter(name="icmpIdleTimeoutSec")
611
655
  def icmp_idle_timeout_sec(self) -> Optional[pulumi.Input[int]]:
@@ -863,6 +907,7 @@ class RouterNat(pulumi.CustomResource):
863
907
  drain_nat_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
864
908
  enable_dynamic_port_allocation: Optional[pulumi.Input[bool]] = None,
865
909
  enable_endpoint_independent_mapping: Optional[pulumi.Input[bool]] = None,
910
+ endpoint_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
866
911
  icmp_idle_timeout_sec: Optional[pulumi.Input[int]] = None,
867
912
  log_config: Optional[pulumi.Input[pulumi.InputType['RouterNatLogConfigArgs']]] = None,
868
913
  max_ports_per_vm: Optional[pulumi.Input[int]] = None,
@@ -1112,6 +1157,10 @@ class RouterNat(pulumi.CustomResource):
1112
1157
  Mutually exclusive with enableEndpointIndependentMapping.
1113
1158
  :param pulumi.Input[bool] enable_endpoint_independent_mapping: Enable endpoint independent mapping.
1114
1159
  For more information see the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).
1160
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] endpoint_types: Specifies the endpoint Types supported by the NAT Gateway.
1161
+ Supported values include:
1162
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
1163
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
1115
1164
  :param pulumi.Input[int] icmp_idle_timeout_sec: Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
1116
1165
  :param pulumi.Input[pulumi.InputType['RouterNatLogConfigArgs']] log_config: Configuration for logging on NAT
1117
1166
  Structure is documented below.
@@ -1405,6 +1454,7 @@ class RouterNat(pulumi.CustomResource):
1405
1454
  drain_nat_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1406
1455
  enable_dynamic_port_allocation: Optional[pulumi.Input[bool]] = None,
1407
1456
  enable_endpoint_independent_mapping: Optional[pulumi.Input[bool]] = None,
1457
+ endpoint_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1408
1458
  icmp_idle_timeout_sec: Optional[pulumi.Input[int]] = None,
1409
1459
  log_config: Optional[pulumi.Input[pulumi.InputType['RouterNatLogConfigArgs']]] = None,
1410
1460
  max_ports_per_vm: Optional[pulumi.Input[int]] = None,
@@ -1435,6 +1485,7 @@ class RouterNat(pulumi.CustomResource):
1435
1485
  __props__.__dict__["drain_nat_ips"] = drain_nat_ips
1436
1486
  __props__.__dict__["enable_dynamic_port_allocation"] = enable_dynamic_port_allocation
1437
1487
  __props__.__dict__["enable_endpoint_independent_mapping"] = enable_endpoint_independent_mapping
1488
+ __props__.__dict__["endpoint_types"] = endpoint_types
1438
1489
  __props__.__dict__["icmp_idle_timeout_sec"] = icmp_idle_timeout_sec
1439
1490
  __props__.__dict__["log_config"] = log_config
1440
1491
  __props__.__dict__["max_ports_per_vm"] = max_ports_per_vm
@@ -1470,6 +1521,7 @@ class RouterNat(pulumi.CustomResource):
1470
1521
  drain_nat_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1471
1522
  enable_dynamic_port_allocation: Optional[pulumi.Input[bool]] = None,
1472
1523
  enable_endpoint_independent_mapping: Optional[pulumi.Input[bool]] = None,
1524
+ endpoint_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1473
1525
  icmp_idle_timeout_sec: Optional[pulumi.Input[int]] = None,
1474
1526
  log_config: Optional[pulumi.Input[pulumi.InputType['RouterNatLogConfigArgs']]] = None,
1475
1527
  max_ports_per_vm: Optional[pulumi.Input[int]] = None,
@@ -1505,6 +1557,10 @@ class RouterNat(pulumi.CustomResource):
1505
1557
  Mutually exclusive with enableEndpointIndependentMapping.
1506
1558
  :param pulumi.Input[bool] enable_endpoint_independent_mapping: Enable endpoint independent mapping.
1507
1559
  For more information see the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).
1560
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] endpoint_types: Specifies the endpoint Types supported by the NAT Gateway.
1561
+ Supported values include:
1562
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
1563
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
1508
1564
  :param pulumi.Input[int] icmp_idle_timeout_sec: Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
1509
1565
  :param pulumi.Input[pulumi.InputType['RouterNatLogConfigArgs']] log_config: Configuration for logging on NAT
1510
1566
  Structure is documented below.
@@ -1563,6 +1619,7 @@ class RouterNat(pulumi.CustomResource):
1563
1619
  __props__.__dict__["drain_nat_ips"] = drain_nat_ips
1564
1620
  __props__.__dict__["enable_dynamic_port_allocation"] = enable_dynamic_port_allocation
1565
1621
  __props__.__dict__["enable_endpoint_independent_mapping"] = enable_endpoint_independent_mapping
1622
+ __props__.__dict__["endpoint_types"] = endpoint_types
1566
1623
  __props__.__dict__["icmp_idle_timeout_sec"] = icmp_idle_timeout_sec
1567
1624
  __props__.__dict__["log_config"] = log_config
1568
1625
  __props__.__dict__["max_ports_per_vm"] = max_ports_per_vm
@@ -1614,6 +1671,17 @@ class RouterNat(pulumi.CustomResource):
1614
1671
  """
1615
1672
  return pulumi.get(self, "enable_endpoint_independent_mapping")
1616
1673
 
1674
+ @property
1675
+ @pulumi.getter(name="endpointTypes")
1676
+ def endpoint_types(self) -> pulumi.Output[Sequence[str]]:
1677
+ """
1678
+ Specifies the endpoint Types supported by the NAT Gateway.
1679
+ Supported values include:
1680
+ `ENDPOINT_TYPE_VM`, `ENDPOINT_TYPE_SWG`,
1681
+ `ENDPOINT_TYPE_MANAGED_PROXY_LB`.
1682
+ """
1683
+ return pulumi.get(self, "endpoint_types")
1684
+
1617
1685
  @property
1618
1686
  @pulumi.getter(name="icmpIdleTimeoutSec")
1619
1687
  def icmp_idle_timeout_sec(self) -> pulumi.Output[Optional[int]]: