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
@@ -26,6 +26,10 @@ class FirewallPolicyAssociationArgs:
26
26
  The set of arguments for constructing a FirewallPolicyAssociation resource.
27
27
  :param pulumi.Input[str] attachment_target: The target that the firewall policy is attached to.
28
28
  :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
29
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
30
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
31
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
32
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
29
33
 
30
34
 
31
35
  - - -
@@ -53,6 +57,10 @@ class FirewallPolicyAssociationArgs:
53
57
  def firewall_policy(self) -> pulumi.Input[str]:
54
58
  """
55
59
  The firewall policy of the resource.
60
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
61
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
62
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
63
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
56
64
 
57
65
 
58
66
  - - -
@@ -87,6 +95,10 @@ class _FirewallPolicyAssociationState:
87
95
  Input properties used for looking up and filtering FirewallPolicyAssociation resources.
88
96
  :param pulumi.Input[str] attachment_target: The target that the firewall policy is attached to.
89
97
  :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
98
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
99
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
100
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
101
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
90
102
 
91
103
 
92
104
  - - -
@@ -119,6 +131,10 @@ class _FirewallPolicyAssociationState:
119
131
  def firewall_policy(self) -> Optional[pulumi.Input[str]]:
120
132
  """
121
133
  The firewall policy of the resource.
134
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
135
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
136
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
137
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
122
138
 
123
139
 
124
140
  - - -
@@ -192,7 +208,6 @@ class FirewallPolicyAssociation(pulumi.CustomResource):
192
208
  attachment_target=folder.name,
193
209
  name="my-association")
194
210
  ```
195
-
196
211
  ## Import
197
212
 
198
213
  FirewallPolicyAssociation can be imported using any of these accepted formats:
@@ -215,6 +230,10 @@ class FirewallPolicyAssociation(pulumi.CustomResource):
215
230
  :param pulumi.ResourceOptions opts: Options for the resource.
216
231
  :param pulumi.Input[str] attachment_target: The target that the firewall policy is attached to.
217
232
  :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
233
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
234
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
235
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
236
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
218
237
 
219
238
 
220
239
  - - -
@@ -255,7 +274,6 @@ class FirewallPolicyAssociation(pulumi.CustomResource):
255
274
  attachment_target=folder.name,
256
275
  name="my-association")
257
276
  ```
258
-
259
277
  ## Import
260
278
 
261
279
  FirewallPolicyAssociation can be imported using any of these accepted formats:
@@ -332,6 +350,10 @@ class FirewallPolicyAssociation(pulumi.CustomResource):
332
350
  :param pulumi.ResourceOptions opts: Options for the resource.
333
351
  :param pulumi.Input[str] attachment_target: The target that the firewall policy is attached to.
334
352
  :param pulumi.Input[str] firewall_policy: The firewall policy of the resource.
353
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
354
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
355
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
356
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
335
357
 
336
358
 
337
359
  - - -
@@ -361,6 +383,10 @@ class FirewallPolicyAssociation(pulumi.CustomResource):
361
383
  def firewall_policy(self) -> pulumi.Output[str]:
362
384
  """
363
385
  The firewall policy of the resource.
386
+ This field can be updated to refer to a different Firewall Policy, which will create a new association from that new
387
+ firewall policy with the flag to override the existing attachmentTarget's policy association.
388
+ **Note** Due to potential risks with this operation it is *highly* recommended to use the `create_before_destroy` life cycle option
389
+ on your exisiting firewall policy so as to prevent a situation where your attachment target has no associated policy.
364
390
 
365
391
 
366
392
  - - -
@@ -27,7 +27,7 @@ class GetBackendServiceResult:
27
27
  """
28
28
  A collection of values returned by getBackendService.
