pulumi-gcp 8.21.0a1741156431__py3-none-any.whl → 8.22.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 (110) hide show
  1. pulumi_gcp/__init__.py +96 -0
  2. pulumi_gcp/alloydb/_inputs.py +66 -0
  3. pulumi_gcp/alloydb/cluster.py +148 -0
  4. pulumi_gcp/alloydb/instance.py +28 -28
  5. pulumi_gcp/alloydb/outputs.py +95 -0
  6. pulumi_gcp/apihub/__init__.py +1 -0
  7. pulumi_gcp/apihub/host_project_registration.py +535 -0
  8. pulumi_gcp/backupdisasterrecovery/_inputs.py +3 -3
  9. pulumi_gcp/backupdisasterrecovery/outputs.py +4 -4
  10. pulumi_gcp/bigquery/table.py +1 -1
  11. pulumi_gcp/certificatemanager/certificate.py +53 -7
  12. pulumi_gcp/certificatemanager/outputs.py +8 -2
  13. pulumi_gcp/compute/__init__.py +6 -0
  14. pulumi_gcp/compute/_inputs.py +1370 -17
  15. pulumi_gcp/compute/backend_service.py +209 -14
  16. pulumi_gcp/compute/ca_external_account_key.py +48 -3
  17. pulumi_gcp/compute/disk.py +403 -0
  18. pulumi_gcp/compute/firewall_policy_association.py +28 -2
  19. pulumi_gcp/compute/get_backend_service.py +12 -1
  20. pulumi_gcp/compute/get_disk.py +78 -1
  21. pulumi_gcp/compute/get_instant_snapshot_iam_policy.py +182 -0
  22. pulumi_gcp/compute/get_region_disk.py +23 -1
  23. pulumi_gcp/compute/get_region_ssl_policy.py +203 -0
  24. pulumi_gcp/compute/instant_snapshot.py +796 -0
  25. pulumi_gcp/compute/instant_snapshot_iam_binding.py +1087 -0
  26. pulumi_gcp/compute/instant_snapshot_iam_member.py +1087 -0
  27. pulumi_gcp/compute/instant_snapshot_iam_policy.py +906 -0
  28. pulumi_gcp/compute/outputs.py +1952 -29
  29. pulumi_gcp/compute/region_backend_service.py +207 -14
  30. pulumi_gcp/compute/region_disk.py +114 -0
  31. pulumi_gcp/compute/route.py +228 -2
  32. pulumi_gcp/compute/shared_vpc_service_project.py +0 -4
  33. pulumi_gcp/compute/subnetwork.py +147 -0
  34. pulumi_gcp/compute/url_map.py +8 -0
  35. pulumi_gcp/container/_inputs.py +6 -6
  36. pulumi_gcp/container/outputs.py +8 -8
  37. pulumi_gcp/datacatalog/entry.py +4 -0
  38. pulumi_gcp/datacatalog/tag.py +4 -0
  39. pulumi_gcp/dataproc/_inputs.py +12 -15
  40. pulumi_gcp/dataproc/outputs.py +8 -10
  41. pulumi_gcp/datastream/_inputs.py +273 -0
  42. pulumi_gcp/datastream/connection_profile.py +54 -2
  43. pulumi_gcp/datastream/outputs.py +224 -0
  44. pulumi_gcp/discoveryengine/target_site.py +4 -4
  45. pulumi_gcp/eventarc/__init__.py +2 -0
  46. pulumi_gcp/eventarc/_inputs.py +80 -0
  47. pulumi_gcp/eventarc/channel.py +85 -93
  48. pulumi_gcp/eventarc/google_api_source.py +997 -0
  49. pulumi_gcp/eventarc/message_bus.py +927 -0
  50. pulumi_gcp/eventarc/outputs.py +82 -0
  51. pulumi_gcp/firebase/data_connect_service.py +40 -2
  52. pulumi_gcp/gemini/__init__.py +1 -0
  53. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +20 -8
  54. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +6 -0
  55. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +734 -0
  56. pulumi_gcp/gemini/logging_setting_binding.py +7 -7
  57. pulumi_gcp/iam/__init__.py +2 -0
  58. pulumi_gcp/iam/_inputs.py +84 -27
  59. pulumi_gcp/iam/folders_policy_binding.py +10 -26
  60. pulumi_gcp/iam/oauth_client.py +979 -0
  61. pulumi_gcp/iam/oauth_client_credential.py +641 -0
  62. pulumi_gcp/iam/organizations_policy_binding.py +8 -24
  63. pulumi_gcp/iam/outputs.py +56 -18
  64. pulumi_gcp/iam/principal_access_boundary_policy.py +58 -22
  65. pulumi_gcp/iam/projects_policy_binding.py +8 -24
  66. pulumi_gcp/iam/workforce_pool_provider.py +2 -2
  67. pulumi_gcp/kms/crypto_key_version.py +14 -7
  68. pulumi_gcp/memorystore/__init__.py +1 -0
  69. pulumi_gcp/memorystore/get_instance.py +425 -0
  70. pulumi_gcp/memorystore/outputs.py +582 -0
  71. pulumi_gcp/monitoring/_inputs.py +15 -18
  72. pulumi_gcp/monitoring/alert_policy.py +46 -0
  73. pulumi_gcp/monitoring/outputs.py +10 -12
  74. pulumi_gcp/networkconnectivity/hub.py +84 -0
  75. pulumi_gcp/networksecurity/__init__.py +1 -0
  76. pulumi_gcp/networksecurity/_inputs.py +30 -18
  77. pulumi_gcp/networksecurity/backend_authentication_config.py +847 -0
  78. pulumi_gcp/networksecurity/intercept_deployment.py +178 -94
  79. pulumi_gcp/networksecurity/intercept_deployment_group.py +161 -77
  80. pulumi_gcp/networksecurity/intercept_endpoint_group.py +161 -66
  81. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +137 -80
  82. pulumi_gcp/networksecurity/mirroring_deployment.py +178 -94
  83. pulumi_gcp/networksecurity/mirroring_deployment_group.py +161 -77
  84. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +161 -80
  85. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +137 -105
  86. pulumi_gcp/networksecurity/outputs.py +20 -12
  87. pulumi_gcp/networkservices/endpoint_policy.py +12 -0
  88. pulumi_gcp/networkservices/grpc_route.py +128 -12
  89. pulumi_gcp/networkservices/http_route.py +16 -0
  90. pulumi_gcp/networkservices/mesh.py +16 -0
  91. pulumi_gcp/networkservices/service_binding.py +14 -0
  92. pulumi_gcp/networkservices/tcp_route.py +16 -0
  93. pulumi_gcp/networkservices/tls_route.py +12 -0
  94. pulumi_gcp/notebooks/location.py +4 -0
  95. pulumi_gcp/pulumi-plugin.json +1 -1
  96. pulumi_gcp/storage/__init__.py +1 -0
  97. pulumi_gcp/storage/_inputs.py +74 -0
  98. pulumi_gcp/storage/anywhere_cache.py +552 -0
  99. pulumi_gcp/storage/outputs.py +65 -0
  100. pulumi_gcp/storage/transfer_job.py +67 -0
  101. pulumi_gcp/tpu/_inputs.py +21 -1
  102. pulumi_gcp/tpu/outputs.py +13 -1
  103. pulumi_gcp/tpu/v2_vm.py +2 -0
  104. pulumi_gcp/vmwareengine/_inputs.py +6 -0
  105. pulumi_gcp/vmwareengine/outputs.py +8 -0
  106. pulumi_gcp/workstations/workstation_cluster.py +137 -1
  107. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/METADATA +1 -1
  108. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/RECORD +110 -95
  109. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/WHEEL +1 -1
  110. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/top_level.txt +0 -0
