pulumi-gcp 8.25.1__py3-none-any.whl → 8.26.0__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 (57) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +117 -0
  3. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
  4. pulumi_gcp/accesscontextmanager/outputs.py +95 -0
  5. pulumi_gcp/apigee/__init__.py +1 -0
  6. pulumi_gcp/apigee/control_plane_access.py +419 -0
  7. pulumi_gcp/clouddeploy/__init__.py +1 -0
  8. pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
  9. pulumi_gcp/clouddeploy/automation.py +64 -2
  10. pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
  11. pulumi_gcp/clouddeploy/outputs.py +1130 -5
  12. pulumi_gcp/cloudrunv2/service.py +2 -2
  13. pulumi_gcp/compute/_inputs.py +20 -0
  14. pulumi_gcp/compute/outputs.py +25 -0
  15. pulumi_gcp/compute/resource_policy.py +30 -0
  16. pulumi_gcp/datastream/_inputs.py +506 -0
  17. pulumi_gcp/datastream/outputs.py +376 -0
  18. pulumi_gcp/datastream/stream.py +0 -2
  19. pulumi_gcp/firebase/hosting_version.py +34 -14
  20. pulumi_gcp/folder/__init__.py +1 -0
  21. pulumi_gcp/folder/service_identity.py +340 -0
  22. pulumi_gcp/gemini/__init__.py +2 -0
  23. pulumi_gcp/gemini/_inputs.py +176 -0
  24. pulumi_gcp/gemini/code_tools_setting.py +601 -0
  25. pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
  26. pulumi_gcp/gemini/outputs.py +124 -0
  27. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  28. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
  29. pulumi_gcp/memorystore/_inputs.py +136 -0
  30. pulumi_gcp/memorystore/get_instance.py +12 -1
  31. pulumi_gcp/memorystore/instance.py +54 -0
  32. pulumi_gcp/memorystore/outputs.py +190 -0
  33. pulumi_gcp/netapp/_inputs.py +89 -3
  34. pulumi_gcp/netapp/outputs.py +75 -2
  35. pulumi_gcp/netapp/volume_replication.py +12 -2
  36. pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
  37. pulumi_gcp/osconfig/__init__.py +1 -0
  38. pulumi_gcp/osconfig/_inputs.py +5439 -0
  39. pulumi_gcp/osconfig/outputs.py +3978 -0
  40. pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1047 -0
  41. pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
  42. pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
  43. pulumi_gcp/parametermanager/outputs.py +11 -0
  44. pulumi_gcp/parametermanager/regional_parameter.py +78 -0
  45. pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
  46. pulumi_gcp/pulumi-plugin.json +1 -1
  47. pulumi_gcp/spanner/database.py +0 -34
  48. pulumi_gcp/storage/bucket_object.py +28 -0
  49. pulumi_gcp/storage/get_bucket_object.py +12 -1
  50. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  51. pulumi_gcp/workbench/_inputs.py +60 -0
  52. pulumi_gcp/workbench/instance.py +48 -0
  53. pulumi_gcp/workbench/outputs.py +55 -0
  54. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/METADATA +1 -1
  55. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/RECORD +57 -51
  56. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/WHEEL +0 -0
  57. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/top_level.txt +0 -0
@@ -329,6 +329,7 @@ class _BucketObjectState:
329
329
  generation: Optional[pulumi.Input[builtins.int]] = None,
330
330
  kms_key_name: Optional[pulumi.Input[builtins.str]] = None,
331
331
  md5hash: Optional[pulumi.Input[builtins.str]] = None,
332
+ md5hexhash: Optional[pulumi.Input[builtins.str]] = None,
332
333
  media_link: Optional[pulumi.Input[builtins.str]] = None,
333
334
  metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
334
335
  name: Optional[pulumi.Input[builtins.str]] = None,