29
29
  """
30
- def __init__(__self__, affinity_cookie_ttl_sec=None, backends=None, cdn_policies=None, circuit_breakers=None, compression_mode=None, connection_draining_timeout_sec=None, consistent_hash=None, creation_timestamp=None, custom_request_headers=None, custom_response_headers=None, description=None, edge_security_policy=None, enable_cdn=None, fingerprint=None, generated_id=None, health_checks=None, iaps=None, id=None, ip_address_selection_policy=None, load_balancing_scheme=None, locality_lb_policies=None, locality_lb_policy=None, log_configs=None, name=None, outlier_detections=None, port_name=None, project=None, protocol=None, security_policy=None, security_settings=None, self_link=None, service_lb_policy=None, session_affinity=None, strong_session_affinity_cookies=None, timeout_sec=None):
30
+ def __init__(__self__, affinity_cookie_ttl_sec=None, backends=None, cdn_policies=None, circuit_breakers=None, compression_mode=None, connection_draining_timeout_sec=None, consistent_hash=None, creation_timestamp=None, custom_metrics=None, custom_request_headers=None, custom_response_headers=None, description=None, edge_security_policy=None, enable_cdn=None, fingerprint=None, generated_id=None, health_checks=None, iaps=None, id=None, ip_address_selection_policy=None, load_balancing_scheme=None, locality_lb_policies=None, locality_lb_policy=None, log_configs=None, name=None, outlier_detections=None, port_name=None, project=None, protocol=None, security_policy=None, security_settings=None, self_link=None, service_lb_policy=None, session_affinity=None, strong_session_affinity_cookies=None, timeout_sec=None):
31
31
  if affinity_cookie_ttl_sec and not isinstance(affinity_cookie_ttl_sec, int):
32
32
  raise TypeError("Expected argument 'affinity_cookie_ttl_sec' to be a int")
33
33
  pulumi.set(__self__, "affinity_cookie_ttl_sec", affinity_cookie_ttl_sec)
@@ -52,6 +52,9 @@ class GetBackendServiceResult:
52
52
  if creation_timestamp and not isinstance(creation_timestamp, str):
53
53
  raise TypeError("Expected argument 'creation_timestamp' to be a str")
54
54
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
55
+ if custom_metrics and not isinstance(custom_metrics, list):
56
+ raise TypeError("Expected argument 'custom_metrics' to be a list")
57
+ pulumi.set(__self__, "custom_metrics", custom_metrics)
55
58
  if custom_request_headers and not isinstance(custom_request_headers, list):
56
59
  raise TypeError("Expected argument 'custom_request_headers' to be a list")
57
60
  pulumi.set(__self__, "custom_request_headers", custom_request_headers)
@@ -180,6 +183,11 @@ class GetBackendServiceResult:
180
183
  def creation_timestamp(self) -> str:
181
184
  return pulumi.get(self, "creation_timestamp")
182
185
 
186
+ @property
187
+ @pulumi.getter(name="customMetrics")
188
+ def custom_metrics(self) -> Sequence['outputs.GetBackendServiceCustomMetricResult']:
189
+ return pulumi.get(self, "custom_metrics")
190
+
183
191
  @property
184
192
  @pulumi.getter(name="customRequestHeaders")
185
193
  def custom_request_headers(self) -> Sequence[str]:
@@ -363,6 +371,7 @@ class AwaitableGetBackendServiceResult(GetBackendServiceResult):
363
371
  connection_draining_timeout_sec=self.connection_draining_timeout_sec,
364
372
  consistent_hash=self.consistent_hash,
365
373
  creation_timestamp=self.creation_timestamp,
374
+ custom_metrics=self.custom_metrics,
366
375
  custom_request_headers=self.custom_request_headers,
367
376
  custom_response_headers=self.custom_response_headers,
368
377
  description=self.description,
@@ -433,6 +442,7 @@ def get_backend_service(name: Optional[str] = None,
433
442
  connection_draining_timeout_sec=pulumi.get(__ret__, 'connection_draining_timeout_sec'),
434
443
  consistent_hash=pulumi.get(__ret__, 'consistent_hash'),
435
444
  creation_timestamp=pulumi.get(__ret__, 'creation_timestamp'),
445
+ custom_metrics=pulumi.get(__ret__, 'custom_metrics'),
436
446
  custom_request_headers=pulumi.get(__ret__, 'custom_request_headers'),
437
447
  custom_response_headers=pulumi.get(__ret__, 'custom_response_headers'),
438
448
  description=pulumi.get(__ret__, 'description'),
@@ -500,6 +510,7 @@ def get_backend_service_output(name: Optional[pulumi.Input[str]] = None,
500
510
  connection_draining_timeout_sec=pulumi.get(__response__, 'connection_draining_timeout_sec'),
501
511
  consistent_hash=pulumi.get(__response__, 'consistent_hash'),
502
512
  creation_timestamp=pulumi.get(__response__, 'creation_timestamp'),
513
+ custom_metrics=pulumi.get(__response__, 'custom_metrics'),
503
514
  custom_request_headers=pulumi.get(__response__, 'custom_request_headers'),
504
515
  custom_response_headers=pulumi.get(__response__, 'custom_response_headers'),
505
516
  description=pulumi.get(__response__, 'description'),
@@ -27,13 +27,22 @@ class GetDiskResult:
27
27
  """
28
28
  A collection of values returned by getDisk.
