pulumi-gcp 7.17.0a1712402830__py3-none-any.whl → 7.17.0a1712602552__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 (55) hide show
  1. pulumi_gcp/__init__.py +27 -0
  2. pulumi_gcp/apphub/__init__.py +1 -0
  3. pulumi_gcp/apphub/get_application.py +220 -0
  4. pulumi_gcp/apphub/outputs.py +214 -0
  5. pulumi_gcp/applicationintegration/__init__.py +10 -0
  6. pulumi_gcp/applicationintegration/_inputs.py +119 -0
  7. pulumi_gcp/applicationintegration/client.py +566 -0
  8. pulumi_gcp/applicationintegration/outputs.py +122 -0
  9. pulumi_gcp/bigquery/_inputs.py +16 -0
  10. pulumi_gcp/bigquery/outputs.py +14 -0
  11. pulumi_gcp/bigquery/routine.py +98 -0
  12. pulumi_gcp/billing/project_info.py +4 -4
  13. pulumi_gcp/cloudquota/__init__.py +2 -0
  14. pulumi_gcp/cloudquota/_inputs.py +131 -0
  15. pulumi_gcp/cloudquota/outputs.py +118 -0
  16. pulumi_gcp/cloudquota/s_quota_preference.py +777 -0
  17. pulumi_gcp/compute/interconnect_attachment.py +64 -0
  18. pulumi_gcp/compute/network_endpoint.py +8 -0
  19. pulumi_gcp/compute/network_endpoint_list.py +8 -0
  20. pulumi_gcp/compute/region_backend_service.py +28 -0
  21. pulumi_gcp/compute/target_instance.py +4 -4
  22. pulumi_gcp/config/__init__.pyi +2 -0
  23. pulumi_gcp/config/vars.py +4 -0
  24. pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
  25. pulumi_gcp/dataflow/flex_template_job.py +84 -112
  26. pulumi_gcp/dataplex/task.py +16 -16
  27. pulumi_gcp/dataproc/_inputs.py +71 -0
  28. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  29. pulumi_gcp/dataproc/metastore_service.py +120 -0
  30. pulumi_gcp/dataproc/outputs.py +128 -0
  31. pulumi_gcp/firebase/app_check_service_config.py +2 -2
  32. pulumi_gcp/firestore/backup_schedule.py +14 -14
  33. pulumi_gcp/firestore/field.py +4 -4
  34. pulumi_gcp/gkehub/membership_binding.py +6 -6
  35. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  36. pulumi_gcp/gkehub/namespace.py +4 -4
  37. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  38. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  39. pulumi_gcp/kms/_inputs.py +46 -0
  40. pulumi_gcp/kms/crypto_key.py +54 -0
  41. pulumi_gcp/kms/crypto_key_version.py +54 -0
  42. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  43. pulumi_gcp/kms/outputs.py +54 -0
  44. pulumi_gcp/orgpolicy/policy.py +2 -2
  45. pulumi_gcp/provider.py +20 -0
  46. pulumi_gcp/pubsub/subscription.py +4 -4
  47. pulumi_gcp/vertex/__init__.py +1 -0
  48. pulumi_gcp/vertex/_inputs.py +169 -0
  49. pulumi_gcp/vertex/ai_deployment_resource_pool.py +477 -0
  50. pulumi_gcp/vertex/outputs.py +194 -0
  51. pulumi_gcp/vpcaccess/connector.py +77 -28
  52. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/METADATA +1 -1
  53. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/RECORD +55 -47
  54. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/WHEEL +0 -0
  55. {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,7 @@ __all__ = ['CryptoKeyVersionArgs', 'CryptoKeyVersion']
17
17
  class CryptoKeyVersionArgs:
18
18
  def __init__(__self__, *,
19
19
  crypto_key: pulumi.Input[str],
20
+ external_protection_level_options: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] = None,
20
21
  state: Optional[pulumi.Input[str]] = None):
21
22
  """
22
23
  The set of arguments for constructing a CryptoKeyVersion resource.
@@ -25,10 +26,14 @@ class CryptoKeyVersionArgs:
25
26
 
26
27
 
27
28
  - - -
29
+ :param pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs'] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
30
+ Structure is documented below.
28
31
  :param pulumi.Input[str] state: The current state of the CryptoKeyVersion.
29
32
  Possible values are: `PENDING_GENERATION`, `ENABLED`, `DISABLED`, `DESTROYED`, `DESTROY_SCHEDULED`, `PENDING_IMPORT`, `IMPORT_FAILED`.
30
33
  """
31
34
  pulumi.set(__self__, "crypto_key", crypto_key)