@@ -355,6 +356,7 @@ class _BucketObjectState:
355
356
  :param pulumi.Input[builtins.int] generation: (Computed) The content generation of this object. Used for object [versioning](https://cloud.google.com/storage/docs/object-versioning) and [soft delete](https://cloud.google.com/storage/docs/soft-delete).
356
357
  :param pulumi.Input[builtins.str] kms_key_name: The resource name of the Cloud KMS key that will be used to [encrypt](https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys) the object.
357
358
  :param pulumi.Input[builtins.str] md5hash: (Computed) Base 64 MD5 hash of the uploaded data.
359
+ :param pulumi.Input[builtins.str] md5hexhash: Hex value of md5hash
358
360
  :param pulumi.Input[builtins.str] media_link: (Computed) A url reference to download this object.
359
361
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] metadata: User-provided metadata, in key/value pairs.
360
362
 
@@ -401,6 +403,8 @@ class _BucketObjectState:
401
403
  pulumi.set(__self__, "kms_key_name", kms_key_name)
402
404
  if md5hash is not None:
403
405
  pulumi.set(__self__, "md5hash", md5hash)
406
+ if md5hexhash is not None:
407
+ pulumi.set(__self__, "md5hexhash", md5hexhash)
404
408
  if media_link is not None:
405
409
  pulumi.set(__self__, "media_link", media_link)
406
410
  if metadata is not None:
@@ -587,6 +591,18 @@ class _BucketObjectState:
587
591
  def md5hash(self, value: Optional[pulumi.Input[builtins.str]]):
588
592
  pulumi.set(self, "md5hash", value)
589
593
 
594
+ @property
595
+ @pulumi.getter
596
+ def md5hexhash(self) -> Optional[pulumi.Input[builtins.str]]:
597
+ """
598
+ Hex value of md5hash
599
+ """
600
+ return pulumi.get(self, "md5hexhash")
601
+
602
+ @md5hexhash.setter
603
+ def md5hexhash(self, value: Optional[pulumi.Input[builtins.str]]):
604
+ pulumi.set(self, "md5hexhash", value)
605
+
590
606
  @property
591
607
  @pulumi.getter(name="mediaLink")