29
29
  """
30
- def __init__(__self__, access_mode=None, async_primary_disks=None, creation_timestamp=None, description=None, disk_encryption_keys=None, disk_id=None, effective_labels=None, enable_confidential_compute=None, guest_os_features=None, id=None, image=None, interface=None, label_fingerprint=None, labels=None, last_attach_timestamp=None, last_detach_timestamp=None, licenses=None, multi_writer=None, name=None, physical_block_size_bytes=None, project=None, provisioned_iops=None, provisioned_throughput=None, pulumi_labels=None, resource_policies=None, self_link=None, size=None, snapshot=None, source_disk=None, source_disk_id=None, source_image_encryption_keys=None, source_image_id=None, source_snapshot_encryption_keys=None, source_snapshot_id=None, storage_pool=None, type=None, users=None, zone=None):
30
+ def __init__(__self__, access_mode=None, architecture=None, async_primary_disks=None, create_snapshot_before_destroy=None, create_snapshot_before_destroy_prefix=None, creation_timestamp=None, description=None, disk_encryption_keys=None, disk_id=None, effective_labels=None, enable_confidential_compute=None, guest_os_features=None, id=None, image=None, interface=None, label_fingerprint=None, labels=None, last_attach_timestamp=None, last_detach_timestamp=None, licenses=None, multi_writer=None, name=None, params=None, physical_block_size_bytes=None, project=None, provisioned_iops=None, provisioned_throughput=None, pulumi_labels=None, resource_policies=None, self_link=None, size=None, snapshot=None, source_disk=None, source_disk_id=None, source_image_encryption_keys=None, source_image_id=None, source_instant_snapshot=None, source_instant_snapshot_id=None, source_snapshot_encryption_keys=None, source_snapshot_id=None, source_storage_object=None, storage_pool=None, type=None, users=None, zone=None):
31
31
  if access_mode and not isinstance(access_mode, str):
32
32
  raise TypeError("Expected argument 'access_mode' to be a str")
33
33
  pulumi.set(__self__, "access_mode", access_mode)
34
+ if architecture and not isinstance(architecture, str):
35
+ raise TypeError("Expected argument 'architecture' to be a str")
36
+ pulumi.set(__self__, "architecture", architecture)
34
37
  if async_primary_disks and not isinstance(async_primary_disks, list):
35
38
  raise TypeError("Expected argument 'async_primary_disks' to be a list")
36
39
  pulumi.set(__self__, "async_primary_disks", async_primary_disks)
40
+ if create_snapshot_before_destroy and not isinstance(create_snapshot_before_destroy, bool):
41
+ raise TypeError("Expected argument 'create_snapshot_before_destroy' to be a bool")
42
+ pulumi.set(__self__, "create_snapshot_before_destroy", create_snapshot_before_destroy)
43
+ if create_snapshot_before_destroy_prefix and not isinstance(create_snapshot_before_destroy_prefix, str):
44
+ raise TypeError("Expected argument 'create_snapshot_before_destroy_prefix' to be a str")
45
+ pulumi.set(__self__, "create_snapshot_before_destroy_prefix", create_snapshot_before_destroy_prefix)
37
46
  if creation_timestamp and not isinstance(creation_timestamp, str):
38
47
  raise TypeError("Expected argument 'creation_timestamp' to be a str")
39
48
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
@@ -85,6 +94,9 @@ class GetDiskResult:
85
94
  if name and not isinstance(name, str):
86
95
  raise TypeError("Expected argument 'name' to be a str")
87
96
  pulumi.set(__self__, "name", name)
97
+ if params and not isinstance(params, list):
98
+ raise TypeError("Expected argument 'params' to be a list")
99
+ pulumi.set(__self__, "params", params)
88
100
  if physical_block_size_bytes and not isinstance(physical_block_size_bytes, int):
89
101
  raise TypeError("Expected argument 'physical_block_size_bytes' to be a int")
90
102
  pulumi.set(__self__, "physical_block_size_bytes", physical_block_size_bytes)
@@ -124,12 +136,21 @@ class GetDiskResult:
124
136
  if source_image_id and not isinstance(source_image_id, str):
125
137
  raise TypeError("Expected argument 'source_image_id' to be a str")
126
138
  pulumi.set(__self__, "source_image_id", source_image_id)
139
+ if source_instant_snapshot and not isinstance(source_instant_snapshot, str):
140
+ raise TypeError("Expected argument 'source_instant_snapshot' to be a str")
141
+ pulumi.set(__self__, "source_instant_snapshot", source_instant_snapshot)
142
+ if source_instant_snapshot_id and not isinstance(source_instant_snapshot_id, str):
143
+ raise TypeError("Expected argument 'source_instant_snapshot_id' to be a str")
144
+ pulumi.set(__self__, "source_instant_snapshot_id", source_instant_snapshot_id)
127
145
  if source_snapshot_encryption_keys and not isinstance(source_snapshot_encryption_keys, list):
128
146
  raise TypeError("Expected argument 'source_snapshot_encryption_keys' to be a list")
129
147
  pulumi.set(__self__, "source_snapshot_encryption_keys", source_snapshot_encryption_keys)
130
148
  if source_snapshot_id and not isinstance(source_snapshot_id, str):
131
149
  raise TypeError("Expected argument 'source_snapshot_id' to be a str")
132
150
  pulumi.set(__self__, "source_snapshot_id", source_snapshot_id)
151
+ if source_storage_object and not isinstance(source_storage_object, str):
152
+ raise TypeError("Expected argument 'source_storage_object' to be a str")
153
+ pulumi.set(__self__, "source_storage_object", source_storage_object)
133
154
  if storage_pool and not isinstance(storage_pool, str):
134
155
  raise TypeError("Expected argument 'storage_pool' to be a str")
135
156
  pulumi.set(__self__, "storage_pool", storage_pool)
@@ -148,11 +169,26 @@ class GetDiskResult:
148
169
  def access_mode(self) -> str:
149
170
  return pulumi.get(self, "access_mode")
150
171
 
172
+ @property
173
+ @pulumi.getter
174
+ def architecture(self) -> str:
175
+ return pulumi.get(self, "architecture")
176
+
151
177
  @property
152
178
  @pulumi.getter(name="asyncPrimaryDisks")
153
179
  def async_primary_disks(self) -> Sequence['outputs.GetDiskAsyncPrimaryDiskResult']:
154
180
  return pulumi.get(self, "async_primary_disks")
155
181
 
182
+ @property
183
+ @pulumi.getter(name="createSnapshotBeforeDestroy")
184
+ def create_snapshot_before_destroy(self) -> bool:
185
+ return pulumi.get(self, "create_snapshot_before_destroy")
186
+
187
+ @property
188
+ @pulumi.getter(name="createSnapshotBeforeDestroyPrefix")
189
+ def create_snapshot_before_destroy_prefix(self) -> str:
190
+ return pulumi.get(self, "create_snapshot_before_destroy_prefix")
191
+
156
192
  @property
157
193
  @pulumi.getter(name="creationTimestamp")
158
194
  def creation_timestamp(self) -> str:
@@ -263,6 +299,11 @@ class GetDiskResult:
263
299
  def name(self) -> str:
264
300
  return pulumi.get(self, "name")
265
301
 
302
+ @property
303
+ @pulumi.getter
304
+ def params(self) -> Sequence['outputs.GetDiskParamResult']:
305
+ return pulumi.get(self, "params")
306
+
266
307
  @property
267
308
  @pulumi.getter(name="physicalBlockSizeBytes")
268
309
  def physical_block_size_bytes(self) -> int:
@@ -350,6 +391,16 @@ class GetDiskResult:
350
391
  """
351
392
  return pulumi.get(self, "source_image_id")
352
393
 
394
+ @property
395
+ @pulumi.getter(name="sourceInstantSnapshot")
396
+ def source_instant_snapshot(self) -> str:
397
+ return pulumi.get(self, "source_instant_snapshot")
398
+
399
+ @property
400
+ @pulumi.getter(name="sourceInstantSnapshotId")
401
+ def source_instant_snapshot_id(self) -> str:
402
+ return pulumi.get(self, "source_instant_snapshot_id")
403
+
353
404
  @property
354
405
  @pulumi.getter(name="sourceSnapshotEncryptionKeys")
355
406
  def source_snapshot_encryption_keys(self) -> Sequence['outputs.GetDiskSourceSnapshotEncryptionKeyResult']:
@@ -371,6 +422,11 @@ class GetDiskResult:
371
422
  """
372
423
  return pulumi.get(self, "source_snapshot_id")
373
424
 
425
+ @property
426
+ @pulumi.getter(name="sourceStorageObject")
427
+ def source_storage_object(self) -> str:
428
+ return pulumi.get(self, "source_storage_object")
429
+
374
430
  @property
375
431
  @pulumi.getter(name="storagePool")
376
432
  def storage_pool(self) -> str:
@@ -410,7 +466,10 @@ class AwaitableGetDiskResult(GetDiskResult):
410
466
  yield self
411
467
  return GetDiskResult(
412
468
  access_mode=self.access_mode,
469
+ architecture=self.architecture,
413
470
  async_primary_disks=self.async_primary_disks,
471
+ create_snapshot_before_destroy=self.create_snapshot_before_destroy,
472
+ create_snapshot_before_destroy_prefix=self.create_snapshot_before_destroy_prefix,
414
473
  creation_timestamp=self.creation_timestamp,
415
474
  description=self.description,
416
475
  disk_encryption_keys=self.disk_encryption_keys,
@@ -428,6 +487,7 @@ class AwaitableGetDiskResult(GetDiskResult):
428
487
  licenses=self.licenses,
429
488
  multi_writer=self.multi_writer,
430
489
  name=self.name,
490
+ params=self.params,
431
491
  physical_block_size_bytes=self.physical_block_size_bytes,
432
492
  project=self.project,
433
493
  provisioned_iops=self.provisioned_iops,
@@ -441,8 +501,11 @@ class AwaitableGetDiskResult(GetDiskResult):
441
501
  source_disk_id=self.source_disk_id,
442
502
  source_image_encryption_keys=self.source_image_encryption_keys,
443
503
  source_image_id=self.source_image_id,
504
+ source_instant_snapshot=self.source_instant_snapshot,
505
+ source_instant_snapshot_id=self.source_instant_snapshot_id,
444
506
  source_snapshot_encryption_keys=self.source_snapshot_encryption_keys,
445
507
  source_snapshot_id=self.source_snapshot_id,
508
+ source_storage_object=self.source_storage_object,
446
509
  storage_pool=self.storage_pool,
447
510
  type=self.type,
448
511
  users=self.users,
@@ -489,7 +552,10 @@ def get_disk(name: Optional[str] = None,
489
552
 
490
553
  return AwaitableGetDiskResult(
491
554
  access_mode=pulumi.get(__ret__, 'access_mode'),
555
+ architecture=pulumi.get(__ret__, 'architecture'),
492
556
  async_primary_disks=pulumi.get(__ret__, 'async_primary_disks'),
557
+ create_snapshot_before_destroy=pulumi.get(__ret__, 'create_snapshot_before_destroy'),
558
+ create_snapshot_before_destroy_prefix=pulumi.get(__ret__, 'create_snapshot_before_destroy_prefix'),
493
559
  creation_timestamp=pulumi.get(__ret__, 'creation_timestamp'),
494
560
  description=pulumi.get(__ret__, 'description'),
495
561
  disk_encryption_keys=pulumi.get(__ret__, 'disk_encryption_keys'),
@@ -507,6 +573,7 @@ def get_disk(name: Optional[str] = None,
507
573
  licenses=pulumi.get(__ret__, 'licenses'),
508
574
  multi_writer=pulumi.get(__ret__, 'multi_writer'),
509
575
  name=pulumi.get(__ret__, 'name'),
576
+ params=pulumi.get(__ret__, 'params'),
510
577
  physical_block_size_bytes=pulumi.get(__ret__, 'physical_block_size_bytes'),
511
578
  project=pulumi.get(__ret__, 'project'),
512
579
  provisioned_iops=pulumi.get(__ret__, 'provisioned_iops'),
@@ -520,8 +587,11 @@ def get_disk(name: Optional[str] = None,
520
587
  source_disk_id=pulumi.get(__ret__, 'source_disk_id'),
521
588
  source_image_encryption_keys=pulumi.get(__ret__, 'source_image_encryption_keys'),
522
589
  source_image_id=pulumi.get(__ret__, 'source_image_id'),
590
+ source_instant_snapshot=pulumi.get(__ret__, 'source_instant_snapshot'),
591
+ source_instant_snapshot_id=pulumi.get(__ret__, 'source_instant_snapshot_id'),
523
592
  source_snapshot_encryption_keys=pulumi.get(__ret__, 'source_snapshot_encryption_keys'),
524
593
  source_snapshot_id=pulumi.get(__ret__, 'source_snapshot_id'),
594
+ source_storage_object=pulumi.get(__ret__, 'source_storage_object'),
525
595
  storage_pool=pulumi.get(__ret__, 'storage_pool'),
526
596
  type=pulumi.get(__ret__, 'type'),
527
597
  users=pulumi.get(__ret__, 'users'),
@@ -565,7 +635,10 @@ def get_disk_output(name: Optional[pulumi.Input[str]] = None,
565
635
  __ret__ = pulumi.runtime.invoke_output('gcp:compute/getDisk:getDisk', __args__, opts=opts, typ=GetDiskResult)
566
636
  return __ret__.apply(lambda __response__: GetDiskResult(
567
637
  access_mode=pulumi.get(__response__, 'access_mode'),
638
+ architecture=pulumi.get(__response__, 'architecture'),
568
639
  async_primary_disks=pulumi.get(__response__, 'async_primary_disks'),
640
+ create_snapshot_before_destroy=pulumi.get(__response__, 'create_snapshot_before_destroy'),
641
+ create_snapshot_before_destroy_prefix=pulumi.get(__response__, 'create_snapshot_before_destroy_prefix'),
569
642
  creation_timestamp=pulumi.get(__response__, 'creation_timestamp'),
570
643
  description=pulumi.get(__response__, 'description'),
571
644
  disk_encryption_keys=pulumi.get(__response__, 'disk_encryption_keys'),
@@ -583,6 +656,7 @@ def get_disk_output(name: Optional[pulumi.Input[str]] = None,
583
656
  licenses=pulumi.get(__response__, 'licenses'),
584
657
  multi_writer=pulumi.get(__response__, 'multi_writer'),
585
658
  name=pulumi.get(__response__, 'name'),
659
+ params=pulumi.get(__response__, 'params'),
586
660
  physical_block_size_bytes=pulumi.get(__response__, 'physical_block_size_bytes'),
587
661
  project=pulumi.get(__response__, 'project'),
588
662
  provisioned_iops=pulumi.get(__response__, 'provisioned_iops'),
@@ -596,8 +670,11 @@ def get_disk_output(name: Optional[pulumi.Input[str]] = None,
596
670
  source_disk_id=pulumi.get(__response__, 'source_disk_id'),
597
671
  source_image_encryption_keys=pulumi.get(__response__, 'source_image_encryption_keys'),
598
672
  source_image_id=pulumi.get(__response__, 'source_image_id'),
673
+ source_instant_snapshot=pulumi.get(__response__, 'source_instant_snapshot'),
674
+ source_instant_snapshot_id=pulumi.get(__response__, 'source_instant_snapshot_id'),
599
675
  source_snapshot_encryption_keys=pulumi.get(__response__, 'source_snapshot_encryption_keys'),
600
676
  source_snapshot_id=pulumi.get(__response__, 'source_snapshot_id'),
677
+ source_storage_object=pulumi.get(__response__, 'source_storage_object'),
601
678
  storage_pool=pulumi.get(__response__, 'storage_pool'),
602
679
  type=pulumi.get(__response__, 'type'),
603
680
  users=pulumi.get(__response__, 'users'),
@@ -0,0 +1,182 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = [
18
+ 'GetInstantSnapshotIamPolicyResult',
19
+ 'AwaitableGetInstantSnapshotIamPolicyResult',
20
+ 'get_instant_snapshot_iam_policy',
21
+ 'get_instant_snapshot_iam_policy_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetInstantSnapshotIamPolicyResult:
26
+ """
27
+ A collection of values returned by getInstantSnapshotIamPolicy.
28
+ """
29
+ def __init__(__self__, etag=None, id=None, name=None, policy_data=None, project=None, zone=None):
30
+ if etag and not isinstance(etag, str):
31
+ raise TypeError("Expected argument 'etag' to be a str")
32
+ pulumi.set(__self__, "etag", etag)
33
+ if id and not isinstance(id, str):
34
+ raise TypeError("Expected argument 'id' to be a str")
35
+ pulumi.set(__self__, "id", id)
36
+ if name and not isinstance(name, str):
37
+ raise TypeError("Expected argument 'name' to be a str")
38
+ pulumi.set(__self__, "name", name)
39
+ if policy_data and not isinstance(policy_data, str):
40
+ raise TypeError("Expected argument 'policy_data' to be a str")
41
+ pulumi.set(__self__, "policy_data", policy_data)
42
+ if project and not isinstance(project, str):
43
+ raise TypeError("Expected argument 'project' to be a str")
44
+ pulumi.set(__self__, "project", project)
45
+ if zone and not isinstance(zone, str):
46
+ raise TypeError("Expected argument 'zone' to be a str")
47
+ pulumi.set(__self__, "zone", zone)
48
+
49
+ @property
50
+ @pulumi.getter
51
+ def etag(self) -> str:
52
+ """
53
+ (Computed) The etag of the IAM policy.
54
+ """
55
+ return pulumi.get(self, "etag")
56
+
57
+ @property
58
+ @pulumi.getter
59
+ def id(self) -> str:
60
+ """
61
+ The provider-assigned unique ID for this managed resource.
62
+ """
63
+ return pulumi.get(self, "id")
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def name(self) -> str:
68
+ return pulumi.get(self, "name")
69
+
70
+ @property
71
+ @pulumi.getter(name="policyData")
72
+ def policy_data(self) -> str:
73
+ """
74
+ (Required only by `compute.InstantSnapshotIamPolicy`) The policy data generated by
75
+ a `organizations_get_iam_policy` data source.
76
+ """
77
+ return pulumi.get(self, "policy_data")
78
+
79
+ @property
80
+ @pulumi.getter
81
+ def project(self) -> str:
82
+ return pulumi.get(self, "project")
83
+
84
+ @property
85
+ @pulumi.getter
86
+ def zone(self) -> str:
87
+ return pulumi.get(self, "zone")
88
+
89
+
90
+ class AwaitableGetInstantSnapshotIamPolicyResult(GetInstantSnapshotIamPolicyResult):
91
+ # pylint: disable=using-constant-test
92
+ def __await__(self):
93
+ if False:
94
+ yield self
95
+ return GetInstantSnapshotIamPolicyResult(
96
+ etag=self.etag,
97
+ id=self.id,
98
+ name=self.name,
99
+ policy_data=self.policy_data,
100
+ project=self.project,
101
+ zone=self.zone)
102
+
103
+
104
+ def get_instant_snapshot_iam_policy(name: Optional[str] = None,
105
+ project: Optional[str] = None,
106
+ zone: Optional[str] = None,
107
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetInstantSnapshotIamPolicyResult:
108
+ """
109
+ Retrieves the current IAM policy data for instantsnapshot
110
+
111
+ ## Example Usage
112
+
113
+ ```python
114
+ import pulumi
115
+ import pulumi_gcp as gcp
116
+
117
+ policy = gcp.compute.get_instant_snapshot_iam_policy(project=default["project"],
118
+ zone=default["zone"],
119
+ name=default["name"])
120
+ ```
121
+
122
+
123
+ :param str name: Used to find the parent resource to bind the IAM policy to
124
+ :param str project: The ID of the project in which the resource belongs.
125
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
126
+ :param str zone: A reference to the zone where the disk is located. Used to find the parent resource to bind the IAM policy to. If not specified,
127
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
128
+ zone is specified, it is taken from the provider configuration.
129
+ """
130
+ __args__ = dict()
131
+ __args__['name'] = name
132
+ __args__['project'] = project
133
+ __args__['zone'] = zone
134
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
135
+ __ret__ = pulumi.runtime.invoke('gcp:compute/getInstantSnapshotIamPolicy:getInstantSnapshotIamPolicy', __args__, opts=opts, typ=GetInstantSnapshotIamPolicyResult).value
136
+
137
+ return AwaitableGetInstantSnapshotIamPolicyResult(
138
+ etag=pulumi.get(__ret__, 'etag'),
139
+ id=pulumi.get(__ret__, 'id'),
140
+ name=pulumi.get(__ret__, 'name'),
141
+ policy_data=pulumi.get(__ret__, 'policy_data'),
142
+ project=pulumi.get(__ret__, 'project'),
143
+ zone=pulumi.get(__ret__, 'zone'))
144
+ def get_instant_snapshot_iam_policy_output(name: Optional[pulumi.Input[str]] = None,
145
+ project: Optional[pulumi.Input[Optional[str]]] = None,
146
+ zone: Optional[pulumi.Input[Optional[str]]] = None,
147
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetInstantSnapshotIamPolicyResult]:
148
+ """
149
+ Retrieves the current IAM policy data for instantsnapshot
150
+
151
+ ## Example Usage
152
+
153
+ ```python
154
+ import pulumi
155
+ import pulumi_gcp as gcp
156
+
157
+ policy = gcp.compute.get_instant_snapshot_iam_policy(project=default["project"],
158
+ zone=default["zone"],
159
+ name=default["name"])
160
+ ```
161
+
162
+
163
+ :param str name: Used to find the parent resource to bind the IAM policy to
164
+ :param str project: The ID of the project in which the resource belongs.
165
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
166
+ :param str zone: A reference to the zone where the disk is located. Used to find the parent resource to bind the IAM policy to. If not specified,
167
+ the value will be parsed from the identifier of the parent resource. If no zone is provided in the parent identifier and no
168
+ zone is specified, it is taken from the provider configuration.
169
+ """
170
+ __args__ = dict()
171
+ __args__['name'] = name
172
+ __args__['project'] = project
173
+ __args__['zone'] = zone
174
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
175
+ __ret__ = pulumi.runtime.invoke_output('gcp:compute/getInstantSnapshotIamPolicy:getInstantSnapshotIamPolicy', __args__, opts=opts, typ=GetInstantSnapshotIamPolicyResult)
176
+ return __ret__.apply(lambda __response__: GetInstantSnapshotIamPolicyResult(
177
+ etag=pulumi.get(__response__, 'etag'),
178
+ id=pulumi.get(__response__, 'id'),
179
+ name=pulumi.get(__response__, 'name'),
180
+ policy_data=pulumi.get(__response__, 'policy_data'),
181
+ project=pulumi.get(__response__, 'project'),
182
+ zone=pulumi.get(__response__, 'zone')))
@@ -27,10 +27,16 @@ class GetRegionDiskResult:
27
27
  """
