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.
- pulumi_gcp/__init__.py +43 -0
- pulumi_gcp/alloydb/instance.py +1 -1
- pulumi_gcp/blockchainnodeengine/__init__.py +10 -0
- pulumi_gcp/blockchainnodeengine/_inputs.py +388 -0
- pulumi_gcp/blockchainnodeengine/blockchain_nodes.py +791 -0
- pulumi_gcp/blockchainnodeengine/outputs.py +441 -0
- pulumi_gcp/compute/__init__.py +2 -0
- pulumi_gcp/compute/disk.py +28 -0
- pulumi_gcp/compute/get_disk.py +11 -1
- pulumi_gcp/compute/get_instance_group_manager.py +11 -1
- pulumi_gcp/compute/get_machine_types.py +143 -0
- pulumi_gcp/compute/instance_group_manager.py +28 -0
- pulumi_gcp/compute/interconnect_attachment.py +75 -0
- pulumi_gcp/compute/outputs.py +219 -0
- pulumi_gcp/compute/region_instance_group_manager.py +28 -0
- pulumi_gcp/compute/region_network_endpoint.py +556 -0
- pulumi_gcp/compute/region_network_endpoint_group.py +128 -71
- pulumi_gcp/config/__init__.pyi +2 -2
- pulumi_gcp/config/vars.py +4 -4
- pulumi_gcp/discoveryengine/__init__.py +4 -0
- pulumi_gcp/discoveryengine/_inputs.py +237 -0
- pulumi_gcp/discoveryengine/chat_engine.py +822 -0
- pulumi_gcp/discoveryengine/outputs.py +304 -0
- pulumi_gcp/discoveryengine/search_engine.py +752 -0
- pulumi_gcp/filestore/_inputs.py +1 -3
- pulumi_gcp/filestore/outputs.py +1 -3
- pulumi_gcp/memcache/instance.py +61 -0
- pulumi_gcp/netapp/__init__.py +1 -0
- pulumi_gcp/netapp/storage_pool.py +34 -6
- pulumi_gcp/netapp/volume.py +65 -2
- pulumi_gcp/netapp/volume_snapshot.py +625 -0
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/vmwareengine/private_cloud.py +0 -7
- {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/RECORD +37 -26
- {pulumi_gcp-7.7.1.dist-info → pulumi_gcp-7.8.0.dist-info}/WHEEL +0 -0
- {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
|
+
|