pulumi-gcp 7.7.1__py3-none-any.whl → 7.8.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 (37) hide show
  1. pulumi_gcp/__init__.py +43 -0
  2. pulumi_gcp/alloydb/instance.py +1 -1
  3. pulumi_gcp/blockchainnodeengine/__init__.py +10 -0
  4. pulumi_gcp/blockchainnodeengine/_inputs.py +388 -0
  5. pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +791 -0
  6. pulumi_gcp/blockchainnodeengine/outputs.py +441 -0
  7. pulumi_gcp/compute/__init__.py +2 -0
  8. pulumi_gcp/compute/disk.py +28 -0
  9. pulumi_gcp/compute/get_disk.py +11 -1
  10. pulumi_gcp/compute/get_instance_group_manager.py +11 -1
  11. pulumi_gcp/compute/get_machine_types.py +143 -0
  12. pulumi_gcp/compute/instance_group_manager.py +28 -0
  13. pulumi_gcp/compute/interconnect_attachment.py +75 -0
  14. pulumi_gcp/compute/outputs.py +219 -0
  15. pulumi_gcp/compute/region_instance_group_manager.py +28 -0
  16. pulumi_gcp/compute/region_network_endpoint.py +556 -0
  17. pulumi_gcp/compute/region_network_endpoint_group.py +128 -71
  18. pulumi_gcp/config/__init__.pyi +2 -2
  19. pulumi_gcp/config/vars.py +4 -4
  20. pulumi_gcp/discoveryengine/__init__.py +4 -0
  21. pulumi_gcp/discoveryengine/_inputs.py +237 -0
  22. pulumi_gcp/discoveryengine/chat_engine.py +822 -0
  23. pulumi_gcp/discoveryengine/outputs.py +304 -0
  24. pulumi_gcp/discoveryengine/search_engine.py +752 -0
  25. pulumi_gcp/filestore/_inputs.py +1 -3
  26. pulumi_gcp/filestore/outputs.py +1 -3
  27. pulumi_gcp/memcache/instance.py +61 -0
  28. pulumi_gcp/netapp/__init__.py +1 -0
  29. pulumi_gcp/netapp/storage_pool.py +34 -6
  30. pulumi_gcp/netapp/volume.py +65 -2
  31. pulumi_gcp/netapp/volume_snapshot.py +625 -0
  32. pulumi_gcp/provider.py +20 -0
  33. pulumi_gcp/vmwareengine/private_cloud.py +0 -7
  34. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/METADATA +1 -1
  35. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/RECORD +37 -26
  36. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/WHEEL +0 -0
  37. {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,625 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = ['VolumeSnapshotArgs', 'VolumeSnapshot']
13
+
14
+ @pulumi.input_type
15
+ class VolumeSnapshotArgs:
16
+ def __init__(__self__, *,
17
+ location: pulumi.Input[str],
18
+ volume_name: pulumi.Input[str],
19
+ description: Optional[pulumi.Input[str]] = None,
20
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
21
+ name: Optional[pulumi.Input[str]] = None,
22
+ project: Optional[pulumi.Input[str]] = None):
23
+ """
24
+ The set of arguments for constructing a VolumeSnapshot resource.
25
+ :param pulumi.Input[str] location: Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
26
+ :param pulumi.Input[str] volume_name: The name of the volume to create the snapshot in.
27
+ :param pulumi.Input[str] description: Description for the snapshot.
28
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
29
+
30
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
31
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
32
+ :param pulumi.Input[str] name: The name of the snapshot.
33
+
34
+
35
+ - - -
36
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
37
+ If it is not provided, the provider project is used.
38
+ """
39
+ pulumi.set(__self__, "location", location)
40
+ pulumi.set(__self__, "volume_name", volume_name)
41
+ if description is not None:
42
+ pulumi.set(__self__, "description", description)
43
+ if labels is not None:
44
+ pulumi.set(__self__, "labels", labels)
45
+ if name is not None:
46
+ pulumi.set(__self__, "name", name)
47
+ if project is not None:
48
+ pulumi.set(__self__, "project", project)
49
+
50
+ @property
51
+ @pulumi.getter
52
+ def location(self) -> pulumi.Input[str]:
53
+ """
54
+ Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
55
+ """
56
+ return pulumi.get(self, "location")
57
+
58
+ @location.setter
59
+ def location(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "location", value)
61
+
62
+ @property
63
+ @pulumi.getter(name="volumeName")
64
+ def volume_name(self) -> pulumi.Input[str]:
65
+ """
66
+ The name of the volume to create the snapshot in.
67
+ """
68
+ return pulumi.get(self, "volume_name")
69
+
70
+ @volume_name.setter
71
+ def volume_name(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "volume_name", value)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def description(self) -> Optional[pulumi.Input[str]]:
77
+ """
78
+ Description for the snapshot.
79
+ """
80
+ return pulumi.get(self, "description")
81
+
82
+ @description.setter
83
+ def description(self, value: Optional[pulumi.Input[str]]):
84
+ pulumi.set(self, "description", value)
85
+
86
+ @property
87
+ @pulumi.getter
88
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
89
+ """
90
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
91
+
92
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
93
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
94
+ """
95
+ return pulumi.get(self, "labels")
96
+
97
+ @labels.setter
98
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
99
+ pulumi.set(self, "labels", value)
100
+
101
+ @property
102
+ @pulumi.getter
103
+ def name(self) -> Optional[pulumi.Input[str]]:
104
+ """
105
+ The name of the snapshot.
106
+
107
+
108
+ - - -
109
+ """
110
+ return pulumi.get(self, "name")
111
+
112
+ @name.setter
113
+ def name(self, value: Optional[pulumi.Input[str]]):
114
+ pulumi.set(self, "name", value)
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def project(self) -> Optional[pulumi.Input[str]]:
119
+ """
120
+ The ID of the project in which the resource belongs.
121
+ If it is not provided, the provider project is used.
122
+ """
123
+ return pulumi.get(self, "project")
124
+
125
+ @project.setter
126
+ def project(self, value: Optional[pulumi.Input[str]]):
127
+ pulumi.set(self, "project", value)
128
+
129
+
130
+ @pulumi.input_type
131
+ class _VolumeSnapshotState:
132
+ def __init__(__self__, *,
133
+ description: Optional[pulumi.Input[str]] = None,
134
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
135
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
136
+ location: Optional[pulumi.Input[str]] = None,
137
+ name: Optional[pulumi.Input[str]] = None,
138
+ project: Optional[pulumi.Input[str]] = None,
139
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
140
+ used_bytes: Optional[pulumi.Input[int]] = None,
141
+ volume_name: Optional[pulumi.Input[str]] = None):
142
+ """
143
+ Input properties used for looking up and filtering VolumeSnapshot resources.
144
+ :param pulumi.Input[str] description: Description for the snapshot.
145
+ :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.
146
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
147
+
148
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
149
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
150
+ :param pulumi.Input[str] location: Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
151
+ :param pulumi.Input[str] name: The name of the snapshot.
152
+
153
+
154
+ - - -
155
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
156
+ If it is not provided, the provider project is used.
157
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
158
+ and default labels configured on the provider.
159
+ :param pulumi.Input[int] used_bytes: Storage used to store blocks unique to this snapshot.
160
+ :param pulumi.Input[str] volume_name: The name of the volume to create the snapshot in.
161
+ """
162
+ if description is not None:
163
+ pulumi.set(__self__, "description", description)
164
+ if effective_labels is not None:
165
+ pulumi.set(__self__, "effective_labels", effective_labels)
166
+ if labels is not None:
167
+ pulumi.set(__self__, "labels", labels)
168
+ if location is not None:
169
+ pulumi.set(__self__, "location", location)
170
+ if name is not None:
171
+ pulumi.set(__self__, "name", name)
172
+ if project is not None:
173
+ pulumi.set(__self__, "project", project)
174
+ if pulumi_labels is not None:
175
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
176
+ if used_bytes is not None:
177
+ pulumi.set(__self__, "used_bytes", used_bytes)
178
+ if volume_name is not None:
179
+ pulumi.set(__self__, "volume_name", volume_name)
180
+
181
+ @property
182
+ @pulumi.getter
183
+ def description(self) -> Optional[pulumi.Input[str]]:
184
+ """
185
+ Description for the snapshot.
186
+ """
187
+ return pulumi.get(self, "description")
188
+
189
+ @description.setter
190
+ def description(self, value: Optional[pulumi.Input[str]]):
191
+ pulumi.set(self, "description", value)
192
+
193
+ @property
194
+ @pulumi.getter(name="effectiveLabels")
195
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
196
+ """
197
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
198
+ """
199
+ return pulumi.get(self, "effective_labels")
200
+
201
+ @effective_labels.setter
202
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
203
+ pulumi.set(self, "effective_labels", value)
204
+
205
+ @property
206
+ @pulumi.getter
207
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
208
+ """
209
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
210
+
211
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
212
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
213
+ """
214
+ return pulumi.get(self, "labels")
215
+
216
+ @labels.setter
217
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
218
+ pulumi.set(self, "labels", value)
219
+
220
+ @property
221
+ @pulumi.getter
222
+ def location(self) -> Optional[pulumi.Input[str]]:
223
+ """
224
+ Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
225
+ """
226
+ return pulumi.get(self, "location")
227
+
228
+ @location.setter
229
+ def location(self, value: Optional[pulumi.Input[str]]):
230
+ pulumi.set(self, "location", value)
231
+
232
+ @property
233
+ @pulumi.getter
234
+ def name(self) -> Optional[pulumi.Input[str]]:
235
+ """
236
+ The name of the snapshot.
237
+
238
+
239
+ - - -
240
+ """
241
+ return pulumi.get(self, "name")
242
+
243
+ @name.setter
244
+ def name(self, value: Optional[pulumi.Input[str]]):
245
+ pulumi.set(self, "name", value)
246
+
247
+ @property
248
+ @pulumi.getter
249
+ def project(self) -> Optional[pulumi.Input[str]]:
250
+ """
251
+ The ID of the project in which the resource belongs.
252
+ If it is not provided, the provider project is used.
253
+ """
254
+ return pulumi.get(self, "project")
255
+
256
+ @project.setter
257
+ def project(self, value: Optional[pulumi.Input[str]]):
258
+ pulumi.set(self, "project", value)
259
+
260
+ @property
261
+ @pulumi.getter(name="pulumiLabels")
262
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
263
+ """
264
+ The combination of labels configured directly on the resource
265
+ and default labels configured on the provider.
266
+ """
267
+ return pulumi.get(self, "pulumi_labels")
268
+
269
+ @pulumi_labels.setter
270
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
271
+ pulumi.set(self, "pulumi_labels", value)
272
+
273
+ @property
274
+ @pulumi.getter(name="usedBytes")
275
+ def used_bytes(self) -> Optional[pulumi.Input[int]]:
276
+ """
277
+ Storage used to store blocks unique to this snapshot.
278
+ """
279
+ return pulumi.get(self, "used_bytes")
280
+
281
+ @used_bytes.setter
282
+ def used_bytes(self, value: Optional[pulumi.Input[int]]):
283
+ pulumi.set(self, "used_bytes", value)
284
+
285
+ @property
286
+ @pulumi.getter(name="volumeName")
287
+ def volume_name(self) -> Optional[pulumi.Input[str]]:
288
+ """
289
+ The name of the volume to create the snapshot in.
290
+ """
291
+ return pulumi.get(self, "volume_name")
292
+
293
+ @volume_name.setter
294
+ def volume_name(self, value: Optional[pulumi.Input[str]]):
295
+ pulumi.set(self, "volume_name", value)
296
+
297
+
298
+ class VolumeSnapshot(pulumi.CustomResource):
299
+ @overload
300
+ def __init__(__self__,
301
+ resource_name: str,
302
+ opts: Optional[pulumi.ResourceOptions] = None,
303
+ description: Optional[pulumi.Input[str]] = None,
304
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
305
+ location: Optional[pulumi.Input[str]] = None,
306
+ name: Optional[pulumi.Input[str]] = None,
307
+ project: Optional[pulumi.Input[str]] = None,
308
+ volume_name: Optional[pulumi.Input[str]] = None,
309
+ __props__=None):
310
+ """
311
+ NetApp Volumes helps you manage your data usage with snapshots that can quickly restore lost data.
312
+ Snapshots are point-in-time versions of your volume's content. They are resources of volumes and are
313
+ instant captures of your data that consume space only for modified data. Because data changes over
314
+ time, snapshots usually consume more space as they get older.
315
+ NetApp Volumes volumes use just-in-time copy-on-write so that unmodified files in snapshots don't
316
+ consume any of the volume's capacity.
317
+
318
+ To get more information about VolumeSnapshot, see:
319
+
320
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.volumes.snapshots)
321
+ * How-to Guides
322
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volume-snapshots/overview)
323
+
324
+ ## Example Usage
325
+ ### Volume Snapshot Create
326
+
327
+ ```python
328
+ import pulumi
329
+ import pulumi_gcp as gcp
330
+
331
+ default_network = gcp.compute.get_network(name="test-network")
332
+ default_storage_pool = gcp.netapp.StoragePool("defaultStoragePool",
333
+ location="us-west2",
334
+ service_level="PREMIUM",
335
+ capacity_gib="2048",
336
+ network=default_network.id)
337
+ default_volume = gcp.netapp.Volume("defaultVolume",
338
+ location=default_storage_pool.location,
339
+ capacity_gib="100",
340
+ share_name="test-volume",
341
+ storage_pool=default_storage_pool.name,
342
+ protocols=["NFSV3"])
343
+ test_snapshot = gcp.netapp.VolumeSnapshot("testSnapshot",
344
+ location=default_volume.location,
345
+ volume_name=default_volume.name,
346
+ opts=pulumi.ResourceOptions(depends_on=[default_volume]))
347
+ ```
348
+
349
+ ## Import
350
+
351
+ VolumeSnapshot can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/snapshots/{{name}}` * `{{project}}/{{location}}/{{volume_name}}/{{name}}` * `{{location}}/{{volume_name}}/{{name}}` When using the `pulumi import` command, VolumeSnapshot can be imported using one of the formats above. For example
352
+
353
+ ```sh
354
+ $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/snapshots/{{name}}
355
+ ```
356
+
357
+ ```sh
358
+ $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default {{project}}/{{location}}/{{volume_name}}/{{name}}
359
+ ```
360
+
361
+ ```sh
362
+ $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default {{location}}/{{volume_name}}/{{name}}
363
+ ```
364
+
365
+ :param str resource_name: The name of the resource.
366
+ :param pulumi.ResourceOptions opts: Options for the resource.
367
+ :param pulumi.Input[str] description: Description for the snapshot.
368
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
369
+
370
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
371
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
372
+ :param pulumi.Input[str] location: Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
373
+ :param pulumi.Input[str] name: The name of the snapshot.
374
+
375
+
376
+ - - -
377
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
378
+ If it is not provided, the provider project is used.
379
+ :param pulumi.Input[str] volume_name: The name of the volume to create the snapshot in.
380
+ """
381
+ ...
382
+ @overload
383
+ def __init__(__self__,
384
+ resource_name: str,
385
+ args: VolumeSnapshotArgs,
386
+ opts: Optional[pulumi.ResourceOptions] = None):
387
+ """
388
+ NetApp Volumes helps you manage your data usage with snapshots that can quickly restore lost data.
389
+ Snapshots are point-in-time versions of your volume's content. They are resources of volumes and are
390
+ instant captures of your data that consume space only for modified data. Because data changes over
391
+ time, snapshots usually consume more space as they get older.
392
+ NetApp Volumes volumes use just-in-time copy-on-write so that unmodified files in snapshots don't
393
+ consume any of the volume's capacity.
394
+
395
+ To get more information about VolumeSnapshot, see:
396
+
397
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.volumes.snapshots)
398
+ * How-to Guides
399
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volume-snapshots/overview)
400
+
401
+ ## Example Usage
402
+ ### Volume Snapshot Create
403
+
404
+ ```python
405
+ import pulumi
406
+ import pulumi_gcp as gcp
407
+
408
+ default_network = gcp.compute.get_network(name="test-network")
409
+ default_storage_pool = gcp.netapp.StoragePool("defaultStoragePool",
410
+ location="us-west2",
411
+ service_level="PREMIUM",
412
+ capacity_gib="2048",
413
+ network=default_network.id)
414
+ default_volume = gcp.netapp.Volume("defaultVolume",
415
+ location=default_storage_pool.location,
416
+ capacity_gib="100",
417
+ share_name="test-volume",
418
+ storage_pool=default_storage_pool.name,
419
+ protocols=["NFSV3"])
420
+ test_snapshot = gcp.netapp.VolumeSnapshot("testSnapshot",
421
+ location=default_volume.location,
422
+ volume_name=default_volume.name,
423
+ opts=pulumi.ResourceOptions(depends_on=[default_volume]))
424
+ ```
425
+
426
+ ## Import
427
+
428
+ VolumeSnapshot can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/snapshots/{{name}}` * `{{project}}/{{location}}/{{volume_name}}/{{name}}` * `{{location}}/{{volume_name}}/{{name}}` When using the `pulumi import` command, VolumeSnapshot can be imported using one of the formats above. For example
429
+
430
+ ```sh
431
+ $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/snapshots/{{name}}
432
+ ```
433
+
434
+ ```sh
435
+ $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default {{project}}/{{location}}/{{volume_name}}/{{name}}
436
+ ```
437
+
438
+ ```sh
439
+ $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default {{location}}/{{volume_name}}/{{name}}
440
+ ```
441
+
442
+ :param str resource_name: The name of the resource.
443
+ :param VolumeSnapshotArgs args: The arguments to use to populate this resource's properties.
444
+ :param pulumi.ResourceOptions opts: Options for the resource.
445
+ """
446
+ ...
447
+ def __init__(__self__, resource_name: str, *args, **kwargs):
448
+ resource_args, opts = _utilities.get_resource_args_opts(VolumeSnapshotArgs, pulumi.ResourceOptions, *args, **kwargs)
449
+ if resource_args is not None:
450
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
451
+ else:
452
+ __self__._internal_init(resource_name, *args, **kwargs)
453
+
454
+ def _internal_init(__self__,
455
+ resource_name: str,
456
+ opts: Optional[pulumi.ResourceOptions] = None,
457
+ description: Optional[pulumi.Input[str]] = None,
458
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
459
+ location: Optional[pulumi.Input[str]] = None,
460
+ name: Optional[pulumi.Input[str]] = None,
461
+ project: Optional[pulumi.Input[str]] = None,
462
+ volume_name: Optional[pulumi.Input[str]] = None,
463
+ __props__=None):
464
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
465
+ if not isinstance(opts, pulumi.ResourceOptions):
466
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
467
+ if opts.id is None:
468
+ if __props__ is not None:
469
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
470
+ __props__ = VolumeSnapshotArgs.__new__(VolumeSnapshotArgs)
471
+
472
+ __props__.__dict__["description"] = description
473
+ __props__.__dict__["labels"] = labels
474
+ if location is None and not opts.urn:
475
+ raise TypeError("Missing required property 'location'")
476
+ __props__.__dict__["location"] = location
477
+ __props__.__dict__["name"] = name
478
+ __props__.__dict__["project"] = project
479
+ if volume_name is None and not opts.urn:
480
+ raise TypeError("Missing required property 'volume_name'")
481
+ __props__.__dict__["volume_name"] = volume_name
482
+ __props__.__dict__["effective_labels"] = None
483
+ __props__.__dict__["pulumi_labels"] = None
484
+ __props__.__dict__["used_bytes"] = None
485
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
486
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
487
+ super(VolumeSnapshot, __self__).__init__(
488
+ 'gcp:netapp/volumeSnapshot:VolumeSnapshot',
489
+ resource_name,
490
+ __props__,
491
+ opts)
492
+
493
+ @staticmethod
494
+ def get(resource_name: str,
495
+ id: pulumi.Input[str],
496
+ opts: Optional[pulumi.ResourceOptions] = None,
497
+ description: Optional[pulumi.Input[str]] = None,
498
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
499
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
500
+ location: Optional[pulumi.Input[str]] = None,
501
+ name: Optional[pulumi.Input[str]] = None,
502
+ project: Optional[pulumi.Input[str]] = None,
503
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
504
+ used_bytes: Optional[pulumi.Input[int]] = None,
505
+ volume_name: Optional[pulumi.Input[str]] = None) -> 'VolumeSnapshot':
506
+ """
507
+ Get an existing VolumeSnapshot resource's state with the given name, id, and optional extra
508
+ properties used to qualify the lookup.
509
+
510
+ :param str resource_name: The unique name of the resulting resource.
511
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
512
+ :param pulumi.ResourceOptions opts: Options for the resource.
513
+ :param pulumi.Input[str] description: Description for the snapshot.
514
+ :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.
515
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
516
+
517
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
518
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
519
+ :param pulumi.Input[str] location: Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
520
+ :param pulumi.Input[str] name: The name of the snapshot.
521
+
522
+
523
+ - - -
524
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
525
+ If it is not provided, the provider project is used.
526
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
527
+ and default labels configured on the provider.
528
+ :param pulumi.Input[int] used_bytes: Storage used to store blocks unique to this snapshot.
529
+ :param pulumi.Input[str] volume_name: The name of the volume to create the snapshot in.
530
+ """
531
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
532
+
533
+ __props__ = _VolumeSnapshotState.__new__(_VolumeSnapshotState)
534
+
535
+ __props__.__dict__["description"] = description
536
+ __props__.__dict__["effective_labels"] = effective_labels
537
+ __props__.__dict__["labels"] = labels
538
+ __props__.__dict__["location"] = location
539
+ __props__.__dict__["name"] = name
540
+ __props__.__dict__["project"] = project
541
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
542
+ __props__.__dict__["used_bytes"] = used_bytes
543
+ __props__.__dict__["volume_name"] = volume_name
544
+ return VolumeSnapshot(resource_name, opts=opts, __props__=__props__)
545
+
546
+ @property
547
+ @pulumi.getter
548
+ def description(self) -> pulumi.Output[Optional[str]]:
549
+ """
550
+ Description for the snapshot.
551
+ """
552
+ return pulumi.get(self, "description")
553
+
554
+ @property
555
+ @pulumi.getter(name="effectiveLabels")
556
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
557
+ """
558
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
559
+ """
560
+ return pulumi.get(self, "effective_labels")
561
+
562
+ @property
563
+ @pulumi.getter
564
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
565
+ """
566
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
567
+
568
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
569
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
570
+ """
571
+ return pulumi.get(self, "labels")
572
+
573
+ @property
574
+ @pulumi.getter
575
+ def location(self) -> pulumi.Output[str]:
576
+ """
577
+ Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
578
+ """
579
+ return pulumi.get(self, "location")
580
+
581
+ @property
582
+ @pulumi.getter
583
+ def name(self) -> pulumi.Output[str]:
584
+ """
585
+ The name of the snapshot.
586
+
587
+
588
+ - - -
589
+ """
590
+ return pulumi.get(self, "name")
591
+
592
+ @property
593
+ @pulumi.getter
594
+ def project(self) -> pulumi.Output[str]:
595
+ """
596
+ The ID of the project in which the resource belongs.
597
+ If it is not provided, the provider project is used.
598
+ """
599
+ return pulumi.get(self, "project")
600
+
601
+ @property
602
+ @pulumi.getter(name="pulumiLabels")
603
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
604
+ """
605
+ The combination of labels configured directly on the resource
606
+ and default labels configured on the provider.
607
+ """
608
+ return pulumi.get(self, "pulumi_labels")
609
+
610
+ @property
611
+ @pulumi.getter(name="usedBytes")
612
+ def used_bytes(self) -> pulumi.Output[int]:
613
+ """
614
+ Storage used to store blocks unique to this snapshot.
615
+ """
616
+ return pulumi.get(self, "used_bytes")
617
+
618
+ @property
619
+ @pulumi.getter(name="volumeName")
620
+ def volume_name(self) -> pulumi.Output[str]:
621
+ """
622
+ The name of the volume to create the snapshot in.
623
+ """
624
+ return pulumi.get(self, "volume_name")
625
+