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.
- pulumi_gcp/__init__.py +27 -0
- pulumi_gcp/apphub/__init__.py +1 -0
- pulumi_gcp/apphub/get_application.py +220 -0
- pulumi_gcp/apphub/outputs.py +214 -0
- pulumi_gcp/applicationintegration/__init__.py +10 -0
- pulumi_gcp/applicationintegration/_inputs.py +119 -0
- pulumi_gcp/applicationintegration/client.py +566 -0
- pulumi_gcp/applicationintegration/outputs.py +122 -0
- pulumi_gcp/bigquery/_inputs.py +16 -0
- pulumi_gcp/bigquery/outputs.py +14 -0
- pulumi_gcp/bigquery/routine.py +98 -0
- pulumi_gcp/billing/project_info.py +4 -4
- pulumi_gcp/cloudquota/__init__.py +2 -0
- pulumi_gcp/cloudquota/_inputs.py +131 -0
- pulumi_gcp/cloudquota/outputs.py +118 -0
- pulumi_gcp/cloudquota/s_quota_preference.py +777 -0
- pulumi_gcp/compute/interconnect_attachment.py +64 -0
- pulumi_gcp/compute/network_endpoint.py +8 -0
- pulumi_gcp/compute/network_endpoint_list.py +8 -0
- pulumi_gcp/compute/region_backend_service.py +28 -0
- pulumi_gcp/compute/target_instance.py +4 -4
- pulumi_gcp/config/__init__.pyi +2 -0
- pulumi_gcp/config/vars.py +4 -0
- pulumi_gcp/databasemigrationservice/connection_profile.py +6 -6
- pulumi_gcp/dataflow/flex_template_job.py +84 -112
- pulumi_gcp/dataplex/task.py +16 -16
- pulumi_gcp/dataproc/_inputs.py +71 -0
- pulumi_gcp/dataproc/get_metastore_service.py +11 -1
- pulumi_gcp/dataproc/metastore_service.py +120 -0
- pulumi_gcp/dataproc/outputs.py +128 -0
- pulumi_gcp/firebase/app_check_service_config.py +2 -2
- pulumi_gcp/firestore/backup_schedule.py +14 -14
- pulumi_gcp/firestore/field.py +4 -4
- pulumi_gcp/gkehub/membership_binding.py +6 -6
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
- pulumi_gcp/gkehub/namespace.py +4 -4
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
- pulumi_gcp/iap/tunnel_dest_group.py +2 -2
- pulumi_gcp/kms/_inputs.py +46 -0
- pulumi_gcp/kms/crypto_key.py +54 -0
- pulumi_gcp/kms/crypto_key_version.py +54 -0
- pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
- pulumi_gcp/kms/outputs.py +54 -0
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/pubsub/subscription.py +4 -4
- pulumi_gcp/vertex/__init__.py +1 -0
- pulumi_gcp/vertex/_inputs.py +169 -0
- pulumi_gcp/vertex/ai_deployment_resource_pool.py +477 -0
- pulumi_gcp/vertex/outputs.py +194 -0
- pulumi_gcp/vpcaccess/connector.py +77 -28
- {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/RECORD +55 -47
- {pulumi_gcp-7.17.0a1712402830.dist-info → pulumi_gcp-7.17.0a1712602552.dist-info}/WHEEL +0 -0
- {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
|
pulumi_gcp/orgpolicy/policy.py
CHANGED
@@ -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.
|
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.
|
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="-
|
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="-
|
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="-
|
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="-
|
1424
|
+
filename_suffix="-_34535",
|
1425
1425
|
max_bytes=1000,
|
1426
1426
|
max_duration="300s",
|
1427
1427
|
avro_config=gcp.pubsub.SubscriptionCloudStorageConfigAvroConfigArgs(
|
pulumi_gcp/vertex/__init__.py
CHANGED
@@ -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 *
|
pulumi_gcp/vertex/_inputs.py
CHANGED
@@ -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__, *,
|