28
28
  A collection of values returned by getRegionDisk.
29
29
  """
30
- def __init__(__self__, async_primary_disks=None, creation_timestamp=None, description=None, disk_encryption_keys=None, effective_labels=None, guest_os_features=None, id=None, interface=None, label_fingerprint=None, labels=None, last_attach_timestamp=None, last_detach_timestamp=None, licenses=None, name=None, physical_block_size_bytes=None, project=None, pulumi_labels=None, region=None, replica_zones=None, self_link=None, size=None, snapshot=None, source_disk=None, source_disk_id=None, source_snapshot_encryption_keys=None, source_snapshot_id=None, type=None, users=None):
30
+ def __init__(__self__, async_primary_disks=None, create_snapshot_before_destroy=None, create_snapshot_before_destroy_prefix=None, creation_timestamp=None, description=None, disk_encryption_keys=None, effective_labels=None, guest_os_features=None, id=None, interface=None, label_fingerprint=None, labels=None, last_attach_timestamp=None, last_detach_timestamp=None, licenses=None, name=None, physical_block_size_bytes=None, project=None, pulumi_labels=None, region=None, replica_zones=None, self_link=None, size=None, snapshot=None, source_disk=None, source_disk_id=None, source_snapshot_encryption_keys=None, source_snapshot_id=None, type=None, users=None):
31
31
  if async_primary_disks and not isinstance(async_primary_disks, list):
32
32
  raise TypeError("Expected argument 'async_primary_disks' to be a list")
33
33
  pulumi.set(__self__, "async_primary_disks", async_primary_disks)
34
+ if create_snapshot_before_destroy and not isinstance(create_snapshot_before_destroy, bool):
35
+ raise TypeError("Expected argument 'create_snapshot_before_destroy' to be a bool")
36
+ pulumi.set(__self__, "create_snapshot_before_destroy", create_snapshot_before_destroy)
37
+ if create_snapshot_before_destroy_prefix and not isinstance(create_snapshot_before_destroy_prefix, str):
38
+ raise TypeError("Expected argument 'create_snapshot_before_destroy_prefix' to be a str")
39
+ pulumi.set(__self__, "create_snapshot_before_destroy_prefix", create_snapshot_before_destroy_prefix)
34
40
  if creation_timestamp and not isinstance(creation_timestamp, str):
35
41
  raise TypeError("Expected argument 'creation_timestamp' to be a str")
36
42
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
@@ -118,6 +124,16 @@ class GetRegionDiskResult:
118
124
  def async_primary_disks(self) -> Sequence['outputs.GetRegionDiskAsyncPrimaryDiskResult']:
119
125
  return pulumi.get(self, "async_primary_disks")
120
126
 
127
+ @property
128
+ @pulumi.getter(name="createSnapshotBeforeDestroy")
129
+ def create_snapshot_before_destroy(self) -> bool:
130
+ return pulumi.get(self, "create_snapshot_before_destroy")
131
+
132
+ @property
133
+ @pulumi.getter(name="createSnapshotBeforeDestroyPrefix")
134
+ def create_snapshot_before_destroy_prefix(self) -> str:
135
+ return pulumi.get(self, "create_snapshot_before_destroy_prefix")
136
+
121
137
  @property
122
138
  @pulumi.getter(name="creationTimestamp")
123
139
  def creation_timestamp(self) -> str:
@@ -264,6 +280,8 @@ class AwaitableGetRegionDiskResult(GetRegionDiskResult):
264
280
  yield self
265
281
  return GetRegionDiskResult(
266
282
  async_primary_disks=self.async_primary_disks,
283
+ create_snapshot_before_destroy=self.create_snapshot_before_destroy,
284
+ create_snapshot_before_destroy_prefix=self.create_snapshot_before_destroy_prefix,
267
285
  creation_timestamp=self.creation_timestamp,
268
286
  description=self.description,
269
287
  disk_encryption_keys=self.disk_encryption_keys,
@@ -319,6 +337,8 @@ def get_region_disk(name: Optional[str] = None,
319
337
 
320
338
  return AwaitableGetRegionDiskResult(
321
339
  async_primary_disks=pulumi.get(__ret__, 'async_primary_disks'),
340
+ create_snapshot_before_destroy=pulumi.get(__ret__, 'create_snapshot_before_destroy'),
341
+ create_snapshot_before_destroy_prefix=pulumi.get(__ret__, 'create_snapshot_before_destroy_prefix'),
322
342
  creation_timestamp=pulumi.get(__ret__, 'creation_timestamp'),
323
343
  description=pulumi.get(__ret__, 'description'),
324
344
  disk_encryption_keys=pulumi.get(__ret__, 'disk_encryption_keys'),
@@ -371,6 +391,8 @@ def get_region_disk_output(name: Optional[pulumi.Input[str]] = None,
371
391
  __ret__ = pulumi.runtime.invoke_output('gcp:compute/getRegionDisk:getRegionDisk', __args__, opts=opts, typ=GetRegionDiskResult)
372
392
  return __ret__.apply(lambda __response__: GetRegionDiskResult(
373
393
  async_primary_disks=pulumi.get(__response__, 'async_primary_disks'),
394
+ create_snapshot_before_destroy=pulumi.get(__response__, 'create_snapshot_before_destroy'),
395
+ create_snapshot_before_destroy_prefix=pulumi.get(__response__, 'create_snapshot_before_destroy_prefix'),
374
396
  creation_timestamp=pulumi.get(__response__, 'creation_timestamp'),
375
397
  description=pulumi.get(__response__, 'description'),
376
398
  disk_encryption_keys=pulumi.get(__response__, 'disk_encryption_keys'),