35
+ if external_protection_level_options is not None:
36
+ pulumi.set(__self__, "external_protection_level_options", external_protection_level_options)
32
37
  if state is not None:
33
38
  pulumi.set(__self__, "state", state)
34
39
 
@@ -48,6 +53,19 @@ class CryptoKeyVersionArgs:
48
53
  def crypto_key(self, value: pulumi.Input[str]):
49
54
  pulumi.set(self, "crypto_key", value)
50
55
 
56
+ @property
57
+ @pulumi.getter(name="externalProtectionLevelOptions")
58
+ def external_protection_level_options(self) -> Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]:
59
+ """
60
+ ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
61
+ Structure is documented below.
62
+ """
63
+ return pulumi.get(self, "external_protection_level_options")
64
+
65
+ @external_protection_level_options.setter
66
+ def external_protection_level_options(self, value: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]):
67
+ pulumi.set(self, "external_protection_level_options", value)
68
+
51
69
  @property
52
70
  @pulumi.getter
53
71
  def state(self) -> Optional[pulumi.Input[str]]:
@@ -68,6 +86,7 @@ class _CryptoKeyVersionState:
68
86
  algorithm: Optional[pulumi.Input[str]] = None,
69
87
  attestations: Optional[pulumi.Input[Sequence[pulumi.Input['CryptoKeyVersionAttestationArgs']]]] = None,
70
88
  crypto_key: Optional[pulumi.Input[str]] = None,
89
+ external_protection_level_options: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] = None,
71
90
  generate_time: Optional[pulumi.Input[str]] = None,
72
91
  name: Optional[pulumi.Input[str]] = None,
73
92
  protection_level: Optional[pulumi.Input[str]] = None,
@@ -83,6 +102,8 @@ class _CryptoKeyVersionState:
83
102
 
84
103
 
85
104
  - - -
105
+ :param pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs'] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
106
+ Structure is documented below.
86
107
  :param pulumi.Input[str] generate_time: The time this CryptoKeyVersion key material was generated
87
108
  :param pulumi.Input[str] name: The resource name for this CryptoKeyVersion.
88
109
  :param pulumi.Input[str] protection_level: The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion.
@@ -95,6 +116,8 @@ class _CryptoKeyVersionState:
95
116
  pulumi.set(__self__, "attestations", attestations)
96
117
  if crypto_key is not None:
97
118
  pulumi.set(__self__, "crypto_key", crypto_key)
119
+ if external_protection_level_options is not None:
120
+ pulumi.set(__self__, "external_protection_level_options", external_protection_level_options)
98
121
  if generate_time is not None:
99
122
  pulumi.set(__self__, "generate_time", generate_time)
100
123
  if name is not None:
@@ -146,6 +169,19 @@ class _CryptoKeyVersionState:
146
169
  def crypto_key(self, value: Optional[pulumi.Input[str]]):
147
170
  pulumi.set(self, "crypto_key", value)
148
171
 
172
+ @property
173
+ @pulumi.getter(name="externalProtectionLevelOptions")
174
+ def external_protection_level_options(self) -> Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]:
175
+ """
176
+ ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
177
+ Structure is documented below.
178
+ """
179
+ return pulumi.get(self, "external_protection_level_options")
180
+
181
+ @external_protection_level_options.setter
182
+ def external_protection_level_options(self, value: Optional[pulumi.Input['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]):
183
+ pulumi.set(self, "external_protection_level_options", value)
184
+
149
185
  @property
150
186
  @pulumi.getter(name="generateTime")
151
187
  def generate_time(self) -> Optional[pulumi.Input[str]]:
@@ -202,6 +238,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
202
238
  resource_name: str,
203
239
  opts: Optional[pulumi.ResourceOptions] = None,
204
240
  crypto_key: Optional[pulumi.Input[str]] = None,
241
+ external_protection_level_options: Optional[pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]] = None,
205
242
  state: Optional[pulumi.Input[str]] = None,
206
243
  __props__=None):
207
244
  """
@@ -254,6 +291,8 @@ class CryptoKeyVersion(pulumi.CustomResource):
254
291
 
255
292
 
256
293
  - - -
294
+ :param pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
295
+ Structure is documented below.
257
296
  :param pulumi.Input[str] state: The current state of the CryptoKeyVersion.
258
297
  Possible values are: `PENDING_GENERATION`, `ENABLED`, `DISABLED`, `DESTROYED`, `DESTROY_SCHEDULED`, `PENDING_IMPORT`, `IMPORT_FAILED`.
259
298
  """
@@ -322,6 +361,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
322
361
  resource_name: str,
323
362
  opts: Optional[pulumi.ResourceOptions] = None,
324
363
  crypto_key: Optional[pulumi.Input[str]] = None,
364
+ external_protection_level_options: Optional[pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]] = None,
325
365
  state: Optional[pulumi.Input[str]] = None,