@@ -22,7 +22,10 @@ __all__ = ['DiskArgs', 'Disk']
22
22
  class DiskArgs:
23
23
  def __init__(__self__, *,
24
24
  access_mode: Optional[pulumi.Input[str]] = None,
25
+ architecture: Optional[pulumi.Input[str]] = None,
25
26
  async_primary_disk: Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']] = None,
27
+ create_snapshot_before_destroy: Optional[pulumi.Input[bool]] = None,
28
+ create_snapshot_before_destroy_prefix: Optional[pulumi.Input[str]] = None,
26
29
  description: Optional[pulumi.Input[str]] = None,
27
30
  disk_encryption_key: Optional[pulumi.Input['DiskDiskEncryptionKeyArgs']] = None,
28
31
  enable_confidential_compute: Optional[pulumi.Input[bool]] = None,
@@ -33,6 +36,7 @@ class DiskArgs:
33
36
  licenses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
34
37
  multi_writer: Optional[pulumi.Input[bool]] = None,
35
38
  name: Optional[pulumi.Input[str]] = None,
39
+ params: Optional[pulumi.Input['DiskParamsArgs']] = None,
36
40
  physical_block_size_bytes: Optional[pulumi.Input[int]] = None,
37
41
  project: Optional[pulumi.Input[str]] = None,
38
42
  provisioned_iops: Optional[pulumi.Input[int]] = None,
@@ -42,7 +46,9 @@ class DiskArgs:
42
46
  snapshot: Optional[pulumi.Input[str]] = None,
43
47
  source_disk: Optional[pulumi.Input[str]] = None,
44
48
  source_image_encryption_key: Optional[pulumi.Input['DiskSourceImageEncryptionKeyArgs']] = None,
49
+ source_instant_snapshot: Optional[pulumi.Input[str]] = None,
45
50
  source_snapshot_encryption_key: Optional[pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs']] = None,
51
+ source_storage_object: Optional[pulumi.Input[str]] = None,
46
52
  storage_pool: Optional[pulumi.Input[str]] = None,
47
53
  type: Optional[pulumi.Input[str]] = None,
48
54
  zone: Optional[pulumi.Input[str]] = None):
@@ -53,8 +59,13 @@ class DiskArgs:
53
59
  * READ_WRITE_SINGLE
54
60
  * READ_WRITE_MANY
55
61
  * READ_ONLY_SINGLE
62
+ :param pulumi.Input[str] architecture: (Optional)
56
63
  :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource.
57
64
  Structure is documented below.
65
+ :param pulumi.Input[bool] create_snapshot_before_destroy: If set to true, a snapshot of the disk will be created before it is destroyed.
66
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
67
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
68
+ :param pulumi.Input[str] create_snapshot_before_destroy_prefix: This will set a custom name prefix for the snapshot that's created when the disk is deleted.
58
69
  :param pulumi.Input[str] description: An optional description of this resource. Provide this property when
59
70
  you create the resource.
60
71
  :param pulumi.Input['DiskDiskEncryptionKeyArgs'] disk_encryption_key: Encrypts the disk using a customer-supplied encryption key.
@@ -100,6 +111,8 @@ class DiskArgs:
100
111
 
101
112
 
102
113
  - - -
114
+ :param pulumi.Input['DiskParamsArgs'] params: Additional params passed with the request, but not persisted as part of resource payload
115
+ Structure is documented below.
103
116
  :param pulumi.Input[int] physical_block_size_bytes: Physical block size of the persistent disk, in bytes. If not present
104
117
  in a request, a default value is used. Currently supported sizes
105
118
  are 4096 and 16384, other sizes may be added in the future.
@@ -148,10 +161,20 @@ class DiskArgs:
148
161
  :param pulumi.Input['DiskSourceImageEncryptionKeyArgs'] source_image_encryption_key: The customer-supplied encryption key of the source image. Required if
149
162
  the source image is protected by a customer-supplied encryption key.
150
163
  Structure is documented below.
164
+ :param pulumi.Input[str] source_instant_snapshot: The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
165
+ For example, the following are valid values:
166
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
167
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
168
+ * `zones/zone/instantSnapshots/instantSnapshot`
151
169
  :param pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs'] source_snapshot_encryption_key: The customer-supplied encryption key of the source snapshot. Required
152
170
  if the source snapshot is protected by a customer-supplied encryption
153
171
  key.
154
172
  Structure is documented below.
173
+ :param pulumi.Input[str] source_storage_object: The full Google Cloud Storage URI where the disk image is stored.
174
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
175
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
176
+ This flag is not optimized for creating multiple disks from a source storage object.
177
+ To create many disks from a source storage object, use gcloud compute images import instead.
155
178
  :param pulumi.Input[str] storage_pool: The URL or the name of the storage pool in which the new disk is created.
156
179
  For example:
157
180
  * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
@@ -164,8 +187,14 @@ class DiskArgs:
164
187
  """
165
188
  if access_mode is not None:
166
189
  pulumi.set(__self__, "access_mode", access_mode)
190
+ if architecture is not None:
191
+ pulumi.set(__self__, "architecture", architecture)
167
192
  if async_primary_disk is not None:
168
193
  pulumi.set(__self__, "async_primary_disk", async_primary_disk)
194
+ if create_snapshot_before_destroy is not None:
195
+ pulumi.set(__self__, "create_snapshot_before_destroy", create_snapshot_before_destroy)
196
+ if create_snapshot_before_destroy_prefix is not None:
197
+ pulumi.set(__self__, "create_snapshot_before_destroy_prefix", create_snapshot_before_destroy_prefix)
169
198
  if description is not None:
170
199
  pulumi.set(__self__, "description", description)
171
200
  if disk_encryption_key is not None:
@@ -189,6 +218,8 @@ class DiskArgs:
189
218
  pulumi.set(__self__, "multi_writer", multi_writer)
190
219
  if name is not None:
191
220
  pulumi.set(__self__, "name", name)
221
+ if params is not None:
222
+ pulumi.set(__self__, "params", params)
192
223
  if physical_block_size_bytes is not None:
193
224
  pulumi.set(__self__, "physical_block_size_bytes", physical_block_size_bytes)
194
225
  if project is not None:
@@ -207,8 +238,12 @@ class DiskArgs:
207
238
  pulumi.set(__self__, "source_disk", source_disk)
208
239
  if source_image_encryption_key is not None:
209
240
  pulumi.set(__self__, "source_image_encryption_key", source_image_encryption_key)
241
+ if source_instant_snapshot is not None:
242
+ pulumi.set(__self__, "source_instant_snapshot", source_instant_snapshot)
210
243
  if source_snapshot_encryption_key is not None:
211
244
  pulumi.set(__self__, "source_snapshot_encryption_key", source_snapshot_encryption_key)
245
+ if source_storage_object is not None:
246
+ pulumi.set(__self__, "source_storage_object", source_storage_object)
212
247
  if storage_pool is not None:
213
248
  pulumi.set(__self__, "storage_pool", storage_pool)
214
249
  if type is not None:
@@ -232,6 +267,18 @@ class DiskArgs:
232
267
  def access_mode(self, value: Optional[pulumi.Input[str]]):
233
268
  pulumi.set(self, "access_mode", value)
234
269
 
270
+ @property
271
+ @pulumi.getter
272
+ def architecture(self) -> Optional[pulumi.Input[str]]:
273
+ """
274
+ (Optional)
275
+ """
276
+ return pulumi.get(self, "architecture")
277
+
278
+ @architecture.setter
279
+ def architecture(self, value: Optional[pulumi.Input[str]]):
280
+ pulumi.set(self, "architecture", value)
281
+
235
282
  @property
236
283
  @pulumi.getter(name="asyncPrimaryDisk")
237
284
  def async_primary_disk(self) -> Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']]:
@@ -245,6 +292,32 @@ class DiskArgs:
245
292
  def async_primary_disk(self, value: Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']]):
246
293
  pulumi.set(self, "async_primary_disk", value)
247
294
 
295
+ @property
296
+ @pulumi.getter(name="createSnapshotBeforeDestroy")
297
+ def create_snapshot_before_destroy(self) -> Optional[pulumi.Input[bool]]:
298
+ """
299
+ If set to true, a snapshot of the disk will be created before it is destroyed.
300
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
301
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
302
+ """
303
+ return pulumi.get(self, "create_snapshot_before_destroy")
304
+
305
+ @create_snapshot_before_destroy.setter
306
+ def create_snapshot_before_destroy(self, value: Optional[pulumi.Input[bool]]):
307
+ pulumi.set(self, "create_snapshot_before_destroy", value)
308
+
309
+ @property
310
+ @pulumi.getter(name="createSnapshotBeforeDestroyPrefix")
311
+ def create_snapshot_before_destroy_prefix(self) -> Optional[pulumi.Input[str]]:
312
+ """
313
+ This will set a custom name prefix for the snapshot that's created when the disk is deleted.
314
+ """
315
+ return pulumi.get(self, "create_snapshot_before_destroy_prefix")
316
+
317
+ @create_snapshot_before_destroy_prefix.setter
318
+ def create_snapshot_before_destroy_prefix(self, value: Optional[pulumi.Input[str]]):
319
+ pulumi.set(self, "create_snapshot_before_destroy_prefix", value)
320
+
248
321
  @property
249
322
  @pulumi.getter
250
323
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -401,6 +474,19 @@ class DiskArgs:
401
474
  def name(self, value: Optional[pulumi.Input[str]]):
402
475
  pulumi.set(self, "name", value)
403
476
 
477
+ @property
478
+ @pulumi.getter
479
+ def params(self) -> Optional[pulumi.Input['DiskParamsArgs']]:
480
+ """
481
+ Additional params passed with the request, but not persisted as part of resource payload
482
+ Structure is documented below.
483
+ """
484
+ return pulumi.get(self, "params")
485
+
486
+ @params.setter
487
+ def params(self, value: Optional[pulumi.Input['DiskParamsArgs']]):
488
+ pulumi.set(self, "params", value)
489
+
404
490
  @property
405
491
  @pulumi.getter(name="physicalBlockSizeBytes")
406
492
  def physical_block_size_bytes(self) -> Optional[pulumi.Input[int]]:
@@ -548,6 +634,22 @@ class DiskArgs:
548
634
  def source_image_encryption_key(self, value: Optional[pulumi.Input['DiskSourceImageEncryptionKeyArgs']]):
549
635
  pulumi.set(self, "source_image_encryption_key", value)
550
636
 
637
+ @property
638
+ @pulumi.getter(name="sourceInstantSnapshot")
639
+ def source_instant_snapshot(self) -> Optional[pulumi.Input[str]]:
640
+ """
641
+ The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
642
+ For example, the following are valid values:
643
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
644
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
645
+ * `zones/zone/instantSnapshots/instantSnapshot`
646
+ """
647
+ return pulumi.get(self, "source_instant_snapshot")
648
+
649
+ @source_instant_snapshot.setter
650
+ def source_instant_snapshot(self, value: Optional[pulumi.Input[str]]):
651
+ pulumi.set(self, "source_instant_snapshot", value)
652
+
551
653
  @property
552
654
  @pulumi.getter(name="sourceSnapshotEncryptionKey")
553
655
  def source_snapshot_encryption_key(self) -> Optional[pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs']]:
@@ -563,6 +665,22 @@ class DiskArgs:
563
665
  def source_snapshot_encryption_key(self, value: Optional[pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs']]):
564
666
  pulumi.set(self, "source_snapshot_encryption_key", value)
565
667
 
668
+ @property
669
+ @pulumi.getter(name="sourceStorageObject")
670
+ def source_storage_object(self) -> Optional[pulumi.Input[str]]:
671
+ """
672
+ The full Google Cloud Storage URI where the disk image is stored.
673
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
674
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
675
+ This flag is not optimized for creating multiple disks from a source storage object.
676
+ To create many disks from a source storage object, use gcloud compute images import instead.
677
+ """
678
+ return pulumi.get(self, "source_storage_object")
679
+
680
+ @source_storage_object.setter
681
+ def source_storage_object(self, value: Optional[pulumi.Input[str]]):
682
+ pulumi.set(self, "source_storage_object", value)
683
+
566
684
  @property
567
685
  @pulumi.getter(name="storagePool")
568
686
  def storage_pool(self) -> Optional[pulumi.Input[str]]:
@@ -610,7 +728,10 @@ class DiskArgs:
610
728
  class _DiskState:
611
729
  def __init__(__self__, *,
612
730
  access_mode: Optional[pulumi.Input[str]] = None,
731
+ architecture: Optional[pulumi.Input[str]] = None,
613
732
  async_primary_disk: Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']] = None,
733
+ create_snapshot_before_destroy: Optional[pulumi.Input[bool]] = None,
734
+ create_snapshot_before_destroy_prefix: Optional[pulumi.Input[str]] = None,
614
735
  creation_timestamp: Optional[pulumi.Input[str]] = None,
615
736
  description: Optional[pulumi.Input[str]] = None,
616
737
  disk_encryption_key: Optional[pulumi.Input['DiskDiskEncryptionKeyArgs']] = None,
@@ -627,6 +748,7 @@ class _DiskState:
627
748
  licenses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
628
749
  multi_writer: Optional[pulumi.Input[bool]] = None,
629
750
  name: Optional[pulumi.Input[str]] = None,
751
+ params: Optional[pulumi.Input['DiskParamsArgs']] = None,
630
752
  physical_block_size_bytes: Optional[pulumi.Input[int]] = None,
631
753
  project: Optional[pulumi.Input[str]] = None,
632
754
  provisioned_iops: Optional[pulumi.Input[int]] = None,
@@ -640,8 +762,11 @@ class _DiskState:
640
762
  source_disk_id: Optional[pulumi.Input[str]] = None,
641
763
  source_image_encryption_key: Optional[pulumi.Input['DiskSourceImageEncryptionKeyArgs']] = None,
642
764
  source_image_id: Optional[pulumi.Input[str]] = None,
765
+ source_instant_snapshot: Optional[pulumi.Input[str]] = None,
766
+ source_instant_snapshot_id: Optional[pulumi.Input[str]] = None,
643
767
  source_snapshot_encryption_key: Optional[pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs']] = None,
644
768
  source_snapshot_id: Optional[pulumi.Input[str]] = None,
769
+ source_storage_object: Optional[pulumi.Input[str]] = None,
645
770
  storage_pool: Optional[pulumi.Input[str]] = None,
646
771
  type: Optional[pulumi.Input[str]] = None,
647
772
  users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -653,8 +778,13 @@ class _DiskState:
653
778
  * READ_WRITE_SINGLE
654
779
  * READ_WRITE_MANY
655
780
  * READ_ONLY_SINGLE
781
+ :param pulumi.Input[str] architecture: (Optional)
656
782
  :param pulumi.Input['DiskAsyncPrimaryDiskArgs'] async_primary_disk: A nested object resource.
657
783
  Structure is documented below.
784
+ :param pulumi.Input[bool] create_snapshot_before_destroy: If set to true, a snapshot of the disk will be created before it is destroyed.
785
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
786
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
787
+ :param pulumi.Input[str] create_snapshot_before_destroy_prefix: This will set a custom name prefix for the snapshot that's created when the disk is deleted.
658
788
  :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
659
789
  :param pulumi.Input[str] description: An optional description of this resource. Provide this property when
660
790
  you create the resource.
@@ -707,6 +837,8 @@ class _DiskState:
707
837
 
708
838
 
709
839
  - - -
840
+ :param pulumi.Input['DiskParamsArgs'] params: Additional params passed with the request, but not persisted as part of resource payload
841
+ Structure is documented below.
710
842
  :param pulumi.Input[int] physical_block_size_bytes: Physical block size of the persistent disk, in bytes. If not present
711
843
  in a request, a default value is used. Currently supported sizes
712
844
  are 4096 and 16384, other sizes may be added in the future.
@@ -766,6 +898,16 @@ class _DiskState:
766
898
  disk. For example, if you created the persistent disk from an image
767
899
  that was later deleted and recreated under the same name, the source
768
900
  image ID would identify the exact version of the image that was used.
901
+ :param pulumi.Input[str] source_instant_snapshot: The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
902
+ For example, the following are valid values:
903
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
904
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
905
+ * `zones/zone/instantSnapshots/instantSnapshot`
906
+ :param pulumi.Input[str] source_instant_snapshot_id: The unique ID of the instant snapshot used to create this disk. This value identifies
907
+ the exact instant snapshot that was used to create this persistent disk.
908
+ For example, if you created the persistent disk from an instant snapshot that was later
909
+ deleted and recreated under the same name, the source instant snapshot ID would identify
910
+ the exact version of the instant snapshot that was used.
769
911
  :param pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs'] source_snapshot_encryption_key: The customer-supplied encryption key of the source snapshot. Required
770
912
  if the source snapshot is protected by a customer-supplied encryption
771
913
  key.
@@ -776,6 +918,11 @@ class _DiskState:
776
918
  that was later deleted and recreated under the same name, the source
777
919
  snapshot ID would identify the exact version of the snapshot that was
778
920
  used.
921
+ :param pulumi.Input[str] source_storage_object: The full Google Cloud Storage URI where the disk image is stored.
922
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
923
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
924
+ This flag is not optimized for creating multiple disks from a source storage object.
925
+ To create many disks from a source storage object, use gcloud compute images import instead.
779
926
  :param pulumi.Input[str] storage_pool: The URL or the name of the storage pool in which the new disk is created.
780
927
  For example:
781
928
  * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
@@ -790,8 +937,14 @@ class _DiskState:
790
937
  """
791
938
  if access_mode is not None:
792
939
  pulumi.set(__self__, "access_mode", access_mode)
940
+ if architecture is not None:
941
+ pulumi.set(__self__, "architecture", architecture)
793
942
  if async_primary_disk is not None:
794
943
  pulumi.set(__self__, "async_primary_disk", async_primary_disk)
944
+ if create_snapshot_before_destroy is not None:
945
+ pulumi.set(__self__, "create_snapshot_before_destroy", create_snapshot_before_destroy)
946
+ if create_snapshot_before_destroy_prefix is not None:
947
+ pulumi.set(__self__, "create_snapshot_before_destroy_prefix", create_snapshot_before_destroy_prefix)
795
948
  if creation_timestamp is not None:
796
949
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
797
950
  if description is not None:
@@ -827,6 +980,8 @@ class _DiskState:
827
980
  pulumi.set(__self__, "multi_writer", multi_writer)
828
981
  if name is not None:
829
982
  pulumi.set(__self__, "name", name)
983
+ if params is not None:
984
+ pulumi.set(__self__, "params", params)
830
985
  if physical_block_size_bytes is not None:
831
986
  pulumi.set(__self__, "physical_block_size_bytes", physical_block_size_bytes)
832
987
  if project is not None:
@@ -853,10 +1008,16 @@ class _DiskState:
853
1008
  pulumi.set(__self__, "source_image_encryption_key", source_image_encryption_key)
854
1009
  if source_image_id is not None:
855
1010
  pulumi.set(__self__, "source_image_id", source_image_id)
1011
+ if source_instant_snapshot is not None:
1012
+ pulumi.set(__self__, "source_instant_snapshot", source_instant_snapshot)
1013
+ if source_instant_snapshot_id is not None:
1014
+ pulumi.set(__self__, "source_instant_snapshot_id", source_instant_snapshot_id)
856
1015
  if source_snapshot_encryption_key is not None:
857
1016
  pulumi.set(__self__, "source_snapshot_encryption_key", source_snapshot_encryption_key)
858
1017
  if source_snapshot_id is not None:
859
1018
  pulumi.set(__self__, "source_snapshot_id", source_snapshot_id)
1019
+ if source_storage_object is not None:
1020
+ pulumi.set(__self__, "source_storage_object", source_storage_object)
860
1021
  if storage_pool is not None:
861
1022
  pulumi.set(__self__, "storage_pool", storage_pool)
862
1023
  if type is not None:
@@ -882,6 +1043,18 @@ class _DiskState:
882
1043
  def access_mode(self, value: Optional[pulumi.Input[str]]):
883
1044
  pulumi.set(self, "access_mode", value)
884
1045
 
1046
+ @property
1047
+ @pulumi.getter
1048
+ def architecture(self) -> Optional[pulumi.Input[str]]:
1049
+ """
1050
+ (Optional)
1051
+ """
1052
+ return pulumi.get(self, "architecture")
1053
+
1054
+ @architecture.setter
1055
+ def architecture(self, value: Optional[pulumi.Input[str]]):
1056
+ pulumi.set(self, "architecture", value)
1057
+
885
1058
  @property
886
1059
  @pulumi.getter(name="asyncPrimaryDisk")
887
1060
  def async_primary_disk(self) -> Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']]:
@@ -895,6 +1068,32 @@ class _DiskState:
895
1068
  def async_primary_disk(self, value: Optional[pulumi.Input['DiskAsyncPrimaryDiskArgs']]):
896
1069
  pulumi.set(self, "async_primary_disk", value)
897
1070
 
1071
+ @property
1072
+ @pulumi.getter(name="createSnapshotBeforeDestroy")
1073
+ def create_snapshot_before_destroy(self) -> Optional[pulumi.Input[bool]]:
1074
+ """
1075
+ If set to true, a snapshot of the disk will be created before it is destroyed.
1076
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
1077
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
1078
+ """
1079
+ return pulumi.get(self, "create_snapshot_before_destroy")
1080
+
1081
+ @create_snapshot_before_destroy.setter
1082
+ def create_snapshot_before_destroy(self, value: Optional[pulumi.Input[bool]]):
1083
+ pulumi.set(self, "create_snapshot_before_destroy", value)
1084
+
1085
+ @property
1086
+ @pulumi.getter(name="createSnapshotBeforeDestroyPrefix")
1087
+ def create_snapshot_before_destroy_prefix(self) -> Optional[pulumi.Input[str]]:
1088
+ """
1089
+ This will set a custom name prefix for the snapshot that's created when the disk is deleted.
1090
+ """
1091
+ return pulumi.get(self, "create_snapshot_before_destroy_prefix")
1092
+
1093
+ @create_snapshot_before_destroy_prefix.setter
1094
+ def create_snapshot_before_destroy_prefix(self, value: Optional[pulumi.Input[str]]):
1095
+ pulumi.set(self, "create_snapshot_before_destroy_prefix", value)
1096
+
898
1097
  @property
899
1098
  @pulumi.getter(name="creationTimestamp")
900
1099
  def creation_timestamp(self) -> Optional[pulumi.Input[str]]:
@@ -1124,6 +1323,19 @@ class _DiskState:
1124
1323
  def name(self, value: Optional[pulumi.Input[str]]):
1125
1324
  pulumi.set(self, "name", value)
1126
1325
 
1326
+ @property
1327
+ @pulumi.getter
1328
+ def params(self) -> Optional[pulumi.Input['DiskParamsArgs']]:
1329
+ """
1330
+ Additional params passed with the request, but not persisted as part of resource payload
1331
+ Structure is documented below.
1332
+ """
1333
+ return pulumi.get(self, "params")
1334
+
1335
+ @params.setter
1336
+ def params(self, value: Optional[pulumi.Input['DiskParamsArgs']]):
1337
+ pulumi.set(self, "params", value)
1338
+
1127
1339
  @property
1128
1340
  @pulumi.getter(name="physicalBlockSizeBytes")
1129
1341
  def physical_block_size_bytes(self) -> Optional[pulumi.Input[int]]:
@@ -1326,6 +1538,38 @@ class _DiskState:
1326
1538
  def source_image_id(self, value: Optional[pulumi.Input[str]]):
1327
1539
  pulumi.set(self, "source_image_id", value)
1328
1540
 
1541
+ @property
1542
+ @pulumi.getter(name="sourceInstantSnapshot")
1543
+ def source_instant_snapshot(self) -> Optional[pulumi.Input[str]]:
1544
+ """
1545
+ The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
1546
+ For example, the following are valid values:
1547
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
1548
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
1549
+ * `zones/zone/instantSnapshots/instantSnapshot`
1550
+ """
1551
+ return pulumi.get(self, "source_instant_snapshot")
1552
+
1553
+ @source_instant_snapshot.setter
1554
+ def source_instant_snapshot(self, value: Optional[pulumi.Input[str]]):
1555
+ pulumi.set(self, "source_instant_snapshot", value)
1556
+
1557
+ @property
1558
+ @pulumi.getter(name="sourceInstantSnapshotId")
1559
+ def source_instant_snapshot_id(self) -> Optional[pulumi.Input[str]]:
1560
+ """
1561
+ The unique ID of the instant snapshot used to create this disk. This value identifies
1562
+ the exact instant snapshot that was used to create this persistent disk.
1563
+ For example, if you created the persistent disk from an instant snapshot that was later
1564
+ deleted and recreated under the same name, the source instant snapshot ID would identify
1565
+ the exact version of the instant snapshot that was used.
1566
+ """
1567
+ return pulumi.get(self, "source_instant_snapshot_id")
1568
+
1569
+ @source_instant_snapshot_id.setter
1570
+ def source_instant_snapshot_id(self, value: Optional[pulumi.Input[str]]):
1571
+ pulumi.set(self, "source_instant_snapshot_id", value)
1572
+
1329
1573
  @property
1330
1574
  @pulumi.getter(name="sourceSnapshotEncryptionKey")
1331
1575
  def source_snapshot_encryption_key(self) -> Optional[pulumi.Input['DiskSourceSnapshotEncryptionKeyArgs']]:
@@ -1358,6 +1602,22 @@ class _DiskState:
1358
1602
  def source_snapshot_id(self, value: Optional[pulumi.Input[str]]):
1359
1603
  pulumi.set(self, "source_snapshot_id", value)
1360
1604
 
1605
+ @property
1606
+ @pulumi.getter(name="sourceStorageObject")
1607
+ def source_storage_object(self) -> Optional[pulumi.Input[str]]:
1608
+ """
1609
+ The full Google Cloud Storage URI where the disk image is stored.
1610
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
1611
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
1612
+ This flag is not optimized for creating multiple disks from a source storage object.
1613
+ To create many disks from a source storage object, use gcloud compute images import instead.
1614
+ """
1615
+ return pulumi.get(self, "source_storage_object")
1616
+
1617
+ @source_storage_object.setter
1618
+ def source_storage_object(self, value: Optional[pulumi.Input[str]]):
1619
+ pulumi.set(self, "source_storage_object", value)
1620
+
1361
1621
  @property
1362
1622
  @pulumi.getter(name="storagePool")
1363
1623
  def storage_pool(self) -> Optional[pulumi.Input[str]]:
@@ -1420,7 +1680,10 @@ class Disk(pulumi.CustomResource):
1420
1680
  resource_name: str,
1421
1681
  opts: Optional[pulumi.ResourceOptions] = None,
1422
1682
  access_mode: Optional[pulumi.Input[str]] = None,
1683
+ architecture: Optional[pulumi.Input[str]] = None,
1423
1684
  async_primary_disk: Optional[pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']]] = None,
1685
+ create_snapshot_before_destroy: Optional[pulumi.Input[bool]] = None,
1686
+ create_snapshot_before_destroy_prefix: Optional[pulumi.Input[str]] = None,
1424
1687
  description: Optional[pulumi.Input[str]] = None,
1425
1688
  disk_encryption_key: Optional[pulumi.Input[Union['DiskDiskEncryptionKeyArgs', 'DiskDiskEncryptionKeyArgsDict']]] = None,
1426
1689
  enable_confidential_compute: Optional[pulumi.Input[bool]] = None,
@@ -1431,6 +1694,7 @@ class Disk(pulumi.CustomResource):
1431
1694
  licenses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1432
1695
  multi_writer: Optional[pulumi.Input[bool]] = None,
1433
1696
  name: Optional[pulumi.Input[str]] = None,
1697
+ params: Optional[pulumi.Input[Union['DiskParamsArgs', 'DiskParamsArgsDict']]] = None,
1434
1698
  physical_block_size_bytes: Optional[pulumi.Input[int]] = None,
1435
1699
  project: Optional[pulumi.Input[str]] = None,
1436
1700
  provisioned_iops: Optional[pulumi.Input[int]] = None,
@@ -1440,7 +1704,9 @@ class Disk(pulumi.CustomResource):
1440
1704
  snapshot: Optional[pulumi.Input[str]] = None,
1441
1705
  source_disk: Optional[pulumi.Input[str]] = None,
1442
1706
  source_image_encryption_key: Optional[pulumi.Input[Union['DiskSourceImageEncryptionKeyArgs', 'DiskSourceImageEncryptionKeyArgsDict']]] = None,
1707
+ source_instant_snapshot: Optional[pulumi.Input[str]] = None,
1443
1708
  source_snapshot_encryption_key: Optional[pulumi.Input[Union['DiskSourceSnapshotEncryptionKeyArgs', 'DiskSourceSnapshotEncryptionKeyArgsDict']]] = None,
1709
+ source_storage_object: Optional[pulumi.Input[str]] = None,
1444
1710
  storage_pool: Optional[pulumi.Input[str]] = None,
1445
1711
  type: Optional[pulumi.Input[str]] = None,
1446
1712
  zone: Optional[pulumi.Input[str]] = None,
@@ -1571,8 +1837,13 @@ class Disk(pulumi.CustomResource):
1571
1837
  * READ_WRITE_SINGLE
1572
1838
  * READ_WRITE_MANY
1573
1839
  * READ_ONLY_SINGLE
1840
+ :param pulumi.Input[str] architecture: (Optional)
1574
1841
  :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource.
1575
1842
  Structure is documented below.
1843
+ :param pulumi.Input[bool] create_snapshot_before_destroy: If set to true, a snapshot of the disk will be created before it is destroyed.
1844
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
1845
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
1846
+ :param pulumi.Input[str] create_snapshot_before_destroy_prefix: This will set a custom name prefix for the snapshot that's created when the disk is deleted.
1576
1847
  :param pulumi.Input[str] description: An optional description of this resource. Provide this property when
1577
1848
  you create the resource.
1578
1849
  :param pulumi.Input[Union['DiskDiskEncryptionKeyArgs', 'DiskDiskEncryptionKeyArgsDict']] disk_encryption_key: Encrypts the disk using a customer-supplied encryption key.
@@ -1618,6 +1889,8 @@ class Disk(pulumi.CustomResource):
1618
1889
 
1619
1890
 
1620
1891
  - - -
1892
+ :param pulumi.Input[Union['DiskParamsArgs', 'DiskParamsArgsDict']] params: Additional params passed with the request, but not persisted as part of resource payload
1893
+ Structure is documented below.
1621
1894
  :param pulumi.Input[int] physical_block_size_bytes: Physical block size of the persistent disk, in bytes. If not present
1622
1895
  in a request, a default value is used. Currently supported sizes
1623
1896
  are 4096 and 16384, other sizes may be added in the future.
@@ -1666,10 +1939,20 @@ class Disk(pulumi.CustomResource):
1666
1939
  :param pulumi.Input[Union['DiskSourceImageEncryptionKeyArgs', 'DiskSourceImageEncryptionKeyArgsDict']] source_image_encryption_key: The customer-supplied encryption key of the source image. Required if
1667
1940
  the source image is protected by a customer-supplied encryption key.
1668
1941
  Structure is documented below.
1942
+ :param pulumi.Input[str] source_instant_snapshot: The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
1943
+ For example, the following are valid values:
1944
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
1945
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
1946
+ * `zones/zone/instantSnapshots/instantSnapshot`
1669
1947
  :param pulumi.Input[Union['DiskSourceSnapshotEncryptionKeyArgs', 'DiskSourceSnapshotEncryptionKeyArgsDict']] source_snapshot_encryption_key: The customer-supplied encryption key of the source snapshot. Required
1670
1948
  if the source snapshot is protected by a customer-supplied encryption
1671
1949
  key.
1672
1950
  Structure is documented below.
1951
+ :param pulumi.Input[str] source_storage_object: The full Google Cloud Storage URI where the disk image is stored.
1952
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
1953
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
1954
+ This flag is not optimized for creating multiple disks from a source storage object.
1955
+ To create many disks from a source storage object, use gcloud compute images import instead.
1673
1956
  :param pulumi.Input[str] storage_pool: The URL or the name of the storage pool in which the new disk is created.
1674
1957
  For example:
1675
1958
  * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
@@ -1821,7 +2104,10 @@ class Disk(pulumi.CustomResource):
1821
2104
  resource_name: str,
1822
2105
  opts: Optional[pulumi.ResourceOptions] = None,
1823
2106
  access_mode: Optional[pulumi.Input[str]] = None,
2107
+ architecture: Optional[pulumi.Input[str]] = None,
1824
2108
  async_primary_disk: Optional[pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']]] = None,
2109
+ create_snapshot_before_destroy: Optional[pulumi.Input[bool]] = None,
2110
+ create_snapshot_before_destroy_prefix: Optional[pulumi.Input[str]] = None,
1825
2111
  description: Optional[pulumi.Input[str]] = None,
1826
2112
  disk_encryption_key: Optional[pulumi.Input[Union['DiskDiskEncryptionKeyArgs', 'DiskDiskEncryptionKeyArgsDict']]] = None,
1827
2113
  enable_confidential_compute: Optional[pulumi.Input[bool]] = None,
@@ -1832,6 +2118,7 @@ class Disk(pulumi.CustomResource):
1832
2118
  licenses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1833
2119
  multi_writer: Optional[pulumi.Input[bool]] = None,
1834
2120
  name: Optional[pulumi.Input[str]] = None,
2121
+ params: Optional[pulumi.Input[Union['DiskParamsArgs', 'DiskParamsArgsDict']]] = None,
1835
2122
  physical_block_size_bytes: Optional[pulumi.Input[int]] = None,
1836
2123
  project: Optional[pulumi.Input[str]] = None,
1837
2124
  provisioned_iops: Optional[pulumi.Input[int]] = None,
@@ -1841,7 +2128,9 @@ class Disk(pulumi.CustomResource):
1841
2128
  snapshot: Optional[pulumi.Input[str]] = None,
1842
2129
  source_disk: Optional[pulumi.Input[str]] = None,
1843
2130
  source_image_encryption_key: Optional[pulumi.Input[Union['DiskSourceImageEncryptionKeyArgs', 'DiskSourceImageEncryptionKeyArgsDict']]] = None,
2131
+ source_instant_snapshot: Optional[pulumi.Input[str]] = None,
1844
2132
  source_snapshot_encryption_key: Optional[pulumi.Input[Union['DiskSourceSnapshotEncryptionKeyArgs', 'DiskSourceSnapshotEncryptionKeyArgsDict']]] = None,
2133
+ source_storage_object: Optional[pulumi.Input[str]] = None,
1845
2134
  storage_pool: Optional[pulumi.Input[str]] = None,
1846
2135
  type: Optional[pulumi.Input[str]] = None,
1847
2136
  zone: Optional[pulumi.Input[str]] = None,
@@ -1855,7 +2144,10 @@ class Disk(pulumi.CustomResource):
1855
2144
  __props__ = DiskArgs.__new__(DiskArgs)
1856
2145
 
1857
2146
  __props__.__dict__["access_mode"] = access_mode
2147
+ __props__.__dict__["architecture"] = architecture
1858
2148
  __props__.__dict__["async_primary_disk"] = async_primary_disk
2149
+ __props__.__dict__["create_snapshot_before_destroy"] = create_snapshot_before_destroy
2150
+ __props__.__dict__["create_snapshot_before_destroy_prefix"] = create_snapshot_before_destroy_prefix
1859
2151
  __props__.__dict__["description"] = description
1860
2152
  __props__.__dict__["disk_encryption_key"] = disk_encryption_key
1861
2153
  __props__.__dict__["enable_confidential_compute"] = enable_confidential_compute
@@ -1866,6 +2158,7 @@ class Disk(pulumi.CustomResource):
1866
2158
  __props__.__dict__["licenses"] = licenses
1867
2159
  __props__.__dict__["multi_writer"] = multi_writer
1868
2160
  __props__.__dict__["name"] = name
2161
+ __props__.__dict__["params"] = params
1869
2162
  __props__.__dict__["physical_block_size_bytes"] = physical_block_size_bytes
1870
2163
  __props__.__dict__["project"] = project
1871
2164
  __props__.__dict__["provisioned_iops"] = provisioned_iops
@@ -1875,7 +2168,9 @@ class Disk(pulumi.CustomResource):
1875
2168
  __props__.__dict__["snapshot"] = snapshot
1876
2169
  __props__.__dict__["source_disk"] = source_disk
1877
2170
  __props__.__dict__["source_image_encryption_key"] = source_image_encryption_key
2171
+ __props__.__dict__["source_instant_snapshot"] = source_instant_snapshot
1878
2172
  __props__.__dict__["source_snapshot_encryption_key"] = source_snapshot_encryption_key
2173
+ __props__.__dict__["source_storage_object"] = source_storage_object
1879
2174
  __props__.__dict__["storage_pool"] = storage_pool
1880
2175
  __props__.__dict__["type"] = type
1881
2176
  __props__.__dict__["zone"] = zone
@@ -1889,6 +2184,7 @@ class Disk(pulumi.CustomResource):
1889
2184
  __props__.__dict__["self_link"] = None
1890
2185
  __props__.__dict__["source_disk_id"] = None
1891
2186
  __props__.__dict__["source_image_id"] = None
2187
+ __props__.__dict__["source_instant_snapshot_id"] = None
1892
2188
  __props__.__dict__["source_snapshot_id"] = None
1893
2189
  __props__.__dict__["users"] = None
1894
2190
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
@@ -1904,7 +2200,10 @@ class Disk(pulumi.CustomResource):
1904
2200
  id: pulumi.Input[str],
1905
2201
  opts: Optional[pulumi.ResourceOptions] = None,
1906
2202
  access_mode: Optional[pulumi.Input[str]] = None,
2203
+ architecture: Optional[pulumi.Input[str]] = None,
1907
2204
  async_primary_disk: Optional[pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']]] = None,
2205
+ create_snapshot_before_destroy: Optional[pulumi.Input[bool]] = None,
2206
+ create_snapshot_before_destroy_prefix: Optional[pulumi.Input[str]] = None,
1908
2207
  creation_timestamp: Optional[pulumi.Input[str]] = None,
1909
2208
  description: Optional[pulumi.Input[str]] = None,
1910
2209
  disk_encryption_key: Optional[pulumi.Input[Union['DiskDiskEncryptionKeyArgs', 'DiskDiskEncryptionKeyArgsDict']]] = None,
@@ -1921,6 +2220,7 @@ class Disk(pulumi.CustomResource):
1921
2220
  licenses: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1922
2221
  multi_writer: Optional[pulumi.Input[bool]] = None,
1923
2222
  name: Optional[pulumi.Input[str]] = None,
2223
+ params: Optional[pulumi.Input[Union['DiskParamsArgs', 'DiskParamsArgsDict']]] = None,
1924
2224
  physical_block_size_bytes: Optional[pulumi.Input[int]] = None,
1925
2225
  project: Optional[pulumi.Input[str]] = None,
1926
2226
  provisioned_iops: Optional[pulumi.Input[int]] = None,
@@ -1934,8 +2234,11 @@ class Disk(pulumi.CustomResource):
1934
2234
  source_disk_id: Optional[pulumi.Input[str]] = None,
1935
2235
  source_image_encryption_key: Optional[pulumi.Input[Union['DiskSourceImageEncryptionKeyArgs', 'DiskSourceImageEncryptionKeyArgsDict']]] = None,
1936
2236
  source_image_id: Optional[pulumi.Input[str]] = None,
2237
+ source_instant_snapshot: Optional[pulumi.Input[str]] = None,
2238
+ source_instant_snapshot_id: Optional[pulumi.Input[str]] = None,
1937
2239
  source_snapshot_encryption_key: Optional[pulumi.Input[Union['DiskSourceSnapshotEncryptionKeyArgs', 'DiskSourceSnapshotEncryptionKeyArgsDict']]] = None,
1938
2240
  source_snapshot_id: Optional[pulumi.Input[str]] = None,
2241
+ source_storage_object: Optional[pulumi.Input[str]] = None,
1939
2242
  storage_pool: Optional[pulumi.Input[str]] = None,
1940
2243
  type: Optional[pulumi.Input[str]] = None,
1941
2244
  users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -1952,8 +2255,13 @@ class Disk(pulumi.CustomResource):
1952
2255
  * READ_WRITE_SINGLE
1953
2256
  * READ_WRITE_MANY
1954
2257
  * READ_ONLY_SINGLE
2258
+ :param pulumi.Input[str] architecture: (Optional)
1955
2259
  :param pulumi.Input[Union['DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict']] async_primary_disk: A nested object resource.
1956
2260
  Structure is documented below.
2261
+ :param pulumi.Input[bool] create_snapshot_before_destroy: If set to true, a snapshot of the disk will be created before it is destroyed.
2262
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
2263
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
2264
+ :param pulumi.Input[str] create_snapshot_before_destroy_prefix: This will set a custom name prefix for the snapshot that's created when the disk is deleted.
1957
2265
  :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
1958
2266
  :param pulumi.Input[str] description: An optional description of this resource. Provide this property when
1959
2267
  you create the resource.
@@ -2006,6 +2314,8 @@ class Disk(pulumi.CustomResource):
2006
2314
 
2007
2315
 
2008
2316
  - - -
2317
+ :param pulumi.Input[Union['DiskParamsArgs', 'DiskParamsArgsDict']] params: Additional params passed with the request, but not persisted as part of resource payload
2318
+ Structure is documented below.
2009
2319
  :param pulumi.Input[int] physical_block_size_bytes: Physical block size of the persistent disk, in bytes. If not present
2010
2320
  in a request, a default value is used. Currently supported sizes
2011
2321
  are 4096 and 16384, other sizes may be added in the future.
@@ -2065,6 +2375,16 @@ class Disk(pulumi.CustomResource):
2065
2375
  disk. For example, if you created the persistent disk from an image
2066
2376
  that was later deleted and recreated under the same name, the source
2067
2377
  image ID would identify the exact version of the image that was used.
2378
+ :param pulumi.Input[str] source_instant_snapshot: The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
2379
+ For example, the following are valid values:
2380
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
2381
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
2382
+ * `zones/zone/instantSnapshots/instantSnapshot`
2383
+ :param pulumi.Input[str] source_instant_snapshot_id: The unique ID of the instant snapshot used to create this disk. This value identifies
2384
+ the exact instant snapshot that was used to create this persistent disk.
2385
+ For example, if you created the persistent disk from an instant snapshot that was later
2386
+ deleted and recreated under the same name, the source instant snapshot ID would identify
2387
+ the exact version of the instant snapshot that was used.
2068
2388
  :param pulumi.Input[Union['DiskSourceSnapshotEncryptionKeyArgs', 'DiskSourceSnapshotEncryptionKeyArgsDict']] source_snapshot_encryption_key: The customer-supplied encryption key of the source snapshot. Required
2069
2389
  if the source snapshot is protected by a customer-supplied encryption
2070
2390
  key.
@@ -2075,6 +2395,11 @@ class Disk(pulumi.CustomResource):
2075
2395
  that was later deleted and recreated under the same name, the source
2076
2396
  snapshot ID would identify the exact version of the snapshot that was
2077
2397
  used.
2398
+ :param pulumi.Input[str] source_storage_object: The full Google Cloud Storage URI where the disk image is stored.
2399
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
2400
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
2401
+ This flag is not optimized for creating multiple disks from a source storage object.
2402
+ To create many disks from a source storage object, use gcloud compute images import instead.
2078
2403
  :param pulumi.Input[str] storage_pool: The URL or the name of the storage pool in which the new disk is created.
2079
2404
  For example:
2080
2405
  * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}
@@ -2092,7 +2417,10 @@ class Disk(pulumi.CustomResource):
2092
2417
  __props__ = _DiskState.__new__(_DiskState)
2093
2418
 
2094
2419
  __props__.__dict__["access_mode"] = access_mode
2420
+ __props__.__dict__["architecture"] = architecture
2095
2421
  __props__.__dict__["async_primary_disk"] = async_primary_disk
2422
+ __props__.__dict__["create_snapshot_before_destroy"] = create_snapshot_before_destroy
2423
+ __props__.__dict__["create_snapshot_before_destroy_prefix"] = create_snapshot_before_destroy_prefix
2096
2424
  __props__.__dict__["creation_timestamp"] = creation_timestamp
2097
2425
  __props__.__dict__["description"] = description
2098
2426
  __props__.__dict__["disk_encryption_key"] = disk_encryption_key
@@ -2109,6 +2437,7 @@ class Disk(pulumi.CustomResource):
2109
2437
  __props__.__dict__["licenses"] = licenses
2110
2438
  __props__.__dict__["multi_writer"] = multi_writer
2111
2439
  __props__.__dict__["name"] = name
2440
+ __props__.__dict__["params"] = params
2112
2441
  __props__.__dict__["physical_block_size_bytes"] = physical_block_size_bytes
2113
2442
  __props__.__dict__["project"] = project
2114
2443
  __props__.__dict__["provisioned_iops"] = provisioned_iops
@@ -2122,8 +2451,11 @@ class Disk(pulumi.CustomResource):
2122
2451
  __props__.__dict__["source_disk_id"] = source_disk_id
2123
2452
  __props__.__dict__["source_image_encryption_key"] = source_image_encryption_key
2124
2453
  __props__.__dict__["source_image_id"] = source_image_id
2454
+ __props__.__dict__["source_instant_snapshot"] = source_instant_snapshot
2455
+ __props__.__dict__["source_instant_snapshot_id"] = source_instant_snapshot_id
2125
2456
  __props__.__dict__["source_snapshot_encryption_key"] = source_snapshot_encryption_key
2126
2457
  __props__.__dict__["source_snapshot_id"] = source_snapshot_id
2458
+ __props__.__dict__["source_storage_object"] = source_storage_object
2127
2459
  __props__.__dict__["storage_pool"] = storage_pool
2128
2460
  __props__.__dict__["type"] = type
2129
2461
  __props__.__dict__["users"] = users
@@ -2142,6 +2474,14 @@ class Disk(pulumi.CustomResource):
2142
2474
  """
2143
2475
  return pulumi.get(self, "access_mode")
2144
2476
 
2477
+ @property
2478
+ @pulumi.getter
2479
+ def architecture(self) -> pulumi.Output[Optional[str]]:
2480
+ """
2481
+ (Optional)
2482
+ """
2483
+ return pulumi.get(self, "architecture")
2484
+
2145
2485
  @property
2146
2486
  @pulumi.getter(name="asyncPrimaryDisk")
2147
2487
  def async_primary_disk(self) -> pulumi.Output[Optional['outputs.DiskAsyncPrimaryDisk']]:
@@ -2151,6 +2491,24 @@ class Disk(pulumi.CustomResource):
2151
2491
  """
2152
2492
  return pulumi.get(self, "async_primary_disk")
2153
2493
 
2494
+ @property
2495
+ @pulumi.getter(name="createSnapshotBeforeDestroy")
2496
+ def create_snapshot_before_destroy(self) -> pulumi.Output[Optional[bool]]:
2497
+ """
2498
+ If set to true, a snapshot of the disk will be created before it is destroyed.
2499
+ If your disk is encrypted with customer managed encryption keys these will be reused for the snapshot creation.
2500
+ The name of the snapshot by default will be `{{disk-name}}-YYYYMMDD-HHmm`
2501
+ """
2502
+ return pulumi.get(self, "create_snapshot_before_destroy")
2503
+
2504
+ @property
2505
+ @pulumi.getter(name="createSnapshotBeforeDestroyPrefix")
2506
+ def create_snapshot_before_destroy_prefix(self) -> pulumi.Output[Optional[str]]:
2507
+ """
2508
+ This will set a custom name prefix for the snapshot that's created when the disk is deleted.
2509
+ """
2510
+ return pulumi.get(self, "create_snapshot_before_destroy_prefix")
2511
+
2154
2512
  @property
2155
2513
  @pulumi.getter(name="creationTimestamp")
2156
2514
  def creation_timestamp(self) -> pulumi.Output[str]:
@@ -2316,6 +2674,15 @@ class Disk(pulumi.CustomResource):
2316
2674
  """
2317
2675
  return pulumi.get(self, "name")
2318
2676
 
2677
+ @property
2678
+ @pulumi.getter
2679
+ def params(self) -> pulumi.Output[Optional['outputs.DiskParams']]:
2680
+ """
2681
+ Additional params passed with the request, but not persisted as part of resource payload
2682
+ Structure is documented below.
2683
+ """
2684
+ return pulumi.get(self, "params")
2685
+
2319
2686
  @property
2320
2687
  @pulumi.getter(name="physicalBlockSizeBytes")
2321
2688
  def physical_block_size_bytes(self) -> pulumi.Output[int]:
@@ -2466,6 +2833,30 @@ class Disk(pulumi.CustomResource):
2466
2833
  """
2467
2834
  return pulumi.get(self, "source_image_id")
2468
2835
 
2836
+ @property
2837
+ @pulumi.getter(name="sourceInstantSnapshot")
2838
+ def source_instant_snapshot(self) -> pulumi.Output[Optional[str]]:
2839
+ """
2840
+ The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource.
2841
+ For example, the following are valid values:
2842
+ * `https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot`
2843
+ * `projects/project/zones/zone/instantSnapshots/instantSnapshot`
2844
+ * `zones/zone/instantSnapshots/instantSnapshot`
2845
+ """
2846
+ return pulumi.get(self, "source_instant_snapshot")
2847
+
2848
+ @property
2849
+ @pulumi.getter(name="sourceInstantSnapshotId")
2850
+ def source_instant_snapshot_id(self) -> pulumi.Output[str]:
2851
+ """
2852
+ The unique ID of the instant snapshot used to create this disk. This value identifies
2853
+ the exact instant snapshot that was used to create this persistent disk.
2854
+ For example, if you created the persistent disk from an instant snapshot that was later
2855
+ deleted and recreated under the same name, the source instant snapshot ID would identify
2856
+ the exact version of the instant snapshot that was used.
2857
+ """
2858
+ return pulumi.get(self, "source_instant_snapshot_id")
2859
+
2469
2860
  @property
2470
2861
  @pulumi.getter(name="sourceSnapshotEncryptionKey")
2471
2862
  def source_snapshot_encryption_key(self) -> pulumi.Output[Optional['outputs.DiskSourceSnapshotEncryptionKey']]:
@@ -2490,6 +2881,18 @@ class Disk(pulumi.CustomResource):
2490
2881
  """
2491
2882
  return pulumi.get(self, "source_snapshot_id")
2492
2883
 
2884
+ @property
2885
+ @pulumi.getter(name="sourceStorageObject")
2886
+ def source_storage_object(self) -> pulumi.Output[Optional[str]]:
2887
+ """
2888
+ The full Google Cloud Storage URI where the disk image is stored.
2889
+ This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
2890
+ Valid URIs may start with gs:// or https://storage.googleapis.com/.
2891
+ This flag is not optimized for creating multiple disks from a source storage object.
2892
+ To create many disks from a source storage object, use gcloud compute images import instead.
2893
+ """
2894
+ return pulumi.get(self, "source_storage_object")
2895
+
2493
2896
  @property
2494
2897
  @pulumi.getter(name="storagePool")
2495
2898
  def storage_pool(self) -> pulumi.Output[Optional[str]]: