pulumi-gcp 7.30.0a1720039709__py3-none-any.whl → 7.30.0a1720437548__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 (56) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/artifactregistry/get_docker_image.py +2 -2
  3. pulumi_gcp/bigtable/gc_policy.py +68 -14
  4. pulumi_gcp/cloudfunctionsv2/_inputs.py +97 -0
  5. pulumi_gcp/cloudfunctionsv2/function.py +232 -0
  6. pulumi_gcp/cloudfunctionsv2/outputs.py +129 -1
  7. pulumi_gcp/compute/_inputs.py +622 -0
  8. pulumi_gcp/compute/address.py +0 -7
  9. pulumi_gcp/compute/backend_service.py +0 -14
  10. pulumi_gcp/compute/forwarding_rule.py +0 -21
  11. pulumi_gcp/compute/global_forwarding_rule.py +0 -21
  12. pulumi_gcp/compute/managed_ssl_certificate.py +0 -7
  13. pulumi_gcp/compute/manged_ssl_certificate.py +0 -7
  14. pulumi_gcp/compute/network_attachment.py +16 -0
  15. pulumi_gcp/compute/outputs.py +504 -8
  16. pulumi_gcp/compute/region_backend_service.py +0 -14
  17. pulumi_gcp/compute/region_ssl_certificate.py +0 -7
  18. pulumi_gcp/compute/ssl_certificate.py +0 -7
  19. pulumi_gcp/compute/target_https_proxy.py +76 -1
  20. pulumi_gcp/compute/url_map.py +255 -0
  21. pulumi_gcp/container/aws_cluster.py +2 -2
  22. pulumi_gcp/container/aws_node_pool.py +2 -2
  23. pulumi_gcp/container/azure_client.py +2 -2
  24. pulumi_gcp/container/azure_cluster.py +2 -2
  25. pulumi_gcp/container/azure_node_pool.py +2 -2
  26. pulumi_gcp/datafusion/_inputs.py +163 -11
  27. pulumi_gcp/datafusion/instance.py +64 -0
  28. pulumi_gcp/datafusion/outputs.py +127 -7
  29. pulumi_gcp/healthcare/_inputs.py +43 -0
  30. pulumi_gcp/healthcare/dataset.py +110 -0
  31. pulumi_gcp/healthcare/outputs.py +43 -0
  32. pulumi_gcp/identityplatform/config.py +1 -1
  33. pulumi_gcp/logging/billing_account_bucket_config.py +1 -1
  34. pulumi_gcp/logging/folder_bucket_config.py +1 -1
  35. pulumi_gcp/logging/organization_bucket_config.py +1 -1
  36. pulumi_gcp/monitoring/_inputs.py +77 -0
  37. pulumi_gcp/monitoring/outputs.py +63 -0
  38. pulumi_gcp/pulumi-plugin.json +1 -1
  39. pulumi_gcp/securitycenter/instance_iam_binding.py +64 -0
  40. pulumi_gcp/securitycenter/instance_iam_member.py +64 -0
  41. pulumi_gcp/securitycenter/instance_iam_policy.py +64 -0
  42. pulumi_gcp/storage/__init__.py +5 -0
  43. pulumi_gcp/storage/_inputs.py +130 -0
  44. pulumi_gcp/storage/get_managed_folder_iam_policy.py +115 -0
  45. pulumi_gcp/storage/managed_folder.py +440 -0
  46. pulumi_gcp/storage/managed_folder_iam_binding.py +947 -0
  47. pulumi_gcp/storage/managed_folder_iam_member.py +947 -0
  48. pulumi_gcp/storage/managed_folder_iam_policy.py +766 -0
  49. pulumi_gcp/storage/outputs.py +76 -0
  50. pulumi_gcp/vertex/_inputs.py +3 -3
  51. pulumi_gcp/vertex/ai_feature_online_store.py +9 -9
  52. pulumi_gcp/vertex/outputs.py +2 -2
  53. {pulumi_gcp-7.30.0a1720039709.dist-info → pulumi_gcp-7.30.0a1720437548.dist-info}/METADATA +1 -1
  54. {pulumi_gcp-7.30.0a1720039709.dist-info → pulumi_gcp-7.30.0a1720437548.dist-info}/RECORD +56 -51
  55. {pulumi_gcp-7.30.0a1720039709.dist-info → pulumi_gcp-7.30.0a1720437548.dist-info}/WHEEL +0 -0
  56. {pulumi_gcp-7.30.0a1720039709.dist-info → pulumi_gcp-7.30.0a1720437548.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,8 @@ __all__ = [
23
23
  'InstanceEventPublishConfigArgsDict',
24
24
  'InstanceNetworkConfigArgs',
25
25
  'InstanceNetworkConfigArgsDict',
26
+ 'InstanceNetworkConfigPrivateServiceConnectConfigArgs',
27
+ 'InstanceNetworkConfigPrivateServiceConnectConfigArgsDict',
26
28
  ]
27
29
 
28
30
  MYPY = False
@@ -166,38 +168,81 @@ class InstanceEventPublishConfigArgs:
166
168
 
167
169
  if not MYPY:
168
170
  class InstanceNetworkConfigArgsDict(TypedDict):
169
- ip_allocation: pulumi.Input[str]
171
+ connection_type: NotRequired[pulumi.Input[str]]
172
+ """
173
+ Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and
174
+ the corresponding tenant project from a predefined list of available connection modes.
175
+ If this field is unspecified for a private instance, VPC peering is used.
176
+ Possible values are: `VPC_PEERING`, `PRIVATE_SERVICE_CONNECT_INTERFACES`.
177
+ """
178
+ ip_allocation: NotRequired[pulumi.Input[str]]
170
179
  """
171
180
  The IP range in CIDR notation to use for the managed Data Fusion instance
172
181
  nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
173
182
  """
174
- network: pulumi.Input[str]
183
+ network: NotRequired[pulumi.Input[str]]
175
184
  """
176
185
  Name of the network in the project with which the tenant project
177
186
  will be peered for executing pipelines. In case of shared VPC where the network resides in another host
178
187
  project the network should specified in the form of projects/{host-project-id}/global/networks/{network}
179
188
  """
189
+ private_service_connect_config: NotRequired[pulumi.Input['InstanceNetworkConfigPrivateServiceConnectConfigArgsDict']]
190
+ """
191
+ Optional. Configuration for Private Service Connect.
192
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
193
+ Structure is documented below.
194
+ """
180
195
  elif False:
181
196
  InstanceNetworkConfigArgsDict: TypeAlias = Mapping[str, Any]
182
197
 
183
198
  @pulumi.input_type
184
199
  class InstanceNetworkConfigArgs:
185
200
  def __init__(__self__, *,
186
- ip_allocation: pulumi.Input[str],
187
- network: pulumi.Input[str]):
188
- """
201
+ connection_type: Optional[pulumi.Input[str]] = None,
202
+ ip_allocation: Optional[pulumi.Input[str]] = None,
203
+ network: Optional[pulumi.Input[str]] = None,
204
+ private_service_connect_config: Optional[pulumi.Input['InstanceNetworkConfigPrivateServiceConnectConfigArgs']] = None):
205
+ """
206
+ :param pulumi.Input[str] connection_type: Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and
207
+ the corresponding tenant project from a predefined list of available connection modes.
208
+ If this field is unspecified for a private instance, VPC peering is used.
209
+ Possible values are: `VPC_PEERING`, `PRIVATE_SERVICE_CONNECT_INTERFACES`.
189
210
  :param pulumi.Input[str] ip_allocation: The IP range in CIDR notation to use for the managed Data Fusion instance
190
211
  nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
191
212
  :param pulumi.Input[str] network: Name of the network in the project with which the tenant project
192
213
  will be peered for executing pipelines. In case of shared VPC where the network resides in another host
193
214
  project the network should specified in the form of projects/{host-project-id}/global/networks/{network}
215
+ :param pulumi.Input['InstanceNetworkConfigPrivateServiceConnectConfigArgs'] private_service_connect_config: Optional. Configuration for Private Service Connect.
216
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
217
+ Structure is documented below.
218
+ """
219
+ if connection_type is not None:
220
+ pulumi.set(__self__, "connection_type", connection_type)
221
+ if ip_allocation is not None:
222
+ pulumi.set(__self__, "ip_allocation", ip_allocation)
223
+ if network is not None:
224
+ pulumi.set(__self__, "network", network)
225
+ if private_service_connect_config is not None:
226
+ pulumi.set(__self__, "private_service_connect_config", private_service_connect_config)
227
+
228
+ @property
229
+ @pulumi.getter(name="connectionType")
230
+ def connection_type(self) -> Optional[pulumi.Input[str]]:
231
+ """
232
+ Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and
233
+ the corresponding tenant project from a predefined list of available connection modes.
234
+ If this field is unspecified for a private instance, VPC peering is used.
235
+ Possible values are: `VPC_PEERING`, `PRIVATE_SERVICE_CONNECT_INTERFACES`.
194
236
  """
195
- pulumi.set(__self__, "ip_allocation", ip_allocation)
196
- pulumi.set(__self__, "network", network)
237
+ return pulumi.get(self, "connection_type")
238
+
239
+ @connection_type.setter
240
+ def connection_type(self, value: Optional[pulumi.Input[str]]):
241
+ pulumi.set(self, "connection_type", value)
197
242
 
198
243
  @property
199
244
  @pulumi.getter(name="ipAllocation")
200
- def ip_allocation(self) -> pulumi.Input[str]:
245
+ def ip_allocation(self) -> Optional[pulumi.Input[str]]:
201
246
  """
202
247
  The IP range in CIDR notation to use for the managed Data Fusion instance
203
248
  nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
@@ -205,12 +250,12 @@ class InstanceNetworkConfigArgs:
205
250
  return pulumi.get(self, "ip_allocation")
206
251
 
207
252
  @ip_allocation.setter
208
- def ip_allocation(self, value: pulumi.Input[str]):
253
+ def ip_allocation(self, value: Optional[pulumi.Input[str]]):
209
254
  pulumi.set(self, "ip_allocation", value)
210
255
 
211
256
  @property
212
257
  @pulumi.getter
213
- def network(self) -> pulumi.Input[str]:
258
+ def network(self) -> Optional[pulumi.Input[str]]:
214
259
  """
215
260
  Name of the network in the project with which the tenant project
216
261
  will be peered for executing pipelines. In case of shared VPC where the network resides in another host
@@ -219,7 +264,114 @@ class InstanceNetworkConfigArgs:
219
264
  return pulumi.get(self, "network")
220
265
 
221
266
  @network.setter
222
- def network(self, value: pulumi.Input[str]):
267
+ def network(self, value: Optional[pulumi.Input[str]]):
223
268
  pulumi.set(self, "network", value)
224
269
 
270
+ @property
271
+ @pulumi.getter(name="privateServiceConnectConfig")
272
+ def private_service_connect_config(self) -> Optional[pulumi.Input['InstanceNetworkConfigPrivateServiceConnectConfigArgs']]:
273
+ """
274
+ Optional. Configuration for Private Service Connect.
275
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
276
+ Structure is documented below.
277
+ """
278
+ return pulumi.get(self, "private_service_connect_config")
279
+
280
+ @private_service_connect_config.setter
281
+ def private_service_connect_config(self, value: Optional[pulumi.Input['InstanceNetworkConfigPrivateServiceConnectConfigArgs']]):
282
+ pulumi.set(self, "private_service_connect_config", value)
283
+
284
+
285
+ if not MYPY:
286
+ class InstanceNetworkConfigPrivateServiceConnectConfigArgsDict(TypedDict):
287
+ effective_unreachable_cidr_block: NotRequired[pulumi.Input[str]]
288
+ """
289
+ (Output)
290
+ Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
291
+ The size of this block is /25. The format of this field is governed by RFC 4632.
292
+ """
293
+ network_attachment: NotRequired[pulumi.Input[str]]
294
+ """
295
+ Optional. The reference to the network attachment used to establish private connectivity.
296
+ It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.
297
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
298
+ """
299
+ unreachable_cidr_block: NotRequired[pulumi.Input[str]]
300
+ """
301
+ Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
302
+ The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment.
303
+ This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses.
304
+ If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632.
305
+ """
306
+ elif False:
307
+ InstanceNetworkConfigPrivateServiceConnectConfigArgsDict: TypeAlias = Mapping[str, Any]
308
+
309
+ @pulumi.input_type
310
+ class InstanceNetworkConfigPrivateServiceConnectConfigArgs:
311
+ def __init__(__self__, *,
312
+ effective_unreachable_cidr_block: Optional[pulumi.Input[str]] = None,
313
+ network_attachment: Optional[pulumi.Input[str]] = None,
314
+ unreachable_cidr_block: Optional[pulumi.Input[str]] = None):
315
+ """
316
+ :param pulumi.Input[str] effective_unreachable_cidr_block: (Output)
317
+ Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
318
+ The size of this block is /25. The format of this field is governed by RFC 4632.
319
+ :param pulumi.Input[str] network_attachment: Optional. The reference to the network attachment used to establish private connectivity.
320
+ It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.
321
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
322
+ :param pulumi.Input[str] unreachable_cidr_block: Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
323
+ The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment.
324
+ This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses.
325
+ If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632.
326
+ """
327
+ if effective_unreachable_cidr_block is not None:
328
+ pulumi.set(__self__, "effective_unreachable_cidr_block", effective_unreachable_cidr_block)
329
+ if network_attachment is not None:
330
+ pulumi.set(__self__, "network_attachment", network_attachment)
331
+ if unreachable_cidr_block is not None:
332
+ pulumi.set(__self__, "unreachable_cidr_block", unreachable_cidr_block)
333
+
334
+ @property
335
+ @pulumi.getter(name="effectiveUnreachableCidrBlock")
336
+ def effective_unreachable_cidr_block(self) -> Optional[pulumi.Input[str]]:
337
+ """
338
+ (Output)
339
+ Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
340
+ The size of this block is /25. The format of this field is governed by RFC 4632.
341
+ """
342
+ return pulumi.get(self, "effective_unreachable_cidr_block")
343
+
344
+ @effective_unreachable_cidr_block.setter
345
+ def effective_unreachable_cidr_block(self, value: Optional[pulumi.Input[str]]):
346
+ pulumi.set(self, "effective_unreachable_cidr_block", value)
347
+
348
+ @property
349
+ @pulumi.getter(name="networkAttachment")
350
+ def network_attachment(self) -> Optional[pulumi.Input[str]]:
351
+ """
352
+ Optional. The reference to the network attachment used to establish private connectivity.
353
+ It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.
354
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
355
+ """
356
+ return pulumi.get(self, "network_attachment")
357
+
358
+ @network_attachment.setter
359
+ def network_attachment(self, value: Optional[pulumi.Input[str]]):
360
+ pulumi.set(self, "network_attachment", value)
361
+
362
+ @property
363
+ @pulumi.getter(name="unreachableCidrBlock")
364
+ def unreachable_cidr_block(self) -> Optional[pulumi.Input[str]]:
365
+ """
366
+ Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
367
+ The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment.
368
+ This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses.
369
+ If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632.
370
+ """
371
+ return pulumi.get(self, "unreachable_cidr_block")
372
+
373
+ @unreachable_cidr_block.setter
374
+ def unreachable_cidr_block(self, value: Optional[pulumi.Input[str]]):
375
+ pulumi.set(self, "unreachable_cidr_block", value)
376
+
225
377
 
@@ -1038,6 +1038,38 @@ class Instance(pulumi.CustomResource):
1038
1038
  "state": "ENABLED",
1039
1039
  }])
1040
1040
  ```
1041
+ ### Data Fusion Instance Psc
1042
+
1043
+ ```python
1044
+ import pulumi
1045
+ import pulumi_gcp as gcp
1046
+
1047
+ psc = gcp.compute.Network("psc",
1048
+ name="datafusion-psc-network",
1049
+ auto_create_subnetworks=False)
1050
+ psc_subnetwork = gcp.compute.Subnetwork("psc",
1051
+ name="datafusion-psc-subnet",
1052
+ region="us-central1",
1053
+ network=psc.id,
1054
+ ip_cidr_range="10.0.0.0/16")
1055
+ psc_network_attachment = gcp.compute.NetworkAttachment("psc",
1056
+ name="datafusion-psc-attachment",
1057
+ region="us-central1",
1058
+ connection_preference="ACCEPT_AUTOMATIC",
1059
+ subnetworks=[psc_subnetwork.self_link])
1060
+ psc_instance = gcp.datafusion.Instance("psc_instance",
1061
+ name="psc-instance",
1062
+ region="us-central1",
1063
+ type="BASIC",
1064
+ private_instance=True,
1065
+ network_config={
1066
+ "connectionType": "PRIVATE_SERVICE_CONNECT_INTERFACES",
1067
+ "privateServiceConnectConfig": {
1068
+ "networkAttachment": psc_network_attachment.id,
1069
+ "unreachableCidrBlock": "192.168.0.0/25",
1070
+ },
1071
+ })
1072
+ ```
1041
1073
  ### Data Fusion Instance Cmek
1042
1074
 
1043
1075
  ```python
@@ -1247,6 +1279,38 @@ class Instance(pulumi.CustomResource):
1247
1279
  "state": "ENABLED",
1248
1280
  }])
1249
1281
  ```
1282
+ ### Data Fusion Instance Psc
1283
+
1284
+ ```python
1285
+ import pulumi
1286
+ import pulumi_gcp as gcp
1287
+
1288
+ psc = gcp.compute.Network("psc",
1289
+ name="datafusion-psc-network",
1290
+ auto_create_subnetworks=False)
1291
+ psc_subnetwork = gcp.compute.Subnetwork("psc",
1292
+ name="datafusion-psc-subnet",
1293
+ region="us-central1",
1294
+ network=psc.id,
1295
+ ip_cidr_range="10.0.0.0/16")
1296
+ psc_network_attachment = gcp.compute.NetworkAttachment("psc",
1297
+ name="datafusion-psc-attachment",
1298
+ region="us-central1",
1299
+ connection_preference="ACCEPT_AUTOMATIC",
1300
+ subnetworks=[psc_subnetwork.self_link])
1301
+ psc_instance = gcp.datafusion.Instance("psc_instance",
1302
+ name="psc-instance",
1303
+ region="us-central1",
1304
+ type="BASIC",
1305
+ private_instance=True,
1306
+ network_config={
1307
+ "connectionType": "PRIVATE_SERVICE_CONNECT_INTERFACES",
1308
+ "privateServiceConnectConfig": {
1309
+ "networkAttachment": psc_network_attachment.id,
1310
+ "unreachableCidrBlock": "192.168.0.0/25",
1311
+ },
1312
+ })
1313
+ ```
1250
1314
  ### Data Fusion Instance Cmek
1251
1315
 
1252
1316
  ```python
@@ -13,12 +13,14 @@ if sys.version_info >= (3, 11):
13
13
  else:
14
14
  from typing_extensions import NotRequired, TypedDict, TypeAlias
15
15
  from .. import _utilities
16
+ from . import outputs
16
17
 
17
18
  __all__ = [
18
19
  'InstanceAccelerator',
19
20
  'InstanceCryptoKeyConfig',
20
21
  'InstanceEventPublishConfig',
21
22
  'InstanceNetworkConfig',
23
+ 'InstanceNetworkConfigPrivateServiceConnectConfig',
22
24
  ]
23
25
 
24
26
  @pulumi.output_type
@@ -140,8 +142,12 @@ class InstanceNetworkConfig(dict):
140
142
  @staticmethod
141
143
  def __key_warning(key: str):
142
144
  suggest = None
143
- if key == "ipAllocation":
145
+ if key == "connectionType":
146
+ suggest = "connection_type"
147
+ elif key == "ipAllocation":
144
148
  suggest = "ip_allocation"
149
+ elif key == "privateServiceConnectConfig":
150
+ suggest = "private_service_connect_config"
145
151
 
146
152
  if suggest:
147
153
  pulumi.log.warn(f"Key '{key}' not found in InstanceNetworkConfig. Access the value via the '{suggest}' property getter instead.")
@@ -155,21 +161,47 @@ class InstanceNetworkConfig(dict):
155
161
  return super().get(key, default)
156
162
 
157
163
  def __init__(__self__, *,
158
- ip_allocation: str,
159
- network: str):
164
+ connection_type: Optional[str] = None,
165
+ ip_allocation: Optional[str] = None,
166
+ network: Optional[str] = None,
167
+ private_service_connect_config: Optional['outputs.InstanceNetworkConfigPrivateServiceConnectConfig'] = None):
160
168
  """
169
+ :param str connection_type: Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and
170
+ the corresponding tenant project from a predefined list of available connection modes.
171
+ If this field is unspecified for a private instance, VPC peering is used.
172
+ Possible values are: `VPC_PEERING`, `PRIVATE_SERVICE_CONNECT_INTERFACES`.
161
173
  :param str ip_allocation: The IP range in CIDR notation to use for the managed Data Fusion instance
162
174
  nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
163
175
  :param str network: Name of the network in the project with which the tenant project
164
176
  will be peered for executing pipelines. In case of shared VPC where the network resides in another host
165
177
  project the network should specified in the form of projects/{host-project-id}/global/networks/{network}
178
+ :param 'InstanceNetworkConfigPrivateServiceConnectConfigArgs' private_service_connect_config: Optional. Configuration for Private Service Connect.
179
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
180
+ Structure is documented below.
166
181
  """
167
- pulumi.set(__self__, "ip_allocation", ip_allocation)
168
- pulumi.set(__self__, "network", network)
182
+ if connection_type is not None:
183
+ pulumi.set(__self__, "connection_type", connection_type)
184
+ if ip_allocation is not None:
185
+ pulumi.set(__self__, "ip_allocation", ip_allocation)
186
+ if network is not None:
187
+ pulumi.set(__self__, "network", network)
188
+ if private_service_connect_config is not None:
189
+ pulumi.set(__self__, "private_service_connect_config", private_service_connect_config)
190
+
191
+ @property
192
+ @pulumi.getter(name="connectionType")
193
+ def connection_type(self) -> Optional[str]:
194
+ """
195
+ Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and
196
+ the corresponding tenant project from a predefined list of available connection modes.
197
+ If this field is unspecified for a private instance, VPC peering is used.
198
+ Possible values are: `VPC_PEERING`, `PRIVATE_SERVICE_CONNECT_INTERFACES`.
199
+ """
200
+ return pulumi.get(self, "connection_type")
169
201
 
170
202
  @property
171
203
  @pulumi.getter(name="ipAllocation")
172
- def ip_allocation(self) -> str:
204
+ def ip_allocation(self) -> Optional[str]:
173
205
  """
174
206
  The IP range in CIDR notation to use for the managed Data Fusion instance
175
207
  nodes. This range must not overlap with any other ranges used in the Data Fusion instance network.
@@ -178,7 +210,7 @@ class InstanceNetworkConfig(dict):
178
210
 
179
211
  @property
180
212
  @pulumi.getter
181
- def network(self) -> str:
213
+ def network(self) -> Optional[str]:
182
214
  """
183
215
  Name of the network in the project with which the tenant project
184
216
  will be peered for executing pipelines. In case of shared VPC where the network resides in another host
@@ -186,4 +218,92 @@ class InstanceNetworkConfig(dict):
186
218
  """
187
219
  return pulumi.get(self, "network")
188
220
 
221
+ @property
222
+ @pulumi.getter(name="privateServiceConnectConfig")
223
+ def private_service_connect_config(self) -> Optional['outputs.InstanceNetworkConfigPrivateServiceConnectConfig']:
224
+ """
225
+ Optional. Configuration for Private Service Connect.
226
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
227
+ Structure is documented below.
228
+ """
229
+ return pulumi.get(self, "private_service_connect_config")
230
+
231
+
232
+ @pulumi.output_type
233
+ class InstanceNetworkConfigPrivateServiceConnectConfig(dict):
234
+ @staticmethod
235
+ def __key_warning(key: str):
236
+ suggest = None
237
+ if key == "effectiveUnreachableCidrBlock":
238
+ suggest = "effective_unreachable_cidr_block"
239
+ elif key == "networkAttachment":
240
+ suggest = "network_attachment"
241
+ elif key == "unreachableCidrBlock":
242
+ suggest = "unreachable_cidr_block"
243
+
244
+ if suggest:
245
+ pulumi.log.warn(f"Key '{key}' not found in InstanceNetworkConfigPrivateServiceConnectConfig. Access the value via the '{suggest}' property getter instead.")
246
+
247
+ def __getitem__(self, key: str) -> Any:
248
+ InstanceNetworkConfigPrivateServiceConnectConfig.__key_warning(key)
249
+ return super().__getitem__(key)
250
+
251
+ def get(self, key: str, default = None) -> Any:
252
+ InstanceNetworkConfigPrivateServiceConnectConfig.__key_warning(key)
253
+ return super().get(key, default)
254
+
255
+ def __init__(__self__, *,
256
+ effective_unreachable_cidr_block: Optional[str] = None,
257
+ network_attachment: Optional[str] = None,
258
+ unreachable_cidr_block: Optional[str] = None):
259
+ """
260
+ :param str effective_unreachable_cidr_block: (Output)
261
+ Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
262
+ The size of this block is /25. The format of this field is governed by RFC 4632.
263
+ :param str network_attachment: Optional. The reference to the network attachment used to establish private connectivity.
264
+ It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.
265
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
266
+ :param str unreachable_cidr_block: Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
267
+ The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment.
268
+ This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses.
269
+ If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632.
270
+ """
271
+ if effective_unreachable_cidr_block is not None:
272
+ pulumi.set(__self__, "effective_unreachable_cidr_block", effective_unreachable_cidr_block)
273
+ if network_attachment is not None:
274
+ pulumi.set(__self__, "network_attachment", network_attachment)
275
+ if unreachable_cidr_block is not None:
276
+ pulumi.set(__self__, "unreachable_cidr_block", unreachable_cidr_block)
277
+
278
+ @property
279
+ @pulumi.getter(name="effectiveUnreachableCidrBlock")
280
+ def effective_unreachable_cidr_block(self) -> Optional[str]:
281
+ """
282
+ (Output)
283
+ Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
284
+ The size of this block is /25. The format of this field is governed by RFC 4632.
285
+ """
286
+ return pulumi.get(self, "effective_unreachable_cidr_block")
287
+
288
+ @property
289
+ @pulumi.getter(name="networkAttachment")
290
+ def network_attachment(self) -> Optional[str]:
291
+ """
292
+ Optional. The reference to the network attachment used to establish private connectivity.
293
+ It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.
294
+ This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.
295
+ """
296
+ return pulumi.get(self, "network_attachment")
297
+
298
+ @property
299
+ @pulumi.getter(name="unreachableCidrBlock")
300
+ def unreachable_cidr_block(self) -> Optional[str]:
301
+ """
302
+ Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.
303
+ The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment.
304
+ This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses.
305
+ If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632.
306
+ """
307
+ return pulumi.get(self, "unreachable_cidr_block")
308
+
189
309
 
@@ -19,6 +19,8 @@ __all__ = [
19
19
  'ConsentStoreIamBindingConditionArgsDict',
20
20
  'ConsentStoreIamMemberConditionArgs',
21
21
  'ConsentStoreIamMemberConditionArgsDict',
22
+ 'DatasetEncryptionSpecArgs',
23
+ 'DatasetEncryptionSpecArgsDict',
22
24
  'DatasetIamBindingConditionArgs',
23
25
  'DatasetIamBindingConditionArgsDict',
24
26
  'DatasetIamMemberConditionArgs',
@@ -155,6 +157,47 @@ class ConsentStoreIamMemberConditionArgs:
155
157
  pulumi.set(self, "description", value)
156
158
 
157
159
 
160
+ if not MYPY:
161
+ class DatasetEncryptionSpecArgsDict(TypedDict):
162
+ kms_key_name: NotRequired[pulumi.Input[str]]
163
+ """
164
+ KMS encryption key that is used to secure this dataset and its sub-resources. The key used for
165
+ encryption and the dataset must be in the same location. If empty, the default Google encryption
166
+ key will be used to secure this dataset. The format is
167
+ projects/{projectId}/locations/{locationId}/keyRings/{keyRingId}/cryptoKeys/{keyId}.
168
+ """
169
+ elif False:
170
+ DatasetEncryptionSpecArgsDict: TypeAlias = Mapping[str, Any]
171
+
172
+ @pulumi.input_type
173
+ class DatasetEncryptionSpecArgs:
174
+ def __init__(__self__, *,
175
+ kms_key_name: Optional[pulumi.Input[str]] = None):
176
+ """
177
+ :param pulumi.Input[str] kms_key_name: KMS encryption key that is used to secure this dataset and its sub-resources. The key used for
178
+ encryption and the dataset must be in the same location. If empty, the default Google encryption
179
+ key will be used to secure this dataset. The format is
180
+ projects/{projectId}/locations/{locationId}/keyRings/{keyRingId}/cryptoKeys/{keyId}.
181
+ """
182
+ if kms_key_name is not None:
183
+ pulumi.set(__self__, "kms_key_name", kms_key_name)
184
+
185
+ @property
186
+ @pulumi.getter(name="kmsKeyName")
187
+ def kms_key_name(self) -> Optional[pulumi.Input[str]]:
188
+ """
189
+ KMS encryption key that is used to secure this dataset and its sub-resources. The key used for
190
+ encryption and the dataset must be in the same location. If empty, the default Google encryption
191
+ key will be used to secure this dataset. The format is
192
+ projects/{projectId}/locations/{locationId}/keyRings/{keyRingId}/cryptoKeys/{keyId}.
193
+ """
194
+ return pulumi.get(self, "kms_key_name")
195
+
196
+ @kms_key_name.setter
197
+ def kms_key_name(self, value: Optional[pulumi.Input[str]]):
198
+ pulumi.set(self, "kms_key_name", value)
199
+
200
+
158
201
  if not MYPY:
159
202
  class DatasetIamBindingConditionArgsDict(TypedDict):
160
203
  expression: pulumi.Input[str]