326
366
  __props__=None):
327
367
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -335,6 +375,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
335
375
  if crypto_key is None and not opts.urn:
336
376
  raise TypeError("Missing required property 'crypto_key'")
337
377
  __props__.__dict__["crypto_key"] = crypto_key
378
+ __props__.__dict__["external_protection_level_options"] = external_protection_level_options
338
379
  __props__.__dict__["state"] = state
339
380
  __props__.__dict__["algorithm"] = None
340
381
  __props__.__dict__["attestations"] = None
@@ -354,6 +395,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
354
395
  algorithm: Optional[pulumi.Input[str]] = None,
355
396
  attestations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CryptoKeyVersionAttestationArgs']]]]] = None,
356
397
  crypto_key: Optional[pulumi.Input[str]] = None,
398
+ external_protection_level_options: Optional[pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']]] = None,
357
399
  generate_time: Optional[pulumi.Input[str]] = None,
358
400
  name: Optional[pulumi.Input[str]] = None,
359
401
  protection_level: Optional[pulumi.Input[str]] = None,
@@ -374,6 +416,8 @@ class CryptoKeyVersion(pulumi.CustomResource):
374
416
 
375
417
 
376
418
  - - -
419
+ :param pulumi.Input[pulumi.InputType['CryptoKeyVersionExternalProtectionLevelOptionsArgs']] external_protection_level_options: ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
420
+ Structure is documented below.
377
421
  :param pulumi.Input[str] generate_time: The time this CryptoKeyVersion key material was generated
378
422
  :param pulumi.Input[str] name: The resource name for this CryptoKeyVersion.
379
423
  :param pulumi.Input[str] protection_level: The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion.
@@ -387,6 +431,7 @@ class CryptoKeyVersion(pulumi.CustomResource):
387
431
  __props__.__dict__["algorithm"] = algorithm
388
432
  __props__.__dict__["attestations"] = attestations
389
433
  __props__.__dict__["crypto_key"] = crypto_key
434
+ __props__.__dict__["external_protection_level_options"] = external_protection_level_options
390
435
  __props__.__dict__["generate_time"] = generate_time
391
436
  __props__.__dict__["name"] = name
392
437
  __props__.__dict__["protection_level"] = protection_level
@@ -423,6 +468,15 @@ class CryptoKeyVersion(pulumi.CustomResource):
423
468
  """
424
469
  return pulumi.get(self, "crypto_key")
425
470
 
471
+ @property
472
+ @pulumi.getter(name="externalProtectionLevelOptions")
473
+ def external_protection_level_options(self) -> pulumi.Output[Optional['outputs.CryptoKeyVersionExternalProtectionLevelOptions']]:
474
+ """
475
+ ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
476
+ Structure is documented below.
477
+ """
478
+ return pulumi.get(self, "external_protection_level_options")
479
+
426
480
  @property
427
481
  @pulumi.getter(name="generateTime")
428
482
  def generate_time(self) -> pulumi.Output[str]:
@@ -22,7 +22,10 @@ class GetKMSCryptoKeyResult:
22
22
  """
23
23
  A collection of values returned by getKMSCryptoKey.
24
24
  """
25
- def __init__(__self__, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_ring=None, labels=None, name=None, primaries=None, pulumi_labels=None, purpose=None, rotation_period=None, skip_initial_version_creation=None, version_templates=None):
25
+ def __init__(__self__, crypto_key_backend=None, destroy_scheduled_duration=None, effective_labels=None, id=None, import_only=None, key_ring=None, labels=None, name=None, primaries=None, pulumi_labels=None, purpose=None, rotation_period=None, skip_initial_version_creation=None, version_templates=None):
26
+ if crypto_key_backend and not isinstance(crypto_key_backend, str):
27
+ raise TypeError("Expected argument 'crypto_key_backend' to be a str")
28
+ pulumi.set(__self__, "crypto_key_backend", crypto_key_backend)
26
29
  if destroy_scheduled_duration and not isinstance(destroy_scheduled_duration, str):
27
30
  raise TypeError("Expected argument 'destroy_scheduled_duration' to be a str")
28
31
  pulumi.set(__self__, "destroy_scheduled_duration", destroy_scheduled_duration)
@@ -63,6 +66,11 @@ class GetKMSCryptoKeyResult:
63
66
  raise TypeError("Expected argument 'version_templates' to be a list")
64
67
  pulumi.set(__self__, "version_templates", version_templates)
65
68
 
69
+ @property
70
+ @pulumi.getter(name="cryptoKeyBackend")
71
+ def crypto_key_backend(self) -> str:
72
+ return pulumi.get(self, "crypto_key_backend")
73
+
66
74
  @property
67
75
  @pulumi.getter(name="destroyScheduledDuration")
68
76
  def destroy_scheduled_duration(self) -> str:
@@ -146,6 +154,7 @@ class AwaitableGetKMSCryptoKeyResult(GetKMSCryptoKeyResult):
146
154
  if False:
147
155
  yield self
148
156
  return GetKMSCryptoKeyResult(
157
+ crypto_key_backend=self.crypto_key_backend,
149
158
  destroy_scheduled_duration=self.destroy_scheduled_duration,
150
159
  effective_labels=self.effective_labels,
151
160
  id=self.id,
@@ -199,6 +208,7 @@ def get_kms_crypto_key(key_ring: Optional[str] = None,
199
208
  __ret__ = pulumi.runtime.invoke('gcp:kms/getKMSCryptoKey:getKMSCryptoKey', __args__, opts=opts, typ=GetKMSCryptoKeyResult).value
200
209
 
201
210
  return AwaitableGetKMSCryptoKeyResult(
211
+ crypto_key_backend=pulumi.get(__ret__, 'crypto_key_backend'),
202
212
  destroy_scheduled_duration=pulumi.get(__ret__, 'destroy_scheduled_duration'),
203
213
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
204
214
  id=pulumi.get(__ret__, 'id'),
pulumi_gcp/kms/outputs.py CHANGED
@@ -17,6 +17,7 @@ __all__ = [
17
17
  'CryptoKeyVersionAttestation',
18
18
  'CryptoKeyVersionAttestationCertChains',
19
19
  'CryptoKeyVersionAttestationExternalProtectionLevelOptions',
20
+ 'CryptoKeyVersionExternalProtectionLevelOptions',
20
21
  'CryptoKeyVersionTemplate',
21
22
  'EkmConnectionServiceResolver',
22
23
  'EkmConnectionServiceResolverServerCertificate',
@@ -230,6 +231,9 @@ class CryptoKeyVersionAttestation(dict):
230
231
  ExternalProtectionLevelOptions stores a group of additional fields for configuring a CryptoKeyVersion that are specific to the EXTERNAL protection level and EXTERNAL_VPC protection levels.
231
232
  Structure is documented below.
232
233
  """
234
+ warnings.warn("""`externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""", DeprecationWarning)
235
+ pulumi.log.warn("""external_protection_level_options is deprecated: `externalProtectionLevelOptions` is being un-nested from the `attestation` field. Please use the top level `externalProtectionLevelOptions` field instead.""")
236
+
233
237
  return pulumi.get(self, "external_protection_level_options")
234
238
 
235
239
  @property
@@ -356,6 +360,56 @@ class CryptoKeyVersionAttestationExternalProtectionLevelOptions(dict):
356
360
  return pulumi.get(self, "external_key_uri")
357
361
 
358
362
 
363
+ @pulumi.output_type
364
+ class CryptoKeyVersionExternalProtectionLevelOptions(dict):
365
+ @staticmethod
366
+ def __key_warning(key: str):
367
+ suggest = None
368
+ if key == "ekmConnectionKeyPath":
369
+ suggest = "ekm_connection_key_path"
370
+ elif key == "externalKeyUri":
371
+ suggest = "external_key_uri"
372
+
373
+ if suggest:
374
+ pulumi.log.warn(f"Key '{key}' not found in CryptoKeyVersionExternalProtectionLevelOptions. Access the value via the '{suggest}' property getter instead.")
375
+
376
+ def __getitem__(self, key: str) -> Any:
377
+ CryptoKeyVersionExternalProtectionLevelOptions.__key_warning(key)
378
+ return super().__getitem__(key)
379
+
380
+ def get(self, key: str, default = None) -> Any:
381
+ CryptoKeyVersionExternalProtectionLevelOptions.__key_warning(key)
382
+ return super().get(key, default)
383
+
384
+ def __init__(__self__, *,
385
+ ekm_connection_key_path: Optional[str] = None,
386
+ external_key_uri: Optional[str] = None):
387
+ """
388
+ :param str ekm_connection_key_path: The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of externalKeyUri when using an EkmConnection.
389
+ :param str external_key_uri: The URI for an external resource that this CryptoKeyVersion represents.
390
+ """
391
+ if ekm_connection_key_path is not None:
392
+ pulumi.set(__self__, "ekm_connection_key_path", ekm_connection_key_path)
393
+ if external_key_uri is not None:
394
+ pulumi.set(__self__, "external_key_uri", external_key_uri)
395
+
396
+ @property
397
+ @pulumi.getter(name="ekmConnectionKeyPath")
398
+ def ekm_connection_key_path(self) -> Optional[str]:
399
+ """
400
+ The path to the external key material on the EKM when using EkmConnection e.g., "v0/my/key". Set this field instead of externalKeyUri when using an EkmConnection.
401
+ """
402
+ return pulumi.get(self, "ekm_connection_key_path")
403
+
404
+ @property
405
+ @pulumi.getter(name="externalKeyUri")
406
+ def external_key_uri(self) -> Optional[str]:
407
+ """
408
+ The URI for an external resource that this CryptoKeyVersion represents.
409
+ """
410
+ return pulumi.get(self, "external_key_uri")
411
+
412
+
359
413
  @pulumi.output_type
360
414
  class CryptoKeyVersionTemplate(dict):
361
415
  @staticmethod
@@ -306,7 +306,7 @@ class Policy(pulumi.CustomResource):
306
306
  import pulumi_gcp as gcp
307
307
 
308
308
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
309
- name="custom.disableGkeAutoUpgrade_41819",
309
+ name="custom.disableGkeAutoUpgrade_75092",
310
310
  parent="organizations/123456789",
311
311
  display_name="Disable GKE auto upgrade",
312
312
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
@@ -468,7 +468,7 @@ class Policy(pulumi.CustomResource):
468
468
  import pulumi_gcp as gcp
469
469
 
470
470
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
471
- name="custom.disableGkeAutoUpgrade_41819",
471
+ name="custom.disableGkeAutoUpgrade_75092",
472
472
  parent="organizations/123456789",
473
473
  display_name="Disable GKE auto upgrade",
474
474
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
pulumi_gcp/provider.py CHANGED
@@ -121,6 +121,7 @@ class ProviderArgs:
121
121
  impersonate_service_account: Optional[pulumi.Input[str]] = None,
122
122
  impersonate_service_account_delegates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
123
123
  integration_connectors_custom_endpoint: Optional[pulumi.Input[str]] = None,
124
+ integrations_custom_endpoint: Optional[pulumi.Input[str]] = None,
124
125
  kms_custom_endpoint: Optional[pulumi.Input[str]] = None,
125
126
  logging_custom_endpoint: Optional[pulumi.Input[str]] = None,
126
127
  looker_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -396,6 +397,8 @@ class ProviderArgs:
396
397
  pulumi.set(__self__, "impersonate_service_account_delegates", impersonate_service_account_delegates)
397
398
  if integration_connectors_custom_endpoint is not None:
398
399
  pulumi.set(__self__, "integration_connectors_custom_endpoint", integration_connectors_custom_endpoint)
400
+ if integrations_custom_endpoint is not None:
401
+ pulumi.set(__self__, "integrations_custom_endpoint", integrations_custom_endpoint)
399
402
  if kms_custom_endpoint is not None:
400
403
  pulumi.set(__self__, "kms_custom_endpoint", kms_custom_endpoint)
401
404
  if logging_custom_endpoint is not None:
@@ -1477,6 +1480,15 @@ class ProviderArgs:
1477
1480
  def integration_connectors_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
1478
1481
  pulumi.set(self, "integration_connectors_custom_endpoint", value)
1479
1482
 
1483
+ @property
1484
+ @pulumi.getter(name="integrationsCustomEndpoint")
1485
+ def integrations_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
1486
+ return pulumi.get(self, "integrations_custom_endpoint")
1487
+
1488
+ @integrations_custom_endpoint.setter
1489
+ def integrations_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
1490
+ pulumi.set(self, "integrations_custom_endpoint", value)
1491
+
1480
1492
  @property
1481
1493
  @pulumi.getter(name="kmsCustomEndpoint")
1482
1494
  def kms_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
@@ -2129,6 +2141,7 @@ class Provider(pulumi.ProviderResource):
2129
2141
  impersonate_service_account: Optional[pulumi.Input[str]] = None,
2130
2142
  impersonate_service_account_delegates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2131
2143
  integration_connectors_custom_endpoint: Optional[pulumi.Input[str]] = None,
2144
+ integrations_custom_endpoint: Optional[pulumi.Input[str]] = None,
2132
2145
  kms_custom_endpoint: Optional[pulumi.Input[str]] = None,
2133
2146
  logging_custom_endpoint: Optional[pulumi.Input[str]] = None,
2134
2147
  looker_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2332,6 +2345,7 @@ class Provider(pulumi.ProviderResource):
2332
2345
  impersonate_service_account: Optional[pulumi.Input[str]] = None,
2333
2346
  impersonate_service_account_delegates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2334
2347
  integration_connectors_custom_endpoint: Optional[pulumi.Input[str]] = None,
2348
+ integrations_custom_endpoint: Optional[pulumi.Input[str]] = None,
2335
2349
  kms_custom_endpoint: Optional[pulumi.Input[str]] = None,
2336
2350
  logging_custom_endpoint: Optional[pulumi.Input[str]] = None,
2337
2351
  looker_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2507,6 +2521,7 @@ class Provider(pulumi.ProviderResource):
2507
2521
  __props__.__dict__["impersonate_service_account"] = impersonate_service_account
2508
2522
  __props__.__dict__["impersonate_service_account_delegates"] = pulumi.Output.from_input(impersonate_service_account_delegates).apply(pulumi.runtime.to_json) if impersonate_service_account_delegates is not None else None
2509
2523
  __props__.__dict__["integration_connectors_custom_endpoint"] = integration_connectors_custom_endpoint
2524
+ __props__.__dict__["integrations_custom_endpoint"] = integrations_custom_endpoint
2510
2525
  __props__.__dict__["kms_custom_endpoint"] = kms_custom_endpoint
2511
2526
  __props__.__dict__["logging_custom_endpoint"] = logging_custom_endpoint
2512
2527
  __props__.__dict__["looker_custom_endpoint"] = looker_custom_endpoint
@@ -3084,6 +3099,11 @@ class Provider(pulumi.ProviderResource):
3084
3099
  def integration_connectors_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
3085
3100
  return pulumi.get(self, "integration_connectors_custom_endpoint")
3086
3101
 
3102
+ @property
3103
+ @pulumi.getter(name="integrationsCustomEndpoint")
3104
+ def integrations_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
3105
+ return pulumi.get(self, "integrations_custom_endpoint")
3106
+
3087
3107
  @property
3088
3108
  @pulumi.getter(name="kmsCustomEndpoint")
3089
3109
  def kms_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
@@ -1051,7 +1051,7 @@ class Subscription(pulumi.CustomResource):
1051
1051
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1052
1052
  bucket=example.name,
1053
1053
  filename_prefix="pre-",
1054
- filename_suffix="-_75092",
1054
+ filename_suffix="-_2605",
1055
1055
  max_bytes=1000,
1056
1056
  max_duration="300s",
1057
1057
  ))
