pulumi-gcp 8.10.0a1731739693__py3-none-any.whl → 8.10.0a1732125494__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 (52) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +90 -54
  4. pulumi_gcp/accesscontextmanager/get_access_policy.py +158 -0
  5. pulumi_gcp/accesscontextmanager/outputs.py +60 -36
  6. pulumi_gcp/artifactregistry/_inputs.py +56 -0
  7. pulumi_gcp/artifactregistry/outputs.py +65 -0
  8. pulumi_gcp/artifactregistry/repository.py +48 -0
  9. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  10. pulumi_gcp/backupdisasterrecovery/backup_vault.py +63 -0
  11. pulumi_gcp/backupdisasterrecovery/get_data_source.py +263 -0
  12. pulumi_gcp/backupdisasterrecovery/outputs.py +402 -0
  13. pulumi_gcp/certificateauthority/authority.py +28 -138
  14. pulumi_gcp/cloudrun/service.py +0 -10
  15. pulumi_gcp/cloudrunv2/get_service.py +15 -4
  16. pulumi_gcp/cloudrunv2/service.py +30 -2
  17. pulumi_gcp/compute/_inputs.py +12 -12
  18. pulumi_gcp/compute/outputs.py +10 -10
  19. pulumi_gcp/dataproc/__init__.py +1 -0
  20. pulumi_gcp/dataproc/_inputs.py +490 -0
  21. pulumi_gcp/dataproc/gdc_spark_application.py +1658 -0
  22. pulumi_gcp/dataproc/outputs.py +385 -0
  23. pulumi_gcp/filestore/_inputs.py +152 -0
  24. pulumi_gcp/filestore/get_instance.py +12 -1
  25. pulumi_gcp/filestore/instance.py +47 -0
  26. pulumi_gcp/filestore/outputs.py +229 -0
  27. pulumi_gcp/iam/__init__.py +2 -0
  28. pulumi_gcp/iam/_inputs.py +274 -0
  29. pulumi_gcp/iam/folders_policy_binding.py +917 -0
  30. pulumi_gcp/iam/organizations_policy_binding.py +901 -0
  31. pulumi_gcp/iam/outputs.py +198 -0
  32. pulumi_gcp/managedkafka/cluster.py +4 -0
  33. pulumi_gcp/managedkafka/topic.py +4 -0
  34. pulumi_gcp/pubsub/subscription.py +8 -8
  35. pulumi_gcp/pulumi-plugin.json +1 -1
  36. pulumi_gcp/redis/_inputs.py +213 -0
  37. pulumi_gcp/redis/cluster.py +289 -0
  38. pulumi_gcp/redis/outputs.py +185 -0
  39. pulumi_gcp/securesourcemanager/_inputs.py +33 -0
  40. pulumi_gcp/securesourcemanager/instance.py +90 -3
  41. pulumi_gcp/securesourcemanager/outputs.py +19 -0
  42. pulumi_gcp/spanner/database.py +14 -14
  43. pulumi_gcp/sql/_inputs.py +73 -0
  44. pulumi_gcp/sql/database_instance.py +60 -0
  45. pulumi_gcp/sql/outputs.py +146 -0
  46. pulumi_gcp/sql/user.py +2 -2
  47. pulumi_gcp/tags/location_tag_binding.py +8 -8
  48. pulumi_gcp/vertex/ai_endpoint.py +22 -29
  49. {pulumi_gcp-8.10.0a1731739693.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/METADATA +1 -1
  50. {pulumi_gcp-8.10.0a1731739693.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/RECORD +52 -47
  51. {pulumi_gcp-8.10.0a1731739693.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/WHEEL +0 -0
  52. {pulumi_gcp-8.10.0a1731739693.dist-info → pulumi_gcp-8.10.0a1732125494.dist-info}/top_level.txt +0 -0
@@ -26,7 +26,8 @@ class InstanceArgs:
26
26
  kms_key: Optional[pulumi.Input[str]] = None,
27
27
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
28
28
  private_config: Optional[pulumi.Input['InstancePrivateConfigArgs']] = None,
29
- project: Optional[pulumi.Input[str]] = None):
29
+ project: Optional[pulumi.Input[str]] = None,
30
+ workforce_identity_federation_config: Optional[pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs']] = None):
30
31
  """
31
32
  The set of arguments for constructing a Instance resource.
32
33
  :param pulumi.Input[str] instance_id: The name for the Instance.
@@ -43,6 +44,9 @@ class InstanceArgs:
43
44
  Structure is documented below.
44
45
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
45
46
  If it is not provided, the provider project is used.
47
+ :param pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs'] workforce_identity_federation_config: Configuration for Workforce Identity Federation to support third party identity provider.
48
+ If unset, defaults to the Google OIDC IdP.
49
+ Structure is documented below.
46
50
  """
47
51
  pulumi.set(__self__, "instance_id", instance_id)
48
52
  pulumi.set(__self__, "location", location)
@@ -54,6 +58,8 @@ class InstanceArgs:
54
58
  pulumi.set(__self__, "private_config", private_config)
55
59
  if project is not None:
56
60
  pulumi.set(__self__, "project", project)
61
+ if workforce_identity_federation_config is not None:
62
+ pulumi.set(__self__, "workforce_identity_federation_config", workforce_identity_federation_config)
57
63
 
58
64
  @property
59
65
  @pulumi.getter(name="instanceId")
@@ -135,6 +141,20 @@ class InstanceArgs:
135
141
  def project(self, value: Optional[pulumi.Input[str]]):
136
142
  pulumi.set(self, "project", value)
137
143
 
144
+ @property
145
+ @pulumi.getter(name="workforceIdentityFederationConfig")
146
+ def workforce_identity_federation_config(self) -> Optional[pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs']]:
147
+ """
148
+ Configuration for Workforce Identity Federation to support third party identity provider.
149
+ If unset, defaults to the Google OIDC IdP.
150
+ Structure is documented below.
151
+ """
152
+ return pulumi.get(self, "workforce_identity_federation_config")
153
+
154
+ @workforce_identity_federation_config.setter
155
+ def workforce_identity_federation_config(self, value: Optional[pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs']]):
156
+ pulumi.set(self, "workforce_identity_federation_config", value)
157
+
138
158
 
139
159
  @pulumi.input_type
140
160
  class _InstanceState:
@@ -152,7 +172,8 @@ class _InstanceState:
152
172
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
153
173
  state: Optional[pulumi.Input[str]] = None,
154
174
  state_note: Optional[pulumi.Input[str]] = None,
155
- update_time: Optional[pulumi.Input[str]] = None):
175
+ update_time: Optional[pulumi.Input[str]] = None,
176
+ workforce_identity_federation_config: Optional[pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs']] = None):
156
177
  """
157
178
  Input properties used for looking up and filtering Instance resources.
158
179
  :param pulumi.Input[str] create_time: Time the Instance was created in UTC.
@@ -179,6 +200,9 @@ class _InstanceState:
179
200
  :param pulumi.Input[str] state: The current state of the Instance.
180
201
  :param pulumi.Input[str] state_note: Provides information about the current instance state.
181
202
  :param pulumi.Input[str] update_time: Time the Instance was updated in UTC.
203
+ :param pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs'] workforce_identity_federation_config: Configuration for Workforce Identity Federation to support third party identity provider.
204
+ If unset, defaults to the Google OIDC IdP.
205
+ Structure is documented below.
182
206
  """
183
207
  if create_time is not None:
184
208
  pulumi.set(__self__, "create_time", create_time)
@@ -208,6 +232,8 @@ class _InstanceState:
208
232
  pulumi.set(__self__, "state_note", state_note)
209
233
  if update_time is not None:
210
234
  pulumi.set(__self__, "update_time", update_time)
235
+ if workforce_identity_federation_config is not None:
236
+ pulumi.set(__self__, "workforce_identity_federation_config", workforce_identity_federation_config)
211
237
 
212
238
  @property
213
239
  @pulumi.getter(name="createTime")
@@ -387,6 +413,20 @@ class _InstanceState:
387
413
  def update_time(self, value: Optional[pulumi.Input[str]]):
388
414
  pulumi.set(self, "update_time", value)
389
415
 
416
+ @property
417
+ @pulumi.getter(name="workforceIdentityFederationConfig")
418
+ def workforce_identity_federation_config(self) -> Optional[pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs']]:
419
+ """
420
+ Configuration for Workforce Identity Federation to support third party identity provider.
421
+ If unset, defaults to the Google OIDC IdP.
422
+ Structure is documented below.
423
+ """
424
+ return pulumi.get(self, "workforce_identity_federation_config")
425
+
426
+ @workforce_identity_federation_config.setter
427
+ def workforce_identity_federation_config(self, value: Optional[pulumi.Input['InstanceWorkforceIdentityFederationConfigArgs']]):
428
+ pulumi.set(self, "workforce_identity_federation_config", value)
429
+
390
430
 
391
431
  class Instance(pulumi.CustomResource):
392
432
  @overload
@@ -399,6 +439,7 @@ class Instance(pulumi.CustomResource):
399
439
  location: Optional[pulumi.Input[str]] = None,
400
440
  private_config: Optional[pulumi.Input[Union['InstancePrivateConfigArgs', 'InstancePrivateConfigArgsDict']]] = None,
401
441
  project: Optional[pulumi.Input[str]] = None,
442
+ workforce_identity_federation_config: Optional[pulumi.Input[Union['InstanceWorkforceIdentityFederationConfigArgs', 'InstanceWorkforceIdentityFederationConfigArgsDict']]] = None,
402
443
  __props__=None):
403
444
  """
404
445
  Instances are deployed to an available Google Cloud region and are accessible via their web interface.
@@ -776,6 +817,19 @@ class Instance(pulumi.CustomResource):
776
817
  managed_zone=private_zone.name,
777
818
  rrdatas=[fw_rule_service_attachment.ip_address])
778
819
  ```
820
+ ### Secure Source Manager Instance Workforce Identity Federation
821
+
822
+ ```python
823
+ import pulumi
824
+ import pulumi_gcp as gcp
825
+
826
+ default = gcp.securesourcemanager.Instance("default",
827
+ location="us-central1",
828
+ instance_id="my-instance",
829
+ workforce_identity_federation_config={
830
+ "enabled": True,
831
+ })
832
+ ```
779
833
 
780
834
  ## Import
781
835
 
@@ -823,6 +877,9 @@ class Instance(pulumi.CustomResource):
823
877
  Structure is documented below.
824
878
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
825
879
  If it is not provided, the provider project is used.
880
+ :param pulumi.Input[Union['InstanceWorkforceIdentityFederationConfigArgs', 'InstanceWorkforceIdentityFederationConfigArgsDict']] workforce_identity_federation_config: Configuration for Workforce Identity Federation to support third party identity provider.
881
+ If unset, defaults to the Google OIDC IdP.
882
+ Structure is documented below.
826
883
  """
827
884
  ...
828
885
  @overload
@@ -1206,6 +1263,19 @@ class Instance(pulumi.CustomResource):
1206
1263
  managed_zone=private_zone.name,
1207
1264
  rrdatas=[fw_rule_service_attachment.ip_address])
1208
1265
  ```
1266
+ ### Secure Source Manager Instance Workforce Identity Federation
1267
+
1268
+ ```python
1269
+ import pulumi
1270
+ import pulumi_gcp as gcp
1271
+
1272
+ default = gcp.securesourcemanager.Instance("default",
1273
+ location="us-central1",
1274
+ instance_id="my-instance",
1275
+ workforce_identity_federation_config={
1276
+ "enabled": True,
1277
+ })
1278
+ ```
1209
1279
 
1210
1280
  ## Import
1211
1281
 
@@ -1258,6 +1328,7 @@ class Instance(pulumi.CustomResource):
1258
1328
  location: Optional[pulumi.Input[str]] = None,
1259
1329
  private_config: Optional[pulumi.Input[Union['InstancePrivateConfigArgs', 'InstancePrivateConfigArgsDict']]] = None,
1260
1330
  project: Optional[pulumi.Input[str]] = None,
1331
+ workforce_identity_federation_config: Optional[pulumi.Input[Union['InstanceWorkforceIdentityFederationConfigArgs', 'InstanceWorkforceIdentityFederationConfigArgsDict']]] = None,
1261
1332
  __props__=None):
1262
1333
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1263
1334
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -1277,6 +1348,7 @@ class Instance(pulumi.CustomResource):
1277
1348
  __props__.__dict__["location"] = location
1278
1349
  __props__.__dict__["private_config"] = private_config
1279
1350
  __props__.__dict__["project"] = project
1351
+ __props__.__dict__["workforce_identity_federation_config"] = workforce_identity_federation_config
1280
1352
  __props__.__dict__["create_time"] = None
1281
1353
  __props__.__dict__["effective_labels"] = None
1282
1354
  __props__.__dict__["host_configs"] = None
@@ -1310,7 +1382,8 @@ class Instance(pulumi.CustomResource):
1310
1382
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1311
1383
  state: Optional[pulumi.Input[str]] = None,
1312
1384
  state_note: Optional[pulumi.Input[str]] = None,
1313
- update_time: Optional[pulumi.Input[str]] = None) -> 'Instance':
1385
+ update_time: Optional[pulumi.Input[str]] = None,
1386
+ workforce_identity_federation_config: Optional[pulumi.Input[Union['InstanceWorkforceIdentityFederationConfigArgs', 'InstanceWorkforceIdentityFederationConfigArgsDict']]] = None) -> 'Instance':
1314
1387
  """
1315
1388
  Get an existing Instance resource's state with the given name, id, and optional extra
1316
1389
  properties used to qualify the lookup.
@@ -1342,6 +1415,9 @@ class Instance(pulumi.CustomResource):
1342
1415
  :param pulumi.Input[str] state: The current state of the Instance.
1343
1416
  :param pulumi.Input[str] state_note: Provides information about the current instance state.
1344
1417
  :param pulumi.Input[str] update_time: Time the Instance was updated in UTC.
1418
+ :param pulumi.Input[Union['InstanceWorkforceIdentityFederationConfigArgs', 'InstanceWorkforceIdentityFederationConfigArgsDict']] workforce_identity_federation_config: Configuration for Workforce Identity Federation to support third party identity provider.
1419
+ If unset, defaults to the Google OIDC IdP.
1420
+ Structure is documented below.
1345
1421
  """
1346
1422
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1347
1423
 
@@ -1361,6 +1437,7 @@ class Instance(pulumi.CustomResource):
1361
1437
  __props__.__dict__["state"] = state
1362
1438
  __props__.__dict__["state_note"] = state_note
1363
1439
  __props__.__dict__["update_time"] = update_time
1440
+ __props__.__dict__["workforce_identity_federation_config"] = workforce_identity_federation_config
1364
1441
  return Instance(resource_name, opts=opts, __props__=__props__)
1365
1442
 
1366
1443
  @property
@@ -1485,3 +1562,13 @@ class Instance(pulumi.CustomResource):
1485
1562
  """
1486
1563
  return pulumi.get(self, "update_time")
1487
1564
 
1565
+ @property
1566
+ @pulumi.getter(name="workforceIdentityFederationConfig")
1567
+ def workforce_identity_federation_config(self) -> pulumi.Output[Optional['outputs.InstanceWorkforceIdentityFederationConfig']]:
1568
+ """
1569
+ Configuration for Workforce Identity Federation to support third party identity provider.
1570
+ If unset, defaults to the Google OIDC IdP.
1571
+ Structure is documented below.
1572
+ """
1573
+ return pulumi.get(self, "workforce_identity_federation_config")
1574
+
@@ -19,6 +19,7 @@ __all__ = [
19
19
  'InstanceIamBindingCondition',
20
20
  'InstanceIamMemberCondition',
21
21
  'InstancePrivateConfig',
22
+ 'InstanceWorkforceIdentityFederationConfig',
22
23
  'RepositoryIamBindingCondition',
23
24
  'RepositoryIamMemberCondition',
24
25
  'RepositoryInitialConfig',
@@ -241,6 +242,24 @@ class InstancePrivateConfig(dict):
241
242
  return pulumi.get(self, "ssh_service_attachment")
242
243
 
243
244
 
245
+ @pulumi.output_type
246
+ class InstanceWorkforceIdentityFederationConfig(dict):
247
+ def __init__(__self__, *,
248
+ enabled: bool):
249
+ """
250
+ :param bool enabled: 'Whether Workforce Identity Federation is enabled.'
251
+ """
252
+ pulumi.set(__self__, "enabled", enabled)
253
+
254
+ @property
255
+ @pulumi.getter
256
+ def enabled(self) -> bool:
257
+ """
258
+ 'Whether Workforce Identity Federation is enabled.'
259
+ """
260
+ return pulumi.get(self, "enabled")
261
+
262
+
244
263
  @pulumi.output_type
245
264
  class RepositoryIamBindingCondition(dict):
246
265
  def __init__(__self__, *,
@@ -47,8 +47,8 @@ class DatabaseArgs:
47
47
  in state, a `destroy` or `update` that would delete the instance will fail.
48
48
  :param pulumi.Input['DatabaseEncryptionConfigArgs'] encryption_config: Encryption configuration for the database
49
49
  Structure is documented below.
50
- :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after
51
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
50
+ :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after the
51
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
52
52
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
53
53
  If it is not provided, the provider project is used.
54
54
  :param pulumi.Input[str] version_retention_period: The retention period for the database. The retention period must be between 1 hour
@@ -158,8 +158,8 @@ class DatabaseArgs:
158
158
  @pulumi.getter
159
159
  def name(self) -> Optional[pulumi.Input[str]]:
160
160
  """
161
- A unique identifier for the database, which cannot be changed after
162
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
161
+ A unique identifier for the database, which cannot be changed after the
162
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
163
163
  """
164
164
  return pulumi.get(self, "name")
165
165
 
@@ -227,8 +227,8 @@ class _DatabaseState:
227
227
 
228
228
 
229
229
  - - -
230
- :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after
231
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
230
+ :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after the
231
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
232
232
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
233
233
  If it is not provided, the provider project is used.
234
234
  :param pulumi.Input[str] state: An explanation of the status of the database.
@@ -342,8 +342,8 @@ class _DatabaseState:
342
342
  @pulumi.getter
343
343
  def name(self) -> Optional[pulumi.Input[str]]:
344
344
  """
345
- A unique identifier for the database, which cannot be changed after
346
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
345
+ A unique identifier for the database, which cannot be changed after the
346
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
347
347
  """
348
348
  return pulumi.get(self, "name")
349
349
 
@@ -493,8 +493,8 @@ class Database(pulumi.CustomResource):
493
493
 
494
494
 
495
495
  - - -
496
- :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after
497
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
496
+ :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after the
497
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
498
498
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
499
499
  If it is not provided, the provider project is used.
500
500
  :param pulumi.Input[str] version_retention_period: The retention period for the database. The retention period must be between 1 hour
@@ -664,8 +664,8 @@ class Database(pulumi.CustomResource):
664
664
 
665
665
 
666
666
  - - -
667
- :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after
668
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
667
+ :param pulumi.Input[str] name: A unique identifier for the database, which cannot be changed after the
668
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
669
669
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
670
670
  If it is not provided, the provider project is used.
671
671
  :param pulumi.Input[str] state: An explanation of the status of the database.
@@ -750,8 +750,8 @@ class Database(pulumi.CustomResource):
750
750
  @pulumi.getter
751
751
  def name(self) -> pulumi.Output[str]:
752
752
  """
753
- A unique identifier for the database, which cannot be changed after
754
- the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
753
+ A unique identifier for the database, which cannot be changed after the
754
+ instance is created. Values are of the form `[a-z][-_a-z0-9]*[a-z0-9]`.
755
755
  """
756
756
  return pulumi.get(self, "name")
757
757
 
pulumi_gcp/sql/_inputs.py CHANGED
@@ -49,6 +49,8 @@ __all__ = [
49
49
  'DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgsDict',
50
50
  'DatabaseInstanceSettingsIpConfigurationPscConfigArgs',
51
51
  'DatabaseInstanceSettingsIpConfigurationPscConfigArgsDict',
52
+ 'DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgs',
53
+ 'DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgsDict',
52
54
  'DatabaseInstanceSettingsLocationPreferenceArgs',
53
55
  'DatabaseInstanceSettingsLocationPreferenceArgsDict',
54
56
  'DatabaseInstanceSettingsMaintenanceWindowArgs',
@@ -2104,6 +2106,10 @@ if not MYPY:
2104
2106
  """
2105
2107
  List of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).
2106
2108
  """
2109
+ psc_auto_connections: NotRequired[pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgsDict']]]]
2110
+ """
2111
+ A comma-separated list of networks or a comma-separated list of network-project pairs. Each project in this list is represented by a project number (numeric) or by a project ID (alphanumeric). This allows Private Service Connect connections to be created automatically for the specified networks.
2112
+ """
2107
2113
  psc_enabled: NotRequired[pulumi.Input[bool]]
2108
2114
  """
2109
2115
  Whether PSC connectivity is enabled for this instance.
@@ -2115,13 +2121,17 @@ elif False:
2115
2121
  class DatabaseInstanceSettingsIpConfigurationPscConfigArgs:
2116
2122
  def __init__(__self__, *,
2117
2123
  allowed_consumer_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2124
+ psc_auto_connections: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgs']]]] = None,
2118
2125
  psc_enabled: Optional[pulumi.Input[bool]] = None):
2119
2126
  """
2120
2127
  :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_consumer_projects: List of consumer projects that are allow-listed for PSC connections to this instance. This instance can be connected to with PSC from any network in these projects. Each consumer project in this list may be represented by a project number (numeric) or by a project id (alphanumeric).
2128
+ :param pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgs']]] psc_auto_connections: A comma-separated list of networks or a comma-separated list of network-project pairs. Each project in this list is represented by a project number (numeric) or by a project ID (alphanumeric). This allows Private Service Connect connections to be created automatically for the specified networks.
2121
2129
  :param pulumi.Input[bool] psc_enabled: Whether PSC connectivity is enabled for this instance.
2122
2130
  """
2123
2131
  if allowed_consumer_projects is not None:
2124
2132
  pulumi.set(__self__, "allowed_consumer_projects", allowed_consumer_projects)
2133
+ if psc_auto_connections is not None:
2134
+ pulumi.set(__self__, "psc_auto_connections", psc_auto_connections)
2125
2135
  if psc_enabled is not None:
2126
2136
  pulumi.set(__self__, "psc_enabled", psc_enabled)
2127
2137
 
@@ -2137,6 +2147,18 @@ class DatabaseInstanceSettingsIpConfigurationPscConfigArgs:
2137
2147
  def allowed_consumer_projects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2138
2148
  pulumi.set(self, "allowed_consumer_projects", value)
2139
2149
 
2150
+ @property
2151
+ @pulumi.getter(name="pscAutoConnections")
2152
+ def psc_auto_connections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgs']]]]:
2153
+ """
2154
+ A comma-separated list of networks or a comma-separated list of network-project pairs. Each project in this list is represented by a project number (numeric) or by a project ID (alphanumeric). This allows Private Service Connect connections to be created automatically for the specified networks.
2155
+ """
2156
+ return pulumi.get(self, "psc_auto_connections")
2157
+
2158
+ @psc_auto_connections.setter
2159
+ def psc_auto_connections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgs']]]]):
2160
+ pulumi.set(self, "psc_auto_connections", value)
2161
+
2140
2162
  @property
2141
2163
  @pulumi.getter(name="pscEnabled")
2142
2164
  def psc_enabled(self) -> Optional[pulumi.Input[bool]]:
@@ -2150,6 +2172,57 @@ class DatabaseInstanceSettingsIpConfigurationPscConfigArgs:
2150
2172
  pulumi.set(self, "psc_enabled", value)
2151
2173
 
2152
2174
 
2175
+ if not MYPY:
2176
+ class DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgsDict(TypedDict):
2177
+ consumer_network: pulumi.Input[str]
2178
+ """
2179
+ "The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project."
2180
+ """
2181
+ consumer_service_project_id: NotRequired[pulumi.Input[str]]
2182
+ """
2183
+ The project ID of consumer service project of this consumer endpoint.
2184
+ """
2185
+ elif False:
2186
+ DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgsDict: TypeAlias = Mapping[str, Any]
2187
+
2188
+ @pulumi.input_type
2189
+ class DatabaseInstanceSettingsIpConfigurationPscConfigPscAutoConnectionArgs:
2190
+ def __init__(__self__, *,
2191
+ consumer_network: pulumi.Input[str],
2192
+ consumer_service_project_id: Optional[pulumi.Input[str]] = None):
2193
+ """
2194
+ :param pulumi.Input[str] consumer_network: "The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project."
2195
+ :param pulumi.Input[str] consumer_service_project_id: The project ID of consumer service project of this consumer endpoint.
2196
+ """
2197
+ pulumi.set(__self__, "consumer_network", consumer_network)
2198
+ if consumer_service_project_id is not None:
2199
+ pulumi.set(__self__, "consumer_service_project_id", consumer_service_project_id)
2200
+
2201
+ @property
2202
+ @pulumi.getter(name="consumerNetwork")
2203
+ def consumer_network(self) -> pulumi.Input[str]:
2204
+ """
2205
+ "The consumer network of this consumer endpoint. This must be a resource path that includes both the host project and the network name. For example, `projects/project1/global/networks/network1`. The consumer host project of this network might be different from the consumer service project."
2206
+ """
2207
+ return pulumi.get(self, "consumer_network")
2208
+
2209
+ @consumer_network.setter
2210
+ def consumer_network(self, value: pulumi.Input[str]):
2211
+ pulumi.set(self, "consumer_network", value)
2212
+
2213
+ @property
2214
+ @pulumi.getter(name="consumerServiceProjectId")
2215
+ def consumer_service_project_id(self) -> Optional[pulumi.Input[str]]:
2216
+ """
2217
+ The project ID of consumer service project of this consumer endpoint.
2218
+ """
2219
+ return pulumi.get(self, "consumer_service_project_id")
2220
+
2221
+ @consumer_service_project_id.setter
2222
+ def consumer_service_project_id(self, value: Optional[pulumi.Input[str]]):
2223
+ pulumi.set(self, "consumer_service_project_id", value)
2224
+
2225
+
2153
2226
  if not MYPY:
2154
2227
  class DatabaseInstanceSettingsLocationPreferenceArgsDict(TypedDict):
2155
2228
  follow_gae_application: NotRequired[pulumi.Input[str]]
@@ -943,6 +943,36 @@ class DatabaseInstance(pulumi.CustomResource):
943
943
  })
944
944
  ```
945
945
 
946
+ ### Cloud SQL Instance with PSC auto connections
947
+
948
+ ```python
949
+ import pulumi
950
+ import pulumi_gcp as gcp
951
+
952
+ main = gcp.sql.DatabaseInstance("main",
953
+ name="psc-enabled-main-instance",
954
+ database_version="MYSQL_8_0",
955
+ settings={
956
+ "tier": "db-f1-micro",
957
+ "ip_configuration": {
958
+ "psc_configs": [{
959
+ "psc_enabled": True,
960
+ "allowed_consumer_projects": ["allowed-consumer-project-name"],
961
+ "psc_auto_connections": [{
962
+ "consumer_network": "network-name",
963
+ "consumer_service_project_id": "project-id",
964
+ }],
965
+ }],
966
+ "ipv4_enabled": False,
967
+ },
968
+ "backup_configuration": {
969
+ "enabled": True,
970
+ "binary_log_enabled": True,
971
+ },
972
+ "availability_type": "REGIONAL",
973
+ })
974
+ ```
975
+
946
976
  ## Switchover (SQL Server Only)
947
977
 
948
978
  Users can perform a switchover on any direct `cascadable` replica by following the steps below.
@@ -1171,6 +1201,36 @@ class DatabaseInstance(pulumi.CustomResource):
1171
1201
  })
1172
1202
  ```
1173
1203
 
1204
+ ### Cloud SQL Instance with PSC auto connections
1205
+
1206
+ ```python
1207
+ import pulumi
1208
+ import pulumi_gcp as gcp
1209
+
1210
+ main = gcp.sql.DatabaseInstance("main",
1211
+ name="psc-enabled-main-instance",
1212
+ database_version="MYSQL_8_0",
1213
+ settings={
1214
+ "tier": "db-f1-micro",
1215
+ "ip_configuration": {
1216
+ "psc_configs": [{
1217
+ "psc_enabled": True,
1218
+ "allowed_consumer_projects": ["allowed-consumer-project-name"],
1219
+ "psc_auto_connections": [{
1220
+ "consumer_network": "network-name",
1221
+ "consumer_service_project_id": "project-id",
1222
+ }],
1223
+ }],
1224
+ "ipv4_enabled": False,
1225
+ },
1226
+ "backup_configuration": {
1227
+ "enabled": True,
1228
+ "binary_log_enabled": True,
1229
+ },
1230
+ "availability_type": "REGIONAL",
1231
+ })
1232
+ ```
1233
+
1174
1234
  ## Switchover (SQL Server Only)
1175
1235
 
1176
1236
  Users can perform a switchover on any direct `cascadable` replica by following the steps below.