592
608
  def media_link(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -908,6 +924,7 @@ class BucketObject(pulumi.CustomResource):
908
924
  __props__.__dict__["crc32c"] = None
909
925
  __props__.__dict__["generation"] = None
910
926
  __props__.__dict__["md5hash"] = None
927
+ __props__.__dict__["md5hexhash"] = None
911
928
  __props__.__dict__["media_link"] = None
912
929
  __props__.__dict__["output_name"] = None
913
930
  __props__.__dict__["self_link"] = None
@@ -937,6 +954,7 @@ class BucketObject(pulumi.CustomResource):
937
954
  generation: Optional[pulumi.Input[builtins.int]] = None,
938
955
  kms_key_name: Optional[pulumi.Input[builtins.str]] = None,
939
956
  md5hash: Optional[pulumi.Input[builtins.str]] = None,
957
+ md5hexhash: Optional[pulumi.Input[builtins.str]] = None,
940
958
  media_link: Optional[pulumi.Input[builtins.str]] = None,
941
959
  metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
942
960
  name: Optional[pulumi.Input[builtins.str]] = None,
@@ -968,6 +986,7 @@ class BucketObject(pulumi.CustomResource):
968
986
  :param pulumi.Input[builtins.int] generation: (Computed) The content generation of this object. Used for object [versioning](https://cloud.google.com/storage/docs/object-versioning) and [soft delete](https://cloud.google.com/storage/docs/soft-delete).
969
987
  :param pulumi.Input[builtins.str] kms_key_name: The resource name of the Cloud KMS key that will be used to [encrypt](https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys) the object.
970
988
  :param pulumi.Input[builtins.str] md5hash: (Computed) Base 64 MD5 hash of the uploaded data.
989
+ :param pulumi.Input[builtins.str] md5hexhash: Hex value of md5hash
971
990
  :param pulumi.Input[builtins.str] media_link: (Computed) A url reference to download this object.
972
991
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] metadata: User-provided metadata, in key/value pairs.
973
992
 
@@ -1004,6 +1023,7 @@ class BucketObject(pulumi.CustomResource):
1004
1023
  __props__.__dict__["generation"] = generation
1005
1024
  __props__.__dict__["kms_key_name"] = kms_key_name
1006
1025
  __props__.__dict__["md5hash"] = md5hash
1026
+ __props__.__dict__["md5hexhash"] = md5hexhash
1007
1027
  __props__.__dict__["media_link"] = media_link
1008
1028
  __props__.__dict__["metadata"] = metadata
1009
1029
  __props__.__dict__["name"] = name
@@ -1126,6 +1146,14 @@ class BucketObject(pulumi.CustomResource):
1126
1146
  """
1127
1147
  return pulumi.get(self, "md5hash")
1128
1148
 
1149
+ @property
1150
+ @pulumi.getter
1151
+ def md5hexhash(self) -> pulumi.Output[builtins.str]:
1152
+ """
1153
+ Hex value of md5hash
1154
+ """
1155
+ return pulumi.get(self, "md5hexhash")
1156
+
1129
1157
  @property
1130
1158
  @pulumi.getter(name="mediaLink")
1131
1159
  def media_link(self) -> pulumi.Output[builtins.str]:
@@ -28,7 +28,7 @@ class GetBucketObjectResult:
28
28
  """
29
29
  A collection of values returned by getBucketObject.
30
30
  """
31
- def __init__(__self__, bucket=None, cache_control=None, content=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None, crc32c=None, customer_encryptions=None, detect_md5hash=None, event_based_hold=None, generation=None, id=None, kms_key_name=None, md5hash=None, media_link=None, metadata=None, name=None, output_name=None, retentions=None, self_link=None, source=None, storage_class=None, temporary_hold=None):
31
+ def __init__(__self__, bucket=None, cache_control=None, content=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None, crc32c=None, customer_encryptions=None, detect_md5hash=None, event_based_hold=None, generation=None, id=None, kms_key_name=None, md5hash=None, md5hexhash=None, media_link=None, metadata=None, name=None, output_name=None, retentions=None, self_link=None, source=None, storage_class=None, temporary_hold=None):
32
32
  if bucket and not isinstance(bucket, str):
33
33
  raise TypeError("Expected argument 'bucket' to be a str")
34
34
  pulumi.set(__self__, "bucket", bucket)
@@ -74,6 +74,9 @@ class GetBucketObjectResult:
74
74
  if md5hash and not isinstance(md5hash, str):
75
75
  raise TypeError("Expected argument 'md5hash' to be a str")
76
76
  pulumi.set(__self__, "md5hash", md5hash)
77
+ if md5hexhash and not isinstance(md5hexhash, str):
78
+ raise TypeError("Expected argument 'md5hexhash' to be a str")
79
+ pulumi.set(__self__, "md5hexhash", md5hexhash)
77
80
  if media_link and not isinstance(media_link, str):
78
81
  raise TypeError("Expected argument 'media_link' to be a str")
79
82
  pulumi.set(__self__, "media_link", media_link)
@@ -208,6 +211,11 @@ class GetBucketObjectResult:
208
211
  """
209
212
  return pulumi.get(self, "md5hash")
210
213
 
214
+ @property
215
+ @pulumi.getter
216
+ def md5hexhash(self) -> builtins.str:
217
+ return pulumi.get(self, "md5hexhash")
218
+
211
219
  @property
212
220
  @pulumi.getter(name="mediaLink")
213
221
  def media_link(self) -> builtins.str:
@@ -289,6 +297,7 @@ class AwaitableGetBucketObjectResult(GetBucketObjectResult):
289
297
  id=self.id,
290
298
  kms_key_name=self.kms_key_name,
291
299
  md5hash=self.md5hash,
300
+ md5hexhash=self.md5hexhash,
292
301
  media_link=self.media_link,
293
302
  metadata=self.metadata,
294
303
  name=self.name,
@@ -347,6 +356,7 @@ def get_bucket_object(bucket: Optional[builtins.str] = None,
347
356
  id=pulumi.get(__ret__, 'id'),
348
357
  kms_key_name=pulumi.get(__ret__, 'kms_key_name'),
349
358
  md5hash=pulumi.get(__ret__, 'md5hash'),
359
+ md5hexhash=pulumi.get(__ret__, 'md5hexhash'),
350
360
  media_link=pulumi.get(__ret__, 'media_link'),
351
361
  metadata=pulumi.get(__ret__, 'metadata'),
352
362
  name=pulumi.get(__ret__, 'name'),
@@ -402,6 +412,7 @@ def get_bucket_object_output(bucket: Optional[pulumi.Input[Optional[builtins.str
402
412
  id=pulumi.get(__response__, 'id'),
403
413
  kms_key_name=pulumi.get(__response__, 'kms_key_name'),
404
414
  md5hash=pulumi.get(__response__, 'md5hash'),
415
+ md5hexhash=pulumi.get(__response__, 'md5hexhash'),
405
416
  media_link=pulumi.get(__response__, 'media_link'),
406
417
  metadata=pulumi.get(__response__, 'metadata'),
407
418
  name=pulumi.get(__response__, 'name'),
@@ -28,7 +28,7 @@ class GetBucketObjectContentResult:
28
28
  """
29
29
  A collection of values returned by getBucketObjectContent.
30
30
  """
31
- def __init__(__self__, bucket=None, cache_control=None, content=None, content_base64=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None, crc32c=None, customer_encryptions=None, detect_md5hash=None, event_based_hold=None, generation=None, id=None, kms_key_name=None, md5hash=None, media_link=None, metadata=None, name=None, output_name=None, retentions=None, self_link=None, source=None, storage_class=None, temporary_hold=None):
31
+ def __init__(__self__, bucket=None, cache_control=None, content=None, content_base64=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None, crc32c=None, customer_encryptions=None, detect_md5hash=None, event_based_hold=None, generation=None, id=None, kms_key_name=None, md5hash=None, md5hexhash=None, media_link=None, metadata=None, name=None, output_name=None, retentions=None, self_link=None, source=None, storage_class=None, temporary_hold=None):
32
32
  if bucket and not isinstance(bucket, str):
33
33
  raise TypeError("Expected argument 'bucket' to be a str")
34
34
  pulumi.set(__self__, "bucket", bucket)
@@ -77,6 +77,9 @@ class GetBucketObjectContentResult:
77
77
  if md5hash and not isinstance(md5hash, str):
78
78
  raise TypeError("Expected argument 'md5hash' to be a str")
79
79
  pulumi.set(__self__, "md5hash", md5hash)
80
+ if md5hexhash and not isinstance(md5hexhash, str):
81
+ raise TypeError("Expected argument 'md5hexhash' to be a str")
82
+ pulumi.set(__self__, "md5hexhash", md5hexhash)
80
83
  if media_link and not isinstance(media_link, str):
81
84
  raise TypeError("Expected argument 'media_link' to be a str")
82
85
  pulumi.set(__self__, "media_link", media_link)
@@ -195,6 +198,11 @@ class GetBucketObjectContentResult:
195
198
  def md5hash(self) -> builtins.str:
196
199
  return pulumi.get(self, "md5hash")
197
200
 
201
+ @property
202
+ @pulumi.getter
203
+ def md5hexhash(self) -> builtins.str:
204
+ return pulumi.get(self, "md5hexhash")
205
+
198
206
  @property
199
207
  @pulumi.getter(name="mediaLink")
200
208
  def media_link(self) -> builtins.str:
@@ -263,6 +271,7 @@ class AwaitableGetBucketObjectContentResult(GetBucketObjectContentResult):
263
271
  id=self.id,
264
272
  kms_key_name=self.kms_key_name,
265
273
  md5hash=self.md5hash,
274
+ md5hexhash=self.md5hexhash,
266
275
  media_link=self.media_link,
267
276
  metadata=self.metadata,
268
277
  name=self.name,
@@ -328,6 +337,7 @@ def get_bucket_object_content(bucket: Optional[builtins.str] = None,
328
337
  id=pulumi.get(__ret__, 'id'),
329
338
  kms_key_name=pulumi.get(__ret__, 'kms_key_name'),
330
339
  md5hash=pulumi.get(__ret__, 'md5hash'),
340
+ md5hexhash=pulumi.get(__ret__, 'md5hexhash'),
331
341
  media_link=pulumi.get(__ret__, 'media_link'),
332
342
  metadata=pulumi.get(__ret__, 'metadata'),
333
343
  name=pulumi.get(__ret__, 'name'),
@@ -390,6 +400,7 @@ def get_bucket_object_content_output(bucket: Optional[pulumi.Input[builtins.str]
390
400
  id=pulumi.get(__response__, 'id'),
391
401
  kms_key_name=pulumi.get(__response__, 'kms_key_name'),
392
402
  md5hash=pulumi.get(__response__, 'md5hash'),
403
+ md5hexhash=pulumi.get(__response__, 'md5hexhash'),
393
404
  media_link=pulumi.get(__response__, 'media_link'),
394
405
  metadata=pulumi.get(__response__, 'metadata'),
395
406
  name=pulumi.get(__response__, 'name'),
@@ -22,6 +22,8 @@ __all__ = [
22
22
  'InstanceGceSetupAcceleratorConfigArgsDict',
23
23
  'InstanceGceSetupBootDiskArgs',
24
24
  'InstanceGceSetupBootDiskArgsDict',
25
+ 'InstanceGceSetupConfidentialInstanceConfigArgs',
26
+ 'InstanceGceSetupConfidentialInstanceConfigArgsDict',
25
27
  'InstanceGceSetupContainerImageArgs',
26
28
  'InstanceGceSetupContainerImageArgsDict',
27
29
  'InstanceGceSetupDataDisksArgs',
@@ -62,6 +64,11 @@ if not MYPY:
62
64
  The definition of a boot disk.
63
65
  Structure is documented below.
64
66
  """
67
+ confidential_instance_config: NotRequired[pulumi.Input['InstanceGceSetupConfidentialInstanceConfigArgsDict']]
68
+ """
69
+ Confidential instance configuration.
70
+ Structure is documented below.
71
+ """
65
72
  container_image: NotRequired[pulumi.Input['InstanceGceSetupContainerImageArgsDict']]
66
73
  """
67
74
  Use a container image to start the workbench instance.
@@ -125,6 +132,7 @@ class InstanceGceSetupArgs:
125
132
  def __init__(__self__, *,
126
133
  accelerator_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupAcceleratorConfigArgs']]]] = None,
127
134
  boot_disk: Optional[pulumi.Input['InstanceGceSetupBootDiskArgs']] = None,
135
+ confidential_instance_config: Optional[pulumi.Input['InstanceGceSetupConfidentialInstanceConfigArgs']] = None,
128
136
  container_image: Optional[pulumi.Input['InstanceGceSetupContainerImageArgs']] = None,
129
137
  data_disks: Optional[pulumi.Input['InstanceGceSetupDataDisksArgs']] = None,
130
138
  disable_public_ip: Optional[pulumi.Input[builtins.bool]] = None,
@@ -143,6 +151,8 @@ class InstanceGceSetupArgs:
143
151
  Structure is documented below.
144
152
  :param pulumi.Input['InstanceGceSetupBootDiskArgs'] boot_disk: The definition of a boot disk.
145
153
  Structure is documented below.
154
+ :param pulumi.Input['InstanceGceSetupConfidentialInstanceConfigArgs'] confidential_instance_config: Confidential instance configuration.
155
+ Structure is documented below.
146
156
  :param pulumi.Input['InstanceGceSetupContainerImageArgs'] container_image: Use a container image to start the workbench instance.
147
157
  Structure is documented below.
148
158
  :param pulumi.Input['InstanceGceSetupDataDisksArgs'] data_disks: Data disks attached to the VM instance. Currently supports only one data disk.
@@ -170,6 +180,8 @@ class InstanceGceSetupArgs:
170
180
  pulumi.set(__self__, "accelerator_configs", accelerator_configs)
171
181
  if boot_disk is not None:
172
182
  pulumi.set(__self__, "boot_disk", boot_disk)
183
+ if confidential_instance_config is not None:
184
+ pulumi.set(__self__, "confidential_instance_config", confidential_instance_config)
173
185
  if container_image is not None:
174
186
  pulumi.set(__self__, "container_image", container_image)
175
187
  if data_disks is not None:
@@ -221,6 +233,19 @@ class InstanceGceSetupArgs:
221
233
  def boot_disk(self, value: Optional[pulumi.Input['InstanceGceSetupBootDiskArgs']]):
222
234
  pulumi.set(self, "boot_disk", value)
223
235
 
236
+ @property
237
+ @pulumi.getter(name="confidentialInstanceConfig")
238
+ def confidential_instance_config(self) -> Optional[pulumi.Input['InstanceGceSetupConfidentialInstanceConfigArgs']]:
239
+ """
240
+ Confidential instance configuration.
241
+ Structure is documented below.
242
+ """
243
+ return pulumi.get(self, "confidential_instance_config")
244
+
245
+ @confidential_instance_config.setter
246
+ def confidential_instance_config(self, value: Optional[pulumi.Input['InstanceGceSetupConfidentialInstanceConfigArgs']]):
247
+ pulumi.set(self, "confidential_instance_config", value)
248
+
224
249
  @property
225
250
  @pulumi.getter(name="containerImage")
226
251
  def container_image(self) -> Optional[pulumi.Input['InstanceGceSetupContainerImageArgs']]:
@@ -533,6 +558,41 @@ class InstanceGceSetupBootDiskArgs:
533
558
  pulumi.set(self, "kms_key", value)
534
559
 
535
560
 
561
+ if not MYPY:
562
+ class InstanceGceSetupConfidentialInstanceConfigArgsDict(TypedDict):
563
+ confidential_instance_type: NotRequired[pulumi.Input[builtins.str]]
564
+ """
565
+ Defines the type of technology used by the confidential instance.
566
+ Possible values are: `SEV`.
567
+ """
568
+ elif False:
569
+ InstanceGceSetupConfidentialInstanceConfigArgsDict: TypeAlias = Mapping[str, Any]
570
+
571
+ @pulumi.input_type
572
+ class InstanceGceSetupConfidentialInstanceConfigArgs:
573
+ def __init__(__self__, *,
574
+ confidential_instance_type: Optional[pulumi.Input[builtins.str]] = None):
575
+ """
576
+ :param pulumi.Input[builtins.str] confidential_instance_type: Defines the type of technology used by the confidential instance.
577
+ Possible values are: `SEV`.
578
+ """
579
+ if confidential_instance_type is not None:
580
+ pulumi.set(__self__, "confidential_instance_type", confidential_instance_type)
581
+
582
+ @property
583
+ @pulumi.getter(name="confidentialInstanceType")
584
+ def confidential_instance_type(self) -> Optional[pulumi.Input[builtins.str]]:
585
+ """
586
+ Defines the type of technology used by the confidential instance.
587
+ Possible values are: `SEV`.
588
+ """
589
+ return pulumi.get(self, "confidential_instance_type")
590
+
591
+ @confidential_instance_type.setter
592
+ def confidential_instance_type(self, value: Optional[pulumi.Input[builtins.str]]):
593
+ pulumi.set(self, "confidential_instance_type", value)
594
+
595
+
536
596
  if not MYPY:
537
597
  class InstanceGceSetupContainerImageArgsDict(TypedDict):
538
598
  repository: pulumi.Input[builtins.str]
@@ -766,6 +766,30 @@ class Instance(pulumi.CustomResource):
766
766
  act_as_permission,
767
767
  ]))
768
768
  ```
769
+ ### Workbench Instance Confidential Compute
770
+
771
+ ```python
772
+ import pulumi
773
+ import pulumi_gcp as gcp
774
+
775
+ instance = gcp.workbench.Instance("instance",
776
+ name="workbench-instance",
777
+ location="us-central1-a",
778
+ gce_setup={
779
+ "machine_type": "n2d-standard-2",
780
+ "shielded_instance_config": {
781
+ "enable_secure_boot": True,
782
+ "enable_vtpm": True,
783
+ "enable_integrity_monitoring": True,
784
+ },
785
+ "metadata": {
786
+ "terraform": "true",
787
+ },
788
+ "confidential_instance_config": {
789
+ "confidential_instance_type": "SEV",
790
+ },
791
+ })
792
+ ```
769
793
 
770
794
  ## Import
771
795
 
@@ -990,6 +1014,30 @@ class Instance(pulumi.CustomResource):
990
1014
  act_as_permission,
991
1015
  ]))
992
1016
  ```
1017
+ ### Workbench Instance Confidential Compute
1018
+
1019
+ ```python
1020
+ import pulumi
1021
+ import pulumi_gcp as gcp
1022
+
1023
+ instance = gcp.workbench.Instance("instance",
1024
+ name="workbench-instance",
1025
+ location="us-central1-a",
1026
+ gce_setup={
1027
+ "machine_type": "n2d-standard-2",
1028
+ "shielded_instance_config": {
1029
+ "enable_secure_boot": True,
1030
+ "enable_vtpm": True,
1031
+ "enable_integrity_monitoring": True,
1032
+ },
1033
+ "metadata": {
1034
+ "terraform": "true",
1035
+ },
1036
+ "confidential_instance_config": {
1037
+ "confidential_instance_type": "SEV",
1038
+ },
1039
+ })
1040
+ ```
993
1041
 
994
1042
  ## Import
995
1043
 
@@ -20,6 +20,7 @@ __all__ = [
20
20
  'InstanceGceSetup',
21
21
  'InstanceGceSetupAcceleratorConfig',
22
22
  'InstanceGceSetupBootDisk',
23
+ 'InstanceGceSetupConfidentialInstanceConfig',
23
24
  'InstanceGceSetupContainerImage',
24
25
  'InstanceGceSetupDataDisks',
25
26
  'InstanceGceSetupNetworkInterface',
@@ -42,6 +43,8 @@ class InstanceGceSetup(dict):
42
43
  suggest = "accelerator_configs"
43
44
  elif key == "bootDisk":
44
45
  suggest = "boot_disk"
46
+ elif key == "confidentialInstanceConfig":
47
+ suggest = "confidential_instance_config"
45
48
  elif key == "containerImage":
46
49
  suggest = "container_image"
47
50
  elif key == "dataDisks":
@@ -75,6 +78,7 @@ class InstanceGceSetup(dict):
75
78
  def __init__(__self__, *,
76
79
  accelerator_configs: Optional[Sequence['outputs.InstanceGceSetupAcceleratorConfig']] = None,
77
80
  boot_disk: Optional['outputs.InstanceGceSetupBootDisk'] = None,
81
+ confidential_instance_config: Optional['outputs.InstanceGceSetupConfidentialInstanceConfig'] = None,
78
82
  container_image: Optional['outputs.InstanceGceSetupContainerImage'] = None,
79
83
  data_disks: Optional['outputs.InstanceGceSetupDataDisks'] = None,
80
84
  disable_public_ip: Optional[builtins.bool] = None,
@@ -93,6 +97,8 @@ class InstanceGceSetup(dict):
93
97
  Structure is documented below.
94
98
  :param 'InstanceGceSetupBootDiskArgs' boot_disk: The definition of a boot disk.
95
99
  Structure is documented below.
100
+ :param 'InstanceGceSetupConfidentialInstanceConfigArgs' confidential_instance_config: Confidential instance configuration.
101
+ Structure is documented below.
96
102
  :param 'InstanceGceSetupContainerImageArgs' container_image: Use a container image to start the workbench instance.
97
103
  Structure is documented below.
98
104
  :param 'InstanceGceSetupDataDisksArgs' data_disks: Data disks attached to the VM instance. Currently supports only one data disk.
@@ -120,6 +126,8 @@ class InstanceGceSetup(dict):
120
126
  pulumi.set(__self__, "accelerator_configs", accelerator_configs)
121
127
  if boot_disk is not None:
122
128
  pulumi.set(__self__, "boot_disk", boot_disk)
129
+ if confidential_instance_config is not None:
130
+ pulumi.set(__self__, "confidential_instance_config", confidential_instance_config)
123
131
  if container_image is not None:
124
132
  pulumi.set(__self__, "container_image", container_image)
125
133
  if data_disks is not None:
@@ -163,6 +171,15 @@ class InstanceGceSetup(dict):
163
171
  """
164
172
  return pulumi.get(self, "boot_disk")
165
173
 
174
+ @property
175
+ @pulumi.getter(name="confidentialInstanceConfig")
176
+ def confidential_instance_config(self) -> Optional['outputs.InstanceGceSetupConfidentialInstanceConfig']:
177
+ """
178
+ Confidential instance configuration.
179
+ Structure is documented below.
180
+ """
181
+ return pulumi.get(self, "confidential_instance_config")
182
+
166
183
  @property
167
184
  @pulumi.getter(name="containerImage")
168
185
  def container_image(self) -> Optional['outputs.InstanceGceSetupContainerImage']:
@@ -405,6 +422,44 @@ class InstanceGceSetupBootDisk(dict):
405
422
  return pulumi.get(self, "kms_key")
406
423
 
407
424
 
425
+ @pulumi.output_type
426
+ class InstanceGceSetupConfidentialInstanceConfig(dict):
427
+ @staticmethod
428
+ def __key_warning(key: str):
429
+ suggest = None
430
+ if key == "confidentialInstanceType":
431
+ suggest = "confidential_instance_type"
432
+
433
+ if suggest:
434
+ pulumi.log.warn(f"Key '{key}' not found in InstanceGceSetupConfidentialInstanceConfig. Access the value via the '{suggest}' property getter instead.")
435
+
436
+ def __getitem__(self, key: str) -> Any:
437
+ InstanceGceSetupConfidentialInstanceConfig.__key_warning(key)
438
+ return super().__getitem__(key)
439
+
440
+ def get(self, key: str, default = None) -> Any:
441
+ InstanceGceSetupConfidentialInstanceConfig.__key_warning(key)
442
+ return super().get(key, default)
443
+
444
+ def __init__(__self__, *,
445
+ confidential_instance_type: Optional[builtins.str] = None):
446
+ """
447
+ :param builtins.str confidential_instance_type: Defines the type of technology used by the confidential instance.
448
+ Possible values are: `SEV`.
449
+ """
450
+ if confidential_instance_type is not None:
451
+ pulumi.set(__self__, "confidential_instance_type", confidential_instance_type)
452
+
453
+ @property
454
+ @pulumi.getter(name="confidentialInstanceType")
455
+ def confidential_instance_type(self) -> Optional[builtins.str]:
456
+ """
457
+ Defines the type of technology used by the confidential instance.
458
+ Possible values are: `SEV`.
459
+ """
460
+ return pulumi.get(self, "confidential_instance_type")
461
+
462
+
408
463
  @pulumi.output_type
409
464
  class InstanceGceSetupContainerImage(dict):
410
465
  def __init__(__self__, *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulumi_gcp
3
- Version: 8.25.1
3
+ Version: 8.26.0
4
4
  Summary: A Pulumi package for creating and managing Google Cloud Platform resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io