@@ -1080,7 +1080,7 @@ class Subscription(pulumi.CustomResource):
1080
1080
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1081
1081
  bucket=example.name,
1082
1082
  filename_prefix="pre-",
1083
- filename_suffix="-_2605",
1083
+ filename_suffix="-_34535",
1084
1084
  max_bytes=1000,
1085
1085
  max_duration="300s",
1086
1086
  avro_config=gcp.pubsub.SubscriptionCloudStorageConfigAvroConfigArgs(
@@ -1392,7 +1392,7 @@ class Subscription(pulumi.CustomResource):
1392
1392
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1393
1393
  bucket=example.name,
1394
1394
  filename_prefix="pre-",
1395
- filename_suffix="-_75092",
1395
+ filename_suffix="-_2605",
1396
1396
  max_bytes=1000,
1397
1397
  max_duration="300s",
1398
1398
  ))
@@ -1421,7 +1421,7 @@ class Subscription(pulumi.CustomResource):
1421
1421
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1422
1422
  bucket=example.name,
1423
1423
  filename_prefix="pre-",
1424
- filename_suffix="-_2605",
1424
+ filename_suffix="-_34535",
1425
1425
  max_bytes=1000,
1426
1426
  max_duration="300s",
1427
1427
  avro_config=gcp.pubsub.SubscriptionCloudStorageConfigAvroConfigArgs(
@@ -6,6 +6,7 @@ from .. import _utilities
6
6
  import typing
7
7
  # Export this package's modules as members:
8
8
  from .ai_dataset import *
9
+ from .ai_deployment_resource_pool import *
9
10
  from .ai_endpoint import *
10
11
  from .ai_endpoint_iam_binding import *
11
12
  from .ai_endpoint_iam_member import *
@@ -11,6 +11,9 @@ from .. import _utilities
11
11
 
12
12
  __all__ = [
13
13
  'AiDatasetEncryptionSpecArgs',
14
+ 'AiDeploymentResourcePoolDedicatedResourcesArgs',
15
+ 'AiDeploymentResourcePoolDedicatedResourcesAutoscalingMetricSpecArgs',
16
+ 'AiDeploymentResourcePoolDedicatedResourcesMachineSpecArgs',
14
17
  'AiEndpointDeployedModelArgs',
15
18
  'AiEndpointDeployedModelAutomaticResourceArgs',
16
19
  'AiEndpointDeployedModelDedicatedResourceArgs',
@@ -85,6 +88,172 @@ class AiDatasetEncryptionSpecArgs:
85
88
  pulumi.set(self, "kms_key_name", value)
86
89
 
87
90
 
91
+ @pulumi.input_type
92
+ class AiDeploymentResourcePoolDedicatedResourcesArgs:
93
+ def __init__(__self__, *,
94
+ machine_spec: pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesMachineSpecArgs'],
95
+ min_replica_count: pulumi.Input[int],
96
+ autoscaling_metric_specs: Optional[pulumi.Input[Sequence[pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesAutoscalingMetricSpecArgs']]]] = None,
97
+ max_replica_count: Optional[pulumi.Input[int]] = None):
98
+ """
99
+ :param pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesMachineSpecArgs'] machine_spec: The specification of a single machine used by the prediction
100
+ Structure is documented below.
101
+ :param pulumi.Input[int] min_replica_count: The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1. If traffic against the DeployedModel increases, it may dynamically be deployed onto more replicas, and as traffic decreases, some of these extra replicas may be freed.
102
+ :param pulumi.Input[Sequence[pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesAutoscalingMetricSpecArgs']]] autoscaling_metric_specs: A list of the metric specifications that overrides a resource utilization metric.
103
+ Structure is documented below.
104
+ :param pulumi.Input[int] max_replica_count: The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, will use min_replica_count as the default value. The value of this field impacts the charge against Vertex CPU and GPU quotas. Specifically, you will be charged for max_replica_count * number of cores in the selected machine type) and (max_replica_count * number of GPUs per replica in the selected machine type).
105
+ """
106
+ pulumi.set(__self__, "machine_spec", machine_spec)
107
+ pulumi.set(__self__, "min_replica_count", min_replica_count)
108
+ if autoscaling_metric_specs is not None:
109
+ pulumi.set(__self__, "autoscaling_metric_specs", autoscaling_metric_specs)
110
+ if max_replica_count is not None:
111
+ pulumi.set(__self__, "max_replica_count", max_replica_count)
112
+
113
+ @property
114
+ @pulumi.getter(name="machineSpec")
115
+ def machine_spec(self) -> pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesMachineSpecArgs']:
116
+ """
117
+ The specification of a single machine used by the prediction
118
+ Structure is documented below.
119
+ """
120
+ return pulumi.get(self, "machine_spec")
121
+
122
+ @machine_spec.setter
123
+ def machine_spec(self, value: pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesMachineSpecArgs']):
124
+ pulumi.set(self, "machine_spec", value)
125
+
126
+ @property
127
+ @pulumi.getter(name="minReplicaCount")
128
+ def min_replica_count(self) -> pulumi.Input[int]:
129
+ """
130
+ The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1. If traffic against the DeployedModel increases, it may dynamically be deployed onto more replicas, and as traffic decreases, some of these extra replicas may be freed.
131
+ """
132
+ return pulumi.get(self, "min_replica_count")
133
+
134
+ @min_replica_count.setter
135
+ def min_replica_count(self, value: pulumi.Input[int]):
136
+ pulumi.set(self, "min_replica_count", value)
137
+
138
+ @property
139
+ @pulumi.getter(name="autoscalingMetricSpecs")
140
+ def autoscaling_metric_specs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesAutoscalingMetricSpecArgs']]]]:
141
+ """
142
+ A list of the metric specifications that overrides a resource utilization metric.
143
+ Structure is documented below.
144
+ """
145
+ return pulumi.get(self, "autoscaling_metric_specs")
146
+
147
+ @autoscaling_metric_specs.setter
148
+ def autoscaling_metric_specs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AiDeploymentResourcePoolDedicatedResourcesAutoscalingMetricSpecArgs']]]]):
149
+ pulumi.set(self, "autoscaling_metric_specs", value)
150
+
151
+ @property
152
+ @pulumi.getter(name="maxReplicaCount")
153
+ def max_replica_count(self) -> Optional[pulumi.Input[int]]:
154
+ """
155
+ The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, will use min_replica_count as the default value. The value of this field impacts the charge against Vertex CPU and GPU quotas. Specifically, you will be charged for max_replica_count * number of cores in the selected machine type) and (max_replica_count * number of GPUs per replica in the selected machine type).
156
+ """
157
+ return pulumi.get(self, "max_replica_count")
158
+
159
+ @max_replica_count.setter
160
+ def max_replica_count(self, value: Optional[pulumi.Input[int]]):
161
+ pulumi.set(self, "max_replica_count", value)
162
+
163
+
164
+ @pulumi.input_type
165
+ class AiDeploymentResourcePoolDedicatedResourcesAutoscalingMetricSpecArgs:
166
+ def __init__(__self__, *,
167
+ metric_name: pulumi.Input[str],
168
+ target: Optional[pulumi.Input[int]] = None):
169
+ """
170
+ :param pulumi.Input[str] metric_name: The resource metric name. Supported metrics: For Online Prediction: * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` * `aiplatform.googleapis.com/prediction/online/cpu/utilization`
171
+ :param pulumi.Input[int] target: The target resource utilization in percentage (1% - 100%) for the given metric; once the real usage deviates from the target by a certain percentage, the machine replicas change. The default value is 60 (representing 60%) if not provided.
172
+ """
173
+ pulumi.set(__self__, "metric_name", metric_name)
174
+ if target is not None:
175
+ pulumi.set(__self__, "target", target)
176
+
177
+ @property
178
+ @pulumi.getter(name="metricName")
179
+ def metric_name(self) -> pulumi.Input[str]:
180
+ """
181
+ The resource metric name. Supported metrics: For Online Prediction: * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` * `aiplatform.googleapis.com/prediction/online/cpu/utilization`
182
+ """
183
+ return pulumi.get(self, "metric_name")
184
+
185
+ @metric_name.setter
186
+ def metric_name(self, value: pulumi.Input[str]):
187
+ pulumi.set(self, "metric_name", value)
188
+
189
+ @property
190
+ @pulumi.getter
191
+ def target(self) -> Optional[pulumi.Input[int]]:
192
+ """
193
+ The target resource utilization in percentage (1% - 100%) for the given metric; once the real usage deviates from the target by a certain percentage, the machine replicas change. The default value is 60 (representing 60%) if not provided.
194
+ """
195
+ return pulumi.get(self, "target")
196
+
197
+ @target.setter
198
+ def target(self, value: Optional[pulumi.Input[int]]):
199
+ pulumi.set(self, "target", value)
200
+
201
+
202
+ @pulumi.input_type
203
+ class AiDeploymentResourcePoolDedicatedResourcesMachineSpecArgs:
204
+ def __init__(__self__, *,
205
+ accelerator_count: Optional[pulumi.Input[int]] = None,
206
+ accelerator_type: Optional[pulumi.Input[str]] = None,
207
+ machine_type: Optional[pulumi.Input[str]] = None):
208
+ """
209
+ :param pulumi.Input[int] accelerator_count: The number of accelerators to attach to the machine.
210
+ :param pulumi.Input[str] accelerator_type: The type of accelerator(s) that may be attached to the machine as per accelerator_count. See possible values [here](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec#AcceleratorType).
211
+ :param pulumi.Input[str] machine_type: The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types).
212
+ """
213
+ if accelerator_count is not None:
214
+ pulumi.set(__self__, "accelerator_count", accelerator_count)
215
+ if accelerator_type is not None:
216
+ pulumi.set(__self__, "accelerator_type", accelerator_type)
217
+ if machine_type is not None:
218
+ pulumi.set(__self__, "machine_type", machine_type)
219
+
220
+ @property
221
+ @pulumi.getter(name="acceleratorCount")
222
+ def accelerator_count(self) -> Optional[pulumi.Input[int]]:
223
+ """
224
+ The number of accelerators to attach to the machine.
225
+ """
226
+ return pulumi.get(self, "accelerator_count")
227
+
228
+ @accelerator_count.setter
229
+ def accelerator_count(self, value: Optional[pulumi.Input[int]]):
230
+ pulumi.set(self, "accelerator_count", value)
231
+
232
+ @property
233
+ @pulumi.getter(name="acceleratorType")
234
+ def accelerator_type(self) -> Optional[pulumi.Input[str]]:
235
+ """
236
+ The type of accelerator(s) that may be attached to the machine as per accelerator_count. See possible values [here](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec#AcceleratorType).
237
+ """
238
+ return pulumi.get(self, "accelerator_type")
239
+
240
+ @accelerator_type.setter
241
+ def accelerator_type(self, value: Optional[pulumi.Input[str]]):
242
+ pulumi.set(self, "accelerator_type", value)
243
+
244
+ @property
245
+ @pulumi.getter(name="machineType")
246
+ def machine_type(self) -> Optional[pulumi.Input[str]]:
247
+ """
248
+ The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types).
249
+ """
250
+ return pulumi.get(self, "machine_type")
251
+
252
+ @machine_type.setter
253
+ def machine_type(self, value: Optional[pulumi.Input[str]]):
254
+ pulumi.set(self, "machine_type", value)
255
+
256
+
88
257
  @pulumi.input_type
89
258
  class AiEndpointDeployedModelArgs:
90
259
  def __init__(__self__, *,