pulumi-gcp 8.21.0a1741103856__py3-none-any.whl → 8.21.0a1741183435__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 (56) hide show
  1. pulumi_gcp/__init__.py +64 -0
  2. pulumi_gcp/alloydb/cluster.py +148 -0
  3. pulumi_gcp/alloydb/instance.py +28 -28
  4. pulumi_gcp/apihub/__init__.py +1 -0
  5. pulumi_gcp/apihub/host_project_registration.py +535 -0
  6. pulumi_gcp/bigquery/table.py +1 -1
  7. pulumi_gcp/compute/__init__.py +5 -0
  8. pulumi_gcp/compute/_inputs.py +770 -0
  9. pulumi_gcp/compute/backend_service.py +14 -7
  10. pulumi_gcp/compute/ca_external_account_key.py +48 -3
  11. pulumi_gcp/compute/disk.py +295 -0
  12. pulumi_gcp/compute/get_disk.py +56 -1
  13. pulumi_gcp/compute/get_instant_snapshot_iam_policy.py +182 -0
  14. pulumi_gcp/compute/instant_snapshot.py +796 -0
  15. pulumi_gcp/compute/instant_snapshot_iam_binding.py +1087 -0
  16. pulumi_gcp/compute/instant_snapshot_iam_member.py +1087 -0
  17. pulumi_gcp/compute/instant_snapshot_iam_policy.py +906 -0
  18. pulumi_gcp/compute/outputs.py +1329 -6
  19. pulumi_gcp/compute/region_backend_service.py +14 -7
  20. pulumi_gcp/compute/route.py +228 -2
  21. pulumi_gcp/compute/url_map.py +8 -0
  22. pulumi_gcp/container/_inputs.py +3 -3
  23. pulumi_gcp/container/outputs.py +4 -4
  24. pulumi_gcp/datacatalog/entry.py +4 -0
  25. pulumi_gcp/datacatalog/tag.py +4 -0
  26. pulumi_gcp/dataproc/_inputs.py +12 -15
  27. pulumi_gcp/dataproc/outputs.py +8 -10
  28. pulumi_gcp/discoveryengine/target_site.py +4 -4
  29. pulumi_gcp/eventarc/__init__.py +1 -0
  30. pulumi_gcp/eventarc/_inputs.py +40 -0
  31. pulumi_gcp/eventarc/message_bus.py +927 -0
  32. pulumi_gcp/eventarc/outputs.py +41 -0
  33. pulumi_gcp/gemini/__init__.py +1 -0
  34. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +20 -8
  35. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +6 -0
  36. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +734 -0
  37. pulumi_gcp/gemini/logging_setting_binding.py +7 -7
  38. pulumi_gcp/iam/_inputs.py +33 -9
  39. pulumi_gcp/iam/outputs.py +22 -6
  40. pulumi_gcp/iam/workforce_pool_provider.py +2 -2
  41. pulumi_gcp/memorystore/__init__.py +1 -0
  42. pulumi_gcp/memorystore/get_instance.py +425 -0
  43. pulumi_gcp/memorystore/outputs.py +582 -0
  44. pulumi_gcp/networkconnectivity/hub.py +84 -0
  45. pulumi_gcp/networkservices/grpc_route.py +116 -12
  46. pulumi_gcp/notebooks/location.py +4 -0
  47. pulumi_gcp/pulumi-plugin.json +1 -1
  48. pulumi_gcp/storage/__init__.py +1 -0
  49. pulumi_gcp/storage/_inputs.py +74 -0
  50. pulumi_gcp/storage/anywhere_cache.py +552 -0
  51. pulumi_gcp/storage/outputs.py +65 -0
  52. pulumi_gcp/storage/transfer_job.py +67 -0
  53. {pulumi_gcp-8.21.0a1741103856.dist-info → pulumi_gcp-8.21.0a1741183435.dist-info}/METADATA +1 -1
  54. {pulumi_gcp-8.21.0a1741103856.dist-info → pulumi_gcp-8.21.0a1741183435.dist-info}/RECORD +56 -46
  55. {pulumi_gcp-8.21.0a1741103856.dist-info → pulumi_gcp-8.21.0a1741183435.dist-info}/WHEEL +0 -0
  56. {pulumi_gcp-8.21.0a1741103856.dist-info → pulumi_gcp-8.21.0a1741183435.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,796 @@
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__ = ['InstantSnapshotArgs', 'InstantSnapshot']
18
+
19
+ @pulumi.input_type
20
+ class InstantSnapshotArgs:
21
+ def __init__(__self__, *,
22
+ source_disk: pulumi.Input[str],
23
+ description: Optional[pulumi.Input[str]] = None,
24
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
25
+ name: Optional[pulumi.Input[str]] = None,
26
+ project: Optional[pulumi.Input[str]] = None,
27
+ zone: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a InstantSnapshot resource.
30
+ :param pulumi.Input[str] source_disk: A reference to the disk used to create this instant snapshot.
31
+
32
+
33
+ - - -
34
+ :param pulumi.Input[str] description: An optional description of this resource.
35
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels to apply to this InstantSnapshot.
36
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
37
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
38
+ :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is
39
+ created. The name must be 1-63 characters long, and comply with
40
+ RFC1035. Specifically, the name must be 1-63 characters long and match
41
+ the regular expression `a-z?` which means the
42
+ first character must be a lowercase letter, and all following
43
+ characters must be a dash, lowercase letter, or digit, except the last
44
+ character, which cannot be a dash.
45
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
46
+ If it is not provided, the provider project is used.
47
+ :param pulumi.Input[str] zone: A reference to the zone where the disk is located.
48
+ """
49
+ pulumi.set(__self__, "source_disk", source_disk)
50
+ if description is not None:
51
+ pulumi.set(__self__, "description", description)
52
+ if labels is not None:
53
+ pulumi.set(__self__, "labels", labels)
54
+ if name is not None:
55
+ pulumi.set(__self__, "name", name)
56
+ if project is not None:
57
+ pulumi.set(__self__, "project", project)
58
+ if zone is not None:
59
+ pulumi.set(__self__, "zone", zone)
60
+
61
+ @property
62
+ @pulumi.getter(name="sourceDisk")
63
+ def source_disk(self) -> pulumi.Input[str]:
64
+ """
65
+ A reference to the disk used to create this instant snapshot.
66
+
67
+
68
+ - - -
69
+ """
70
+ return pulumi.get(self, "source_disk")
71
+
72
+ @source_disk.setter
73
+ def source_disk(self, value: pulumi.Input[str]):
74
+ pulumi.set(self, "source_disk", value)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def description(self) -> Optional[pulumi.Input[str]]:
79
+ """
80
+ An optional description of this resource.
81
+ """
82
+ return pulumi.get(self, "description")
83
+
84
+ @description.setter
85
+ def description(self, value: Optional[pulumi.Input[str]]):
86
+ pulumi.set(self, "description", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
91
+ """
92
+ Labels to apply to this InstantSnapshot.
93
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
94
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
95
+ """
96
+ return pulumi.get(self, "labels")
97
+
98
+ @labels.setter
99
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
100
+ pulumi.set(self, "labels", value)
101
+
102
+ @property
103
+ @pulumi.getter
104
+ def name(self) -> Optional[pulumi.Input[str]]:
105
+ """
106
+ Name of the resource; provided by the client when the resource is
107
+ created. The name must be 1-63 characters long, and comply with
108
+ RFC1035. Specifically, the name must be 1-63 characters long and match
109
+ the regular expression `a-z?` which means the
110
+ first character must be a lowercase letter, and all following
111
+ characters must be a dash, lowercase letter, or digit, except the last
112
+ character, which cannot be a dash.
113
+ """
114
+ return pulumi.get(self, "name")
115
+
116
+ @name.setter
117
+ def name(self, value: Optional[pulumi.Input[str]]):
118
+ pulumi.set(self, "name", value)
119
+
120
+ @property
121
+ @pulumi.getter
122
+ def project(self) -> Optional[pulumi.Input[str]]:
123
+ """
124
+ The ID of the project in which the resource belongs.
125
+ If it is not provided, the provider project is used.
126
+ """
127
+ return pulumi.get(self, "project")
128
+
129
+ @project.setter
130
+ def project(self, value: Optional[pulumi.Input[str]]):
131
+ pulumi.set(self, "project", value)
132
+
133
+ @property
134
+ @pulumi.getter
135
+ def zone(self) -> Optional[pulumi.Input[str]]:
136
+ """
137
+ A reference to the zone where the disk is located.
138
+ """
139
+ return pulumi.get(self, "zone")
140
+
141
+ @zone.setter
142
+ def zone(self, value: Optional[pulumi.Input[str]]):
143
+ pulumi.set(self, "zone", value)
144
+
145
+
146
+ @pulumi.input_type
147
+ class _InstantSnapshotState:
148
+ def __init__(__self__, *,
149
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
150
+ description: Optional[pulumi.Input[str]] = None,
151
+ disk_size_gb: Optional[pulumi.Input[int]] = None,
152
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
153
+ label_fingerprint: Optional[pulumi.Input[str]] = None,
154
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
155
+ name: Optional[pulumi.Input[str]] = None,
156
+ project: Optional[pulumi.Input[str]] = None,
157
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
158
+ self_link: Optional[pulumi.Input[str]] = None,
159
+ source_disk: Optional[pulumi.Input[str]] = None,
160
+ source_disk_id: Optional[pulumi.Input[str]] = None,
161
+ zone: Optional[pulumi.Input[str]] = None):
162
+ """
163
+ Input properties used for looking up and filtering InstantSnapshot resources.
164
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
165
+ :param pulumi.Input[str] description: An optional description of this resource.
166
+ :param pulumi.Input[int] disk_size_gb: Size of the snapshot, specified in GB.
167
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
168
+ :param pulumi.Input[str] label_fingerprint: The fingerprint used for optimistic locking of this resource. Used
169
+ internally during updates.
170
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels to apply to this InstantSnapshot.
171
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
172
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
173
+ :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is
174
+ created. The name must be 1-63 characters long, and comply with
175
+ RFC1035. Specifically, the name must be 1-63 characters long and match
176
+ the regular expression `a-z?` which means the
177
+ first character must be a lowercase letter, and all following
178
+ characters must be a dash, lowercase letter, or digit, except the last
179
+ character, which cannot be a dash.
180
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
181
+ If it is not provided, the provider project is used.
182
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
183
+ and default labels configured on the provider.
184
+ :param pulumi.Input[str] self_link: The URI of the created resource.
185
+ :param pulumi.Input[str] source_disk: A reference to the disk used to create this instant snapshot.
186
+
187
+
188
+ - - -
189
+ :param pulumi.Input[str] source_disk_id: The ID value of the disk used to create this InstantSnapshot.
190
+ :param pulumi.Input[str] zone: A reference to the zone where the disk is located.
191
+ """
192
+ if creation_timestamp is not None:
193
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
194
+ if description is not None:
195
+ pulumi.set(__self__, "description", description)
196
+ if disk_size_gb is not None:
197
+ pulumi.set(__self__, "disk_size_gb", disk_size_gb)
198
+ if effective_labels is not None:
199
+ pulumi.set(__self__, "effective_labels", effective_labels)
200
+ if label_fingerprint is not None:
201
+ pulumi.set(__self__, "label_fingerprint", label_fingerprint)
202
+ if labels is not None:
203
+ pulumi.set(__self__, "labels", labels)
204
+ if name is not None:
205
+ pulumi.set(__self__, "name", name)
206
+ if project is not None:
207
+ pulumi.set(__self__, "project", project)
208
+ if pulumi_labels is not None:
209
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
210
+ if self_link is not None:
211
+ pulumi.set(__self__, "self_link", self_link)
212
+ if source_disk is not None:
213
+ pulumi.set(__self__, "source_disk", source_disk)
214
+ if source_disk_id is not None:
215
+ pulumi.set(__self__, "source_disk_id", source_disk_id)
216
+ if zone is not None:
217
+ pulumi.set(__self__, "zone", zone)
218
+
219
+ @property
220
+ @pulumi.getter(name="creationTimestamp")
221
+ def creation_timestamp(self) -> Optional[pulumi.Input[str]]:
222
+ """
223
+ Creation timestamp in RFC3339 text format.
224
+ """
225
+ return pulumi.get(self, "creation_timestamp")
226
+
227
+ @creation_timestamp.setter
228
+ def creation_timestamp(self, value: Optional[pulumi.Input[str]]):
229
+ pulumi.set(self, "creation_timestamp", value)
230
+
231
+ @property
232
+ @pulumi.getter
233
+ def description(self) -> Optional[pulumi.Input[str]]:
234
+ """
235
+ An optional description of this resource.
236
+ """
237
+ return pulumi.get(self, "description")
238
+
239
+ @description.setter
240
+ def description(self, value: Optional[pulumi.Input[str]]):
241
+ pulumi.set(self, "description", value)
242
+
243
+ @property
244
+ @pulumi.getter(name="diskSizeGb")
245
+ def disk_size_gb(self) -> Optional[pulumi.Input[int]]:
246
+ """
247
+ Size of the snapshot, specified in GB.
248
+ """
249
+ return pulumi.get(self, "disk_size_gb")
250
+
251
+ @disk_size_gb.setter
252
+ def disk_size_gb(self, value: Optional[pulumi.Input[int]]):
253
+ pulumi.set(self, "disk_size_gb", value)
254
+
255
+ @property
256
+ @pulumi.getter(name="effectiveLabels")
257
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
258
+ """
259
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
260
+ """
261
+ return pulumi.get(self, "effective_labels")
262
+
263
+ @effective_labels.setter
264
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
265
+ pulumi.set(self, "effective_labels", value)
266
+
267
+ @property
268
+ @pulumi.getter(name="labelFingerprint")
269
+ def label_fingerprint(self) -> Optional[pulumi.Input[str]]:
270
+ """
271
+ The fingerprint used for optimistic locking of this resource. Used
272
+ internally during updates.
273
+ """
274
+ return pulumi.get(self, "label_fingerprint")
275
+
276
+ @label_fingerprint.setter
277
+ def label_fingerprint(self, value: Optional[pulumi.Input[str]]):
278
+ pulumi.set(self, "label_fingerprint", value)
279
+
280
+ @property
281
+ @pulumi.getter
282
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
283
+ """
284
+ Labels to apply to this InstantSnapshot.
285
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
286
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
287
+ """
288
+ return pulumi.get(self, "labels")
289
+
290
+ @labels.setter
291
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
292
+ pulumi.set(self, "labels", value)
293
+
294
+ @property
295
+ @pulumi.getter
296
+ def name(self) -> Optional[pulumi.Input[str]]:
297
+ """
298
+ Name of the resource; provided by the client when the resource is
299
+ created. The name must be 1-63 characters long, and comply with
300
+ RFC1035. Specifically, the name must be 1-63 characters long and match
301
+ the regular expression `a-z?` which means the
302
+ first character must be a lowercase letter, and all following
303
+ characters must be a dash, lowercase letter, or digit, except the last
304
+ character, which cannot be a dash.
305
+ """
306
+ return pulumi.get(self, "name")
307
+
308
+ @name.setter
309
+ def name(self, value: Optional[pulumi.Input[str]]):
310
+ pulumi.set(self, "name", value)
311
+
312
+ @property
313
+ @pulumi.getter
314
+ def project(self) -> Optional[pulumi.Input[str]]:
315
+ """
316
+ The ID of the project in which the resource belongs.
317
+ If it is not provided, the provider project is used.
318
+ """
319
+ return pulumi.get(self, "project")
320
+
321
+ @project.setter
322
+ def project(self, value: Optional[pulumi.Input[str]]):
323
+ pulumi.set(self, "project", value)
324
+
325
+ @property
326
+ @pulumi.getter(name="pulumiLabels")
327
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
328
+ """
329
+ The combination of labels configured directly on the resource
330
+ and default labels configured on the provider.
331
+ """
332
+ return pulumi.get(self, "pulumi_labels")
333
+
334
+ @pulumi_labels.setter
335
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
336
+ pulumi.set(self, "pulumi_labels", value)
337
+
338
+ @property
339
+ @pulumi.getter(name="selfLink")
340
+ def self_link(self) -> Optional[pulumi.Input[str]]:
341
+ """
342
+ The URI of the created resource.
343
+ """
344
+ return pulumi.get(self, "self_link")
345
+
346
+ @self_link.setter
347
+ def self_link(self, value: Optional[pulumi.Input[str]]):
348
+ pulumi.set(self, "self_link", value)
349
+
350
+ @property
351
+ @pulumi.getter(name="sourceDisk")
352
+ def source_disk(self) -> Optional[pulumi.Input[str]]:
353
+ """
354
+ A reference to the disk used to create this instant snapshot.
355
+
356
+
357
+ - - -
358
+ """
359
+ return pulumi.get(self, "source_disk")
360
+
361
+ @source_disk.setter
362
+ def source_disk(self, value: Optional[pulumi.Input[str]]):
363
+ pulumi.set(self, "source_disk", value)
364
+
365
+ @property
366
+ @pulumi.getter(name="sourceDiskId")
367
+ def source_disk_id(self) -> Optional[pulumi.Input[str]]:
368
+ """
369
+ The ID value of the disk used to create this InstantSnapshot.
370
+ """
371
+ return pulumi.get(self, "source_disk_id")
372
+
373
+ @source_disk_id.setter
374
+ def source_disk_id(self, value: Optional[pulumi.Input[str]]):
375
+ pulumi.set(self, "source_disk_id", value)
376
+
377
+ @property
378
+ @pulumi.getter
379
+ def zone(self) -> Optional[pulumi.Input[str]]:
380
+ """
381
+ A reference to the zone where the disk is located.
382
+ """
383
+ return pulumi.get(self, "zone")
384
+
385
+ @zone.setter
386
+ def zone(self, value: Optional[pulumi.Input[str]]):
387
+ pulumi.set(self, "zone", value)
388
+
389
+
390
+ class InstantSnapshot(pulumi.CustomResource):
391
+ @overload
392
+ def __init__(__self__,
393
+ resource_name: str,
394
+ opts: Optional[pulumi.ResourceOptions] = None,
395
+ description: Optional[pulumi.Input[str]] = None,
396
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
397
+ name: Optional[pulumi.Input[str]] = None,
398
+ project: Optional[pulumi.Input[str]] = None,
399
+ source_disk: Optional[pulumi.Input[str]] = None,
400
+ zone: Optional[pulumi.Input[str]] = None,
401
+ __props__=None):
402
+ """
403
+ Represents an instant snapshot resource.
404
+
405
+ An instant snapshot is an in-place backup of a disk that can be used to rapidly create a new disk in minutes.
406
+
407
+ Instant snapshots capture data at a specific point in time. They are optimized for rapidly restoring captured
408
+ data to a new disk. Use instant snapshots to quickly recover data in cases where the zone and disk are still intact
409
+ but the data on the disk has been lost or corrupted
410
+
411
+ To get more information about InstantSnapshot, see:
412
+
413
+ * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instantSnapshots)
414
+ * How-to Guides
415
+ * [Official Documentation](https://cloud.google.com/compute/docs/disks/instant-snapshots)
416
+
417
+ ## Example Usage
418
+
419
+ ### Instant Snapshot Basic
420
+
421
+ ```python
422
+ import pulumi
423
+ import pulumi_gcp as gcp
424
+
425
+ foo = gcp.compute.Disk("foo",
426
+ name="example-disk",
427
+ type="pd-ssd",
428
+ size=10)
429
+ default = gcp.compute.InstantSnapshot("default",
430
+ name="instant-snapshot",
431
+ zone="us-central1-a",
432
+ source_disk=foo.self_link)
433
+ ```
434
+
435
+ ## Import
436
+
437
+ InstantSnapshot can be imported using any of these accepted formats:
438
+
439
+ * `projects/{{project}}/zones/{{zone}}/instantSnapshots/{{name}}`
440
+
441
+ * `{{project}}/{{zone}}/{{name}}`
442
+
443
+ * `{{zone}}/{{name}}`
444
+
445
+ * `{{name}}`
446
+
447
+ When using the `pulumi import` command, InstantSnapshot can be imported using one of the formats above. For example:
448
+
449
+ ```sh
450
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default projects/{{project}}/zones/{{zone}}/instantSnapshots/{{name}}
451
+ ```
452
+
453
+ ```sh
454
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default {{project}}/{{zone}}/{{name}}
455
+ ```
456
+
457
+ ```sh
458
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default {{zone}}/{{name}}
459
+ ```
460
+
461
+ ```sh
462
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default {{name}}
463
+ ```
464
+
465
+ :param str resource_name: The name of the resource.
466
+ :param pulumi.ResourceOptions opts: Options for the resource.
467
+ :param pulumi.Input[str] description: An optional description of this resource.
468
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels to apply to this InstantSnapshot.
469
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
470
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
471
+ :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is
472
+ created. The name must be 1-63 characters long, and comply with
473
+ RFC1035. Specifically, the name must be 1-63 characters long and match
474
+ the regular expression `a-z?` which means the
475
+ first character must be a lowercase letter, and all following
476
+ characters must be a dash, lowercase letter, or digit, except the last
477
+ character, which cannot be a dash.
478
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
479
+ If it is not provided, the provider project is used.
480
+ :param pulumi.Input[str] source_disk: A reference to the disk used to create this instant snapshot.
481
+
482
+
483
+ - - -
484
+ :param pulumi.Input[str] zone: A reference to the zone where the disk is located.
485
+ """
486
+ ...
487
+ @overload
488
+ def __init__(__self__,
489
+ resource_name: str,
490
+ args: InstantSnapshotArgs,
491
+ opts: Optional[pulumi.ResourceOptions] = None):
492
+ """
493
+ Represents an instant snapshot resource.
494
+
495
+ An instant snapshot is an in-place backup of a disk that can be used to rapidly create a new disk in minutes.
496
+
497
+ Instant snapshots capture data at a specific point in time. They are optimized for rapidly restoring captured
498
+ data to a new disk. Use instant snapshots to quickly recover data in cases where the zone and disk are still intact
499
+ but the data on the disk has been lost or corrupted
500
+
501
+ To get more information about InstantSnapshot, see:
502
+
503
+ * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instantSnapshots)
504
+ * How-to Guides
505
+ * [Official Documentation](https://cloud.google.com/compute/docs/disks/instant-snapshots)
506
+
507
+ ## Example Usage
508
+
509
+ ### Instant Snapshot Basic
510
+
511
+ ```python
512
+ import pulumi
513
+ import pulumi_gcp as gcp
514
+
515
+ foo = gcp.compute.Disk("foo",
516
+ name="example-disk",
517
+ type="pd-ssd",
518
+ size=10)
519
+ default = gcp.compute.InstantSnapshot("default",
520
+ name="instant-snapshot",
521
+ zone="us-central1-a",
522
+ source_disk=foo.self_link)
523
+ ```
524
+
525
+ ## Import
526
+
527
+ InstantSnapshot can be imported using any of these accepted formats:
528
+
529
+ * `projects/{{project}}/zones/{{zone}}/instantSnapshots/{{name}}`
530
+
531
+ * `{{project}}/{{zone}}/{{name}}`
532
+
533
+ * `{{zone}}/{{name}}`
534
+
535
+ * `{{name}}`
536
+
537
+ When using the `pulumi import` command, InstantSnapshot can be imported using one of the formats above. For example:
538
+
539
+ ```sh
540
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default projects/{{project}}/zones/{{zone}}/instantSnapshots/{{name}}
541
+ ```
542
+
543
+ ```sh
544
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default {{project}}/{{zone}}/{{name}}
545
+ ```
546
+
547
+ ```sh
548
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default {{zone}}/{{name}}
549
+ ```
550
+
551
+ ```sh
552
+ $ pulumi import gcp:compute/instantSnapshot:InstantSnapshot default {{name}}
553
+ ```
554
+
555
+ :param str resource_name: The name of the resource.
556
+ :param InstantSnapshotArgs args: The arguments to use to populate this resource's properties.
557
+ :param pulumi.ResourceOptions opts: Options for the resource.
558
+ """
559
+ ...
560
+ def __init__(__self__, resource_name: str, *args, **kwargs):
561
+ resource_args, opts = _utilities.get_resource_args_opts(InstantSnapshotArgs, pulumi.ResourceOptions, *args, **kwargs)
562
+ if resource_args is not None:
563
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
564
+ else:
565
+ __self__._internal_init(resource_name, *args, **kwargs)
566
+
567
+ def _internal_init(__self__,
568
+ resource_name: str,
569
+ opts: Optional[pulumi.ResourceOptions] = None,
570
+ description: Optional[pulumi.Input[str]] = None,
571
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
572
+ name: Optional[pulumi.Input[str]] = None,
573
+ project: Optional[pulumi.Input[str]] = None,
574
+ source_disk: Optional[pulumi.Input[str]] = None,
575
+ zone: Optional[pulumi.Input[str]] = None,
576
+ __props__=None):
577
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
578
+ if not isinstance(opts, pulumi.ResourceOptions):
579
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
580
+ if opts.id is None:
581
+ if __props__ is not None:
582
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
583
+ __props__ = InstantSnapshotArgs.__new__(InstantSnapshotArgs)
584
+
585
+ __props__.__dict__["description"] = description
586
+ __props__.__dict__["labels"] = labels
587
+ __props__.__dict__["name"] = name
588
+ __props__.__dict__["project"] = project
589
+ if source_disk is None and not opts.urn:
590
+ raise TypeError("Missing required property 'source_disk'")
591
+ __props__.__dict__["source_disk"] = source_disk
592
+ __props__.__dict__["zone"] = zone
593
+ __props__.__dict__["creation_timestamp"] = None
594
+ __props__.__dict__["disk_size_gb"] = None
595
+ __props__.__dict__["effective_labels"] = None
596
+ __props__.__dict__["label_fingerprint"] = None
597
+ __props__.__dict__["pulumi_labels"] = None
598
+ __props__.__dict__["self_link"] = None
599
+ __props__.__dict__["source_disk_id"] = None
600
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
601
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
602
+ super(InstantSnapshot, __self__).__init__(
603
+ 'gcp:compute/instantSnapshot:InstantSnapshot',
604
+ resource_name,
605
+ __props__,
606
+ opts)
607
+
608
+ @staticmethod
609
+ def get(resource_name: str,
610
+ id: pulumi.Input[str],
611
+ opts: Optional[pulumi.ResourceOptions] = None,
612
+ creation_timestamp: Optional[pulumi.Input[str]] = None,
613
+ description: Optional[pulumi.Input[str]] = None,
614
+ disk_size_gb: Optional[pulumi.Input[int]] = None,
615
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
616
+ label_fingerprint: Optional[pulumi.Input[str]] = None,
617
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
618
+ name: Optional[pulumi.Input[str]] = None,
619
+ project: Optional[pulumi.Input[str]] = None,
620
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
621
+ self_link: Optional[pulumi.Input[str]] = None,
622
+ source_disk: Optional[pulumi.Input[str]] = None,
623
+ source_disk_id: Optional[pulumi.Input[str]] = None,
624
+ zone: Optional[pulumi.Input[str]] = None) -> 'InstantSnapshot':
625
+ """
626
+ Get an existing InstantSnapshot resource's state with the given name, id, and optional extra
627
+ properties used to qualify the lookup.
628
+
629
+ :param str resource_name: The unique name of the resulting resource.
630
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
631
+ :param pulumi.ResourceOptions opts: Options for the resource.
632
+ :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
633
+ :param pulumi.Input[str] description: An optional description of this resource.
634
+ :param pulumi.Input[int] disk_size_gb: Size of the snapshot, specified in GB.
635
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
636
+ :param pulumi.Input[str] label_fingerprint: The fingerprint used for optimistic locking of this resource. Used
637
+ internally during updates.
638
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels to apply to this InstantSnapshot.
639
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
640
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
641
+ :param pulumi.Input[str] name: Name of the resource; provided by the client when the resource is
642
+ created. The name must be 1-63 characters long, and comply with
643
+ RFC1035. Specifically, the name must be 1-63 characters long and match
644
+ the regular expression `a-z?` which means the
645
+ first character must be a lowercase letter, and all following
646
+ characters must be a dash, lowercase letter, or digit, except the last
647
+ character, which cannot be a dash.
648
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
649
+ If it is not provided, the provider project is used.
650
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
651
+ and default labels configured on the provider.
652
+ :param pulumi.Input[str] self_link: The URI of the created resource.
653
+ :param pulumi.Input[str] source_disk: A reference to the disk used to create this instant snapshot.
654
+
655
+
656
+ - - -
657
+ :param pulumi.Input[str] source_disk_id: The ID value of the disk used to create this InstantSnapshot.
658
+ :param pulumi.Input[str] zone: A reference to the zone where the disk is located.
659
+ """
660
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
661
+
662
+ __props__ = _InstantSnapshotState.__new__(_InstantSnapshotState)
663
+
664
+ __props__.__dict__["creation_timestamp"] = creation_timestamp
665
+ __props__.__dict__["description"] = description
666
+ __props__.__dict__["disk_size_gb"] = disk_size_gb
667
+ __props__.__dict__["effective_labels"] = effective_labels
668
+ __props__.__dict__["label_fingerprint"] = label_fingerprint
669
+ __props__.__dict__["labels"] = labels
670
+ __props__.__dict__["name"] = name
671
+ __props__.__dict__["project"] = project
672
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
673
+ __props__.__dict__["self_link"] = self_link
674
+ __props__.__dict__["source_disk"] = source_disk
675
+ __props__.__dict__["source_disk_id"] = source_disk_id
676
+ __props__.__dict__["zone"] = zone
677
+ return InstantSnapshot(resource_name, opts=opts, __props__=__props__)
678
+
679
+ @property
680
+ @pulumi.getter(name="creationTimestamp")
681
+ def creation_timestamp(self) -> pulumi.Output[str]:
682
+ """
683
+ Creation timestamp in RFC3339 text format.
684
+ """
685
+ return pulumi.get(self, "creation_timestamp")
686
+
687
+ @property
688
+ @pulumi.getter
689
+ def description(self) -> pulumi.Output[Optional[str]]:
690
+ """
691
+ An optional description of this resource.
692
+ """
693
+ return pulumi.get(self, "description")
694
+
695
+ @property
696
+ @pulumi.getter(name="diskSizeGb")
697
+ def disk_size_gb(self) -> pulumi.Output[int]:
698
+ """
699
+ Size of the snapshot, specified in GB.
700
+ """
701
+ return pulumi.get(self, "disk_size_gb")
702
+
703
+ @property
704
+ @pulumi.getter(name="effectiveLabels")
705
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
706
+ """
707
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
708
+ """
709
+ return pulumi.get(self, "effective_labels")
710
+
711
+ @property
712
+ @pulumi.getter(name="labelFingerprint")
713
+ def label_fingerprint(self) -> pulumi.Output[str]:
714
+ """
715
+ The fingerprint used for optimistic locking of this resource. Used
716
+ internally during updates.
717
+ """
718
+ return pulumi.get(self, "label_fingerprint")
719
+
720
+ @property
721
+ @pulumi.getter
722
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
723
+ """
724
+ Labels to apply to this InstantSnapshot.
725
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
726
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
727
+ """
728
+ return pulumi.get(self, "labels")
729
+
730
+ @property
731
+ @pulumi.getter
732
+ def name(self) -> pulumi.Output[str]:
733
+ """
734
+ Name of the resource; provided by the client when the resource is
735
+ created. The name must be 1-63 characters long, and comply with
736
+ RFC1035. Specifically, the name must be 1-63 characters long and match
737
+ the regular expression `a-z?` which means the
738
+ first character must be a lowercase letter, and all following
739
+ characters must be a dash, lowercase letter, or digit, except the last
740
+ character, which cannot be a dash.
741
+ """
742
+ return pulumi.get(self, "name")
743
+
744
+ @property
745
+ @pulumi.getter
746
+ def project(self) -> pulumi.Output[str]:
747
+ """
748
+ The ID of the project in which the resource belongs.
749
+ If it is not provided, the provider project is used.
750
+ """
751
+ return pulumi.get(self, "project")
752
+
753
+ @property
754
+ @pulumi.getter(name="pulumiLabels")
755
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
756
+ """
757
+ The combination of labels configured directly on the resource
758
+ and default labels configured on the provider.
759
+ """
760
+ return pulumi.get(self, "pulumi_labels")
761
+
762
+ @property
763
+ @pulumi.getter(name="selfLink")
764
+ def self_link(self) -> pulumi.Output[str]:
765
+ """
766
+ The URI of the created resource.
767
+ """
768
+ return pulumi.get(self, "self_link")
769
+
770
+ @property
771
+ @pulumi.getter(name="sourceDisk")
772
+ def source_disk(self) -> pulumi.Output[str]:
773
+ """
774
+ A reference to the disk used to create this instant snapshot.
775
+
776
+
777
+ - - -
778
+ """
779
+ return pulumi.get(self, "source_disk")
780
+
781
+ @property
782
+ @pulumi.getter(name="sourceDiskId")
783
+ def source_disk_id(self) -> pulumi.Output[str]:
784
+ """
785
+ The ID value of the disk used to create this InstantSnapshot.
786
+ """
787
+ return pulumi.get(self, "source_disk_id")
788
+
789
+ @property
790
+ @pulumi.getter
791
+ def zone(self) -> pulumi.Output[str]:
792
+ """
793
+ A reference to the zone where the disk is located.
794
+ """
795
+ return pulumi.get(self, "zone")
796
+