pulumi-gcp 7.7.0a1705990280__py3-none-any.whl → 7.8.0a1706310284__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. pulumi_gcp/__init__.py +56 -0
  2. pulumi_gcp/alloydb/cluster.py +26 -21
  3. pulumi_gcp/bigquery/_inputs.py +231 -0
  4. pulumi_gcp/bigquery/outputs.py +229 -0
  5. pulumi_gcp/bigquery/routine.py +256 -10
  6. pulumi_gcp/bigquery/table.py +47 -0
  7. pulumi_gcp/cloudbuildv2/repository.py +60 -53
  8. pulumi_gcp/cloudrunv2/_inputs.py +176 -4
  9. pulumi_gcp/cloudrunv2/outputs.py +256 -3
  10. pulumi_gcp/cloudrunv2/service.py +148 -0
  11. pulumi_gcp/composer/_inputs.py +24 -0
  12. pulumi_gcp/composer/outputs.py +34 -0
  13. pulumi_gcp/compute/_inputs.py +4 -2
  14. pulumi_gcp/compute/disk.py +14 -14
  15. pulumi_gcp/compute/outputs.py +4 -2
  16. pulumi_gcp/healthcare/fhir_store.py +56 -0
  17. pulumi_gcp/kms/crypto_key.py +2 -2
  18. pulumi_gcp/kms/crypto_key_iam_binding.py +2 -2
  19. pulumi_gcp/kms/crypto_key_iam_member.py +2 -2
  20. pulumi_gcp/kms/crypto_key_iam_policy.py +2 -2
  21. pulumi_gcp/kms/crypto_key_version.py +2 -2
  22. pulumi_gcp/kms/secret_ciphertext.py +2 -2
  23. pulumi_gcp/netapp/__init__.py +4 -0
  24. pulumi_gcp/netapp/_inputs.py +643 -0
  25. pulumi_gcp/netapp/backup_policy.py +829 -0
  26. pulumi_gcp/netapp/kmsconfig.py +2 -2
  27. pulumi_gcp/netapp/outputs.py +651 -0
  28. pulumi_gcp/netapp/volume.py +1467 -0
  29. pulumi_gcp/networksecurity/__init__.py +5 -0
  30. pulumi_gcp/networksecurity/_inputs.py +228 -0
  31. pulumi_gcp/networksecurity/address_group_iam_binding.py +324 -0
  32. pulumi_gcp/networksecurity/address_group_iam_member.py +324 -0
  33. pulumi_gcp/networksecurity/address_group_iam_policy.py +492 -0
  34. pulumi_gcp/networksecurity/get_address_group_iam_policy.py +144 -0
  35. pulumi_gcp/networksecurity/outputs.py +212 -0
  36. pulumi_gcp/networksecurity/security_profile.py +800 -0
  37. pulumi_gcp/networkservices/gateway.py +1 -1
  38. pulumi_gcp/organizations/get_folders.py +1 -1
  39. pulumi_gcp/orgpolicy/_inputs.py +12 -12
  40. pulumi_gcp/orgpolicy/outputs.py +12 -12
  41. pulumi_gcp/securesourcemanager/instance.py +4 -2
  42. pulumi_gcp/storage/insights_report_config.py +12 -10
  43. pulumi_gcp/vertex/__init__.py +1 -0
  44. pulumi_gcp/vertex/ai_feature_group_feature.py +767 -0
  45. pulumi_gcp/workstations/workstation_config.py +47 -0
  46. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/METADATA +1 -1
  47. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/RECORD +49 -39
  48. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/WHEEL +0 -0
  49. {pulumi_gcp-7.7.0a1705990280.dist-info → pulumi_gcp-7.8.0a1706310284.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1467 @@
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
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['VolumeArgs', 'Volume']
15
+
16
+ @pulumi.input_type
17
+ class VolumeArgs:
18
+ def __init__(__self__, *,
19
+ capacity_gib: pulumi.Input[str],
20
+ location: pulumi.Input[str],
21
+ protocols: pulumi.Input[Sequence[pulumi.Input[str]]],
22
+ share_name: pulumi.Input[str],
23
+ storage_pool: pulumi.Input[str],
24
+ description: Optional[pulumi.Input[str]] = None,
25
+ export_policy: Optional[pulumi.Input['VolumeExportPolicyArgs']] = None,
26
+ kerberos_enabled: Optional[pulumi.Input[bool]] = None,
27
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
28
+ name: Optional[pulumi.Input[str]] = None,
29
+ project: Optional[pulumi.Input[str]] = None,
30
+ restricted_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
31
+ security_style: Optional[pulumi.Input[str]] = None,
32
+ smb_settings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
33
+ snapshot_directory: Optional[pulumi.Input[bool]] = None,
34
+ snapshot_policy: Optional[pulumi.Input['VolumeSnapshotPolicyArgs']] = None,
35
+ unix_permissions: Optional[pulumi.Input[str]] = None):
36
+ """
37
+ The set of arguments for constructing a Volume resource.
38
+ :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
39
+ :param pulumi.Input[str] location: Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
40
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
41
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
42
+ :param pulumi.Input[str] share_name: Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
43
+ :param pulumi.Input[str] storage_pool: Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
44
+ :param pulumi.Input[str] description: An optional description of this resource.
45
+ :param pulumi.Input['VolumeExportPolicyArgs'] export_policy: Export policy of the volume for NFSV3 and/or NFSV4.1 access.
46
+ Structure is documented below.
47
+ :param pulumi.Input[bool] kerberos_enabled: Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
48
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
49
+
50
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
51
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
52
+ :param pulumi.Input[str] name: The name of the volume. Needs to be unique per location.
53
+
54
+
55
+ - - -
56
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
57
+ If it is not provided, the provider project is used.
58
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] restricted_actions: List of actions that are restricted on this volume.
59
+ Each value may be one of: `DELETE`.
60
+ :param pulumi.Input[str] security_style: Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
61
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
62
+ Possible values are: `NTFS`, `UNIX`.
63
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] smb_settings: Settings for volumes with SMB access.
64
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
65
+ :param pulumi.Input[bool] snapshot_directory: If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
66
+ :param pulumi.Input['VolumeSnapshotPolicyArgs'] snapshot_policy: Snapshot policy defines the schedule for automatic snapshot creation.
67
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
68
+ Structure is documented below.
69
+ :param pulumi.Input[str] unix_permissions: Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
70
+ """
71
+ pulumi.set(__self__, "capacity_gib", capacity_gib)
72
+ pulumi.set(__self__, "location", location)
73
+ pulumi.set(__self__, "protocols", protocols)
74
+ pulumi.set(__self__, "share_name", share_name)
75
+ pulumi.set(__self__, "storage_pool", storage_pool)
76
+ if description is not None:
77
+ pulumi.set(__self__, "description", description)
78
+ if export_policy is not None:
79
+ pulumi.set(__self__, "export_policy", export_policy)
80
+ if kerberos_enabled is not None:
81
+ pulumi.set(__self__, "kerberos_enabled", kerberos_enabled)
82
+ if labels is not None:
83
+ pulumi.set(__self__, "labels", labels)
84
+ if name is not None:
85
+ pulumi.set(__self__, "name", name)
86
+ if project is not None:
87
+ pulumi.set(__self__, "project", project)
88
+ if restricted_actions is not None:
89
+ pulumi.set(__self__, "restricted_actions", restricted_actions)
90
+ if security_style is not None:
91
+ pulumi.set(__self__, "security_style", security_style)
92
+ if smb_settings is not None:
93
+ pulumi.set(__self__, "smb_settings", smb_settings)
94
+ if snapshot_directory is not None:
95
+ pulumi.set(__self__, "snapshot_directory", snapshot_directory)
96
+ if snapshot_policy is not None:
97
+ pulumi.set(__self__, "snapshot_policy", snapshot_policy)
98
+ if unix_permissions is not None:
99
+ pulumi.set(__self__, "unix_permissions", unix_permissions)
100
+
101
+ @property
102
+ @pulumi.getter(name="capacityGib")
103
+ def capacity_gib(self) -> pulumi.Input[str]:
104
+ """
105
+ Capacity of the volume (in GiB).
106
+ """
107
+ return pulumi.get(self, "capacity_gib")
108
+
109
+ @capacity_gib.setter
110
+ def capacity_gib(self, value: pulumi.Input[str]):
111
+ pulumi.set(self, "capacity_gib", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def location(self) -> pulumi.Input[str]:
116
+ """
117
+ Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
118
+ """
119
+ return pulumi.get(self, "location")
120
+
121
+ @location.setter
122
+ def location(self, value: pulumi.Input[str]):
123
+ pulumi.set(self, "location", value)
124
+
125
+ @property
126
+ @pulumi.getter
127
+ def protocols(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
128
+ """
129
+ The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
130
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
131
+ """
132
+ return pulumi.get(self, "protocols")
133
+
134
+ @protocols.setter
135
+ def protocols(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
136
+ pulumi.set(self, "protocols", value)
137
+
138
+ @property
139
+ @pulumi.getter(name="shareName")
140
+ def share_name(self) -> pulumi.Input[str]:
141
+ """
142
+ Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
143
+ """
144
+ return pulumi.get(self, "share_name")
145
+
146
+ @share_name.setter
147
+ def share_name(self, value: pulumi.Input[str]):
148
+ pulumi.set(self, "share_name", value)
149
+
150
+ @property
151
+ @pulumi.getter(name="storagePool")
152
+ def storage_pool(self) -> pulumi.Input[str]:
153
+ """
154
+ Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
155
+ """
156
+ return pulumi.get(self, "storage_pool")
157
+
158
+ @storage_pool.setter
159
+ def storage_pool(self, value: pulumi.Input[str]):
160
+ pulumi.set(self, "storage_pool", value)
161
+
162
+ @property
163
+ @pulumi.getter
164
+ def description(self) -> Optional[pulumi.Input[str]]:
165
+ """
166
+ An optional description of this resource.
167
+ """
168
+ return pulumi.get(self, "description")
169
+
170
+ @description.setter
171
+ def description(self, value: Optional[pulumi.Input[str]]):
172
+ pulumi.set(self, "description", value)
173
+
174
+ @property
175
+ @pulumi.getter(name="exportPolicy")
176
+ def export_policy(self) -> Optional[pulumi.Input['VolumeExportPolicyArgs']]:
177
+ """
178
+ Export policy of the volume for NFSV3 and/or NFSV4.1 access.
179
+ Structure is documented below.
180
+ """
181
+ return pulumi.get(self, "export_policy")
182
+
183
+ @export_policy.setter
184
+ def export_policy(self, value: Optional[pulumi.Input['VolumeExportPolicyArgs']]):
185
+ pulumi.set(self, "export_policy", value)
186
+
187
+ @property
188
+ @pulumi.getter(name="kerberosEnabled")
189
+ def kerberos_enabled(self) -> Optional[pulumi.Input[bool]]:
190
+ """
191
+ Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
192
+ """
193
+ return pulumi.get(self, "kerberos_enabled")
194
+
195
+ @kerberos_enabled.setter
196
+ def kerberos_enabled(self, value: Optional[pulumi.Input[bool]]):
197
+ pulumi.set(self, "kerberos_enabled", value)
198
+
199
+ @property
200
+ @pulumi.getter
201
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
202
+ """
203
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
204
+
205
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
206
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
207
+ """
208
+ return pulumi.get(self, "labels")
209
+
210
+ @labels.setter
211
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
212
+ pulumi.set(self, "labels", value)
213
+
214
+ @property
215
+ @pulumi.getter
216
+ def name(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ The name of the volume. Needs to be unique per location.
219
+
220
+
221
+ - - -
222
+ """
223
+ return pulumi.get(self, "name")
224
+
225
+ @name.setter
226
+ def name(self, value: Optional[pulumi.Input[str]]):
227
+ pulumi.set(self, "name", value)
228
+
229
+ @property
230
+ @pulumi.getter
231
+ def project(self) -> Optional[pulumi.Input[str]]:
232
+ """
233
+ The ID of the project in which the resource belongs.
234
+ If it is not provided, the provider project is used.
235
+ """
236
+ return pulumi.get(self, "project")
237
+
238
+ @project.setter
239
+ def project(self, value: Optional[pulumi.Input[str]]):
240
+ pulumi.set(self, "project", value)
241
+
242
+ @property
243
+ @pulumi.getter(name="restrictedActions")
244
+ def restricted_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
245
+ """
246
+ List of actions that are restricted on this volume.
247
+ Each value may be one of: `DELETE`.
248
+ """
249
+ return pulumi.get(self, "restricted_actions")
250
+
251
+ @restricted_actions.setter
252
+ def restricted_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
253
+ pulumi.set(self, "restricted_actions", value)
254
+
255
+ @property
256
+ @pulumi.getter(name="securityStyle")
257
+ def security_style(self) -> Optional[pulumi.Input[str]]:
258
+ """
259
+ Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
260
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
261
+ Possible values are: `NTFS`, `UNIX`.
262
+ """
263
+ return pulumi.get(self, "security_style")
264
+
265
+ @security_style.setter
266
+ def security_style(self, value: Optional[pulumi.Input[str]]):
267
+ pulumi.set(self, "security_style", value)
268
+
269
+ @property
270
+ @pulumi.getter(name="smbSettings")
271
+ def smb_settings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
272
+ """
273
+ Settings for volumes with SMB access.
274
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
275
+ """
276
+ return pulumi.get(self, "smb_settings")
277
+
278
+ @smb_settings.setter
279
+ def smb_settings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
280
+ pulumi.set(self, "smb_settings", value)
281
+
282
+ @property
283
+ @pulumi.getter(name="snapshotDirectory")
284
+ def snapshot_directory(self) -> Optional[pulumi.Input[bool]]:
285
+ """
286
+ If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
287
+ """
288
+ return pulumi.get(self, "snapshot_directory")
289
+
290
+ @snapshot_directory.setter
291
+ def snapshot_directory(self, value: Optional[pulumi.Input[bool]]):
292
+ pulumi.set(self, "snapshot_directory", value)
293
+
294
+ @property
295
+ @pulumi.getter(name="snapshotPolicy")
296
+ def snapshot_policy(self) -> Optional[pulumi.Input['VolumeSnapshotPolicyArgs']]:
297
+ """
298
+ Snapshot policy defines the schedule for automatic snapshot creation.
299
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
300
+ Structure is documented below.
301
+ """
302
+ return pulumi.get(self, "snapshot_policy")
303
+
304
+ @snapshot_policy.setter
305
+ def snapshot_policy(self, value: Optional[pulumi.Input['VolumeSnapshotPolicyArgs']]):
306
+ pulumi.set(self, "snapshot_policy", value)
307
+
308
+ @property
309
+ @pulumi.getter(name="unixPermissions")
310
+ def unix_permissions(self) -> Optional[pulumi.Input[str]]:
311
+ """
312
+ Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
313
+ """
314
+ return pulumi.get(self, "unix_permissions")
315
+
316
+ @unix_permissions.setter
317
+ def unix_permissions(self, value: Optional[pulumi.Input[str]]):
318
+ pulumi.set(self, "unix_permissions", value)
319
+
320
+
321
+ @pulumi.input_type
322
+ class _VolumeState:
323
+ def __init__(__self__, *,
324
+ active_directory: Optional[pulumi.Input[str]] = None,
325
+ capacity_gib: Optional[pulumi.Input[str]] = None,
326
+ description: Optional[pulumi.Input[str]] = None,
327
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
328
+ encryption_type: Optional[pulumi.Input[str]] = None,
329
+ export_policy: Optional[pulumi.Input['VolumeExportPolicyArgs']] = None,
330
+ has_replication: Optional[pulumi.Input[bool]] = None,
331
+ kerberos_enabled: Optional[pulumi.Input[bool]] = None,
332
+ kms_config: Optional[pulumi.Input[str]] = None,
333
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
334
+ ldap_enabled: Optional[pulumi.Input[bool]] = None,
335
+ location: Optional[pulumi.Input[str]] = None,
336
+ mount_options: Optional[pulumi.Input[Sequence[pulumi.Input['VolumeMountOptionArgs']]]] = None,
337
+ name: Optional[pulumi.Input[str]] = None,
338
+ network: Optional[pulumi.Input[str]] = None,
339
+ project: Optional[pulumi.Input[str]] = None,
340
+ protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
341
+ psa_range: Optional[pulumi.Input[str]] = None,
342
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
343
+ restricted_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
344
+ security_style: Optional[pulumi.Input[str]] = None,
345
+ service_level: Optional[pulumi.Input[str]] = None,
346
+ share_name: Optional[pulumi.Input[str]] = None,
347
+ smb_settings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
348
+ snapshot_directory: Optional[pulumi.Input[bool]] = None,
349
+ snapshot_policy: Optional[pulumi.Input['VolumeSnapshotPolicyArgs']] = None,
350
+ storage_pool: Optional[pulumi.Input[str]] = None,
351
+ unix_permissions: Optional[pulumi.Input[str]] = None,
352
+ used_gib: Optional[pulumi.Input[str]] = None):
353
+ """
354
+ Input properties used for looking up and filtering Volume resources.
355
+ :param pulumi.Input[str] active_directory: Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
356
+ :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
357
+ :param pulumi.Input[str] description: An optional description of this resource.
358
+ :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.
359
+ :param pulumi.Input[str] encryption_type: Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
360
+ :param pulumi.Input['VolumeExportPolicyArgs'] export_policy: Export policy of the volume for NFSV3 and/or NFSV4.1 access.
361
+ Structure is documented below.
362
+ :param pulumi.Input[bool] has_replication: Indicates whether the volume is part of a volume replication relationship.
363
+ :param pulumi.Input[bool] kerberos_enabled: Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
364
+ :param pulumi.Input[str] kms_config: Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.
365
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
366
+
367
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
368
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
369
+ :param pulumi.Input[bool] ldap_enabled: Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.
370
+ :param pulumi.Input[str] location: Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
371
+ :param pulumi.Input[Sequence[pulumi.Input['VolumeMountOptionArgs']]] mount_options: Reports mount instructions for this volume.
372
+ Structure is documented below.
373
+ :param pulumi.Input[str] name: The name of the volume. Needs to be unique per location.
374
+
375
+
376
+ - - -
377
+ :param pulumi.Input[str] network: VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.
378
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
379
+ If it is not provided, the provider project is used.
380
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
381
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
382
+ :param pulumi.Input[str] psa_range: Name of the Private Service Access allocated range. Inherited from storage pool.
383
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
384
+ and default labels configured on the provider.
385
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] restricted_actions: List of actions that are restricted on this volume.
386
+ Each value may be one of: `DELETE`.
387
+ :param pulumi.Input[str] security_style: Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
388
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
389
+ Possible values are: `NTFS`, `UNIX`.
390
+ :param pulumi.Input[str] service_level: Service level of the volume. Inherited from storage pool.
391
+ :param pulumi.Input[str] share_name: Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
392
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] smb_settings: Settings for volumes with SMB access.
393
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
394
+ :param pulumi.Input[bool] snapshot_directory: If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
395
+ :param pulumi.Input['VolumeSnapshotPolicyArgs'] snapshot_policy: Snapshot policy defines the schedule for automatic snapshot creation.
396
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
397
+ Structure is documented below.
398
+ :param pulumi.Input[str] storage_pool: Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
399
+ :param pulumi.Input[str] unix_permissions: Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
400
+ :param pulumi.Input[str] used_gib: Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.
401
+ """
402
+ if active_directory is not None:
403
+ pulumi.set(__self__, "active_directory", active_directory)
404
+ if capacity_gib is not None:
405
+ pulumi.set(__self__, "capacity_gib", capacity_gib)
406
+ if description is not None:
407
+ pulumi.set(__self__, "description", description)
408
+ if effective_labels is not None:
409
+ pulumi.set(__self__, "effective_labels", effective_labels)
410
+ if encryption_type is not None:
411
+ pulumi.set(__self__, "encryption_type", encryption_type)
412
+ if export_policy is not None:
413
+ pulumi.set(__self__, "export_policy", export_policy)
414
+ if has_replication is not None:
415
+ pulumi.set(__self__, "has_replication", has_replication)
416
+ if kerberos_enabled is not None:
417
+ pulumi.set(__self__, "kerberos_enabled", kerberos_enabled)
418
+ if kms_config is not None:
419
+ pulumi.set(__self__, "kms_config", kms_config)
420
+ if labels is not None:
421
+ pulumi.set(__self__, "labels", labels)
422
+ if ldap_enabled is not None:
423
+ pulumi.set(__self__, "ldap_enabled", ldap_enabled)
424
+ if location is not None:
425
+ pulumi.set(__self__, "location", location)
426
+ if mount_options is not None:
427
+ pulumi.set(__self__, "mount_options", mount_options)
428
+ if name is not None:
429
+ pulumi.set(__self__, "name", name)
430
+ if network is not None:
431
+ pulumi.set(__self__, "network", network)
432
+ if project is not None:
433
+ pulumi.set(__self__, "project", project)
434
+ if protocols is not None:
435
+ pulumi.set(__self__, "protocols", protocols)
436
+ if psa_range is not None:
437
+ pulumi.set(__self__, "psa_range", psa_range)
438
+ if pulumi_labels is not None:
439
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
440
+ if restricted_actions is not None:
441
+ pulumi.set(__self__, "restricted_actions", restricted_actions)
442
+ if security_style is not None:
443
+ pulumi.set(__self__, "security_style", security_style)
444
+ if service_level is not None:
445
+ pulumi.set(__self__, "service_level", service_level)
446
+ if share_name is not None:
447
+ pulumi.set(__self__, "share_name", share_name)
448
+ if smb_settings is not None:
449
+ pulumi.set(__self__, "smb_settings", smb_settings)
450
+ if snapshot_directory is not None:
451
+ pulumi.set(__self__, "snapshot_directory", snapshot_directory)
452
+ if snapshot_policy is not None:
453
+ pulumi.set(__self__, "snapshot_policy", snapshot_policy)
454
+ if storage_pool is not None:
455
+ pulumi.set(__self__, "storage_pool", storage_pool)
456
+ if unix_permissions is not None:
457
+ pulumi.set(__self__, "unix_permissions", unix_permissions)
458
+ if used_gib is not None:
459
+ pulumi.set(__self__, "used_gib", used_gib)
460
+
461
+ @property
462
+ @pulumi.getter(name="activeDirectory")
463
+ def active_directory(self) -> Optional[pulumi.Input[str]]:
464
+ """
465
+ Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
466
+ """
467
+ return pulumi.get(self, "active_directory")
468
+
469
+ @active_directory.setter
470
+ def active_directory(self, value: Optional[pulumi.Input[str]]):
471
+ pulumi.set(self, "active_directory", value)
472
+
473
+ @property
474
+ @pulumi.getter(name="capacityGib")
475
+ def capacity_gib(self) -> Optional[pulumi.Input[str]]:
476
+ """
477
+ Capacity of the volume (in GiB).
478
+ """
479
+ return pulumi.get(self, "capacity_gib")
480
+
481
+ @capacity_gib.setter
482
+ def capacity_gib(self, value: Optional[pulumi.Input[str]]):
483
+ pulumi.set(self, "capacity_gib", value)
484
+
485
+ @property
486
+ @pulumi.getter
487
+ def description(self) -> Optional[pulumi.Input[str]]:
488
+ """
489
+ An optional description of this resource.
490
+ """
491
+ return pulumi.get(self, "description")
492
+
493
+ @description.setter
494
+ def description(self, value: Optional[pulumi.Input[str]]):
495
+ pulumi.set(self, "description", value)
496
+
497
+ @property
498
+ @pulumi.getter(name="effectiveLabels")
499
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
500
+ """
501
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
502
+ """
503
+ return pulumi.get(self, "effective_labels")
504
+
505
+ @effective_labels.setter
506
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
507
+ pulumi.set(self, "effective_labels", value)
508
+
509
+ @property
510
+ @pulumi.getter(name="encryptionType")
511
+ def encryption_type(self) -> Optional[pulumi.Input[str]]:
512
+ """
513
+ Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
514
+ """
515
+ return pulumi.get(self, "encryption_type")
516
+
517
+ @encryption_type.setter
518
+ def encryption_type(self, value: Optional[pulumi.Input[str]]):
519
+ pulumi.set(self, "encryption_type", value)
520
+
521
+ @property
522
+ @pulumi.getter(name="exportPolicy")
523
+ def export_policy(self) -> Optional[pulumi.Input['VolumeExportPolicyArgs']]:
524
+ """
525
+ Export policy of the volume for NFSV3 and/or NFSV4.1 access.
526
+ Structure is documented below.
527
+ """
528
+ return pulumi.get(self, "export_policy")
529
+
530
+ @export_policy.setter
531
+ def export_policy(self, value: Optional[pulumi.Input['VolumeExportPolicyArgs']]):
532
+ pulumi.set(self, "export_policy", value)
533
+
534
+ @property
535
+ @pulumi.getter(name="hasReplication")
536
+ def has_replication(self) -> Optional[pulumi.Input[bool]]:
537
+ """
538
+ Indicates whether the volume is part of a volume replication relationship.
539
+ """
540
+ return pulumi.get(self, "has_replication")
541
+
542
+ @has_replication.setter
543
+ def has_replication(self, value: Optional[pulumi.Input[bool]]):
544
+ pulumi.set(self, "has_replication", value)
545
+
546
+ @property
547
+ @pulumi.getter(name="kerberosEnabled")
548
+ def kerberos_enabled(self) -> Optional[pulumi.Input[bool]]:
549
+ """
550
+ Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
551
+ """
552
+ return pulumi.get(self, "kerberos_enabled")
553
+
554
+ @kerberos_enabled.setter
555
+ def kerberos_enabled(self, value: Optional[pulumi.Input[bool]]):
556
+ pulumi.set(self, "kerberos_enabled", value)
557
+
558
+ @property
559
+ @pulumi.getter(name="kmsConfig")
560
+ def kms_config(self) -> Optional[pulumi.Input[str]]:
561
+ """
562
+ Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.
563
+ """
564
+ return pulumi.get(self, "kms_config")
565
+
566
+ @kms_config.setter
567
+ def kms_config(self, value: Optional[pulumi.Input[str]]):
568
+ pulumi.set(self, "kms_config", value)
569
+
570
+ @property
571
+ @pulumi.getter
572
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
573
+ """
574
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
575
+
576
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
577
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
578
+ """
579
+ return pulumi.get(self, "labels")
580
+
581
+ @labels.setter
582
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
583
+ pulumi.set(self, "labels", value)
584
+
585
+ @property
586
+ @pulumi.getter(name="ldapEnabled")
587
+ def ldap_enabled(self) -> Optional[pulumi.Input[bool]]:
588
+ """
589
+ Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.
590
+ """
591
+ return pulumi.get(self, "ldap_enabled")
592
+
593
+ @ldap_enabled.setter
594
+ def ldap_enabled(self, value: Optional[pulumi.Input[bool]]):
595
+ pulumi.set(self, "ldap_enabled", value)
596
+
597
+ @property
598
+ @pulumi.getter
599
+ def location(self) -> Optional[pulumi.Input[str]]:
600
+ """
601
+ Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
602
+ """
603
+ return pulumi.get(self, "location")
604
+
605
+ @location.setter
606
+ def location(self, value: Optional[pulumi.Input[str]]):
607
+ pulumi.set(self, "location", value)
608
+
609
+ @property
610
+ @pulumi.getter(name="mountOptions")
611
+ def mount_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['VolumeMountOptionArgs']]]]:
612
+ """
613
+ Reports mount instructions for this volume.
614
+ Structure is documented below.
615
+ """
616
+ return pulumi.get(self, "mount_options")
617
+
618
+ @mount_options.setter
619
+ def mount_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['VolumeMountOptionArgs']]]]):
620
+ pulumi.set(self, "mount_options", value)
621
+
622
+ @property
623
+ @pulumi.getter
624
+ def name(self) -> Optional[pulumi.Input[str]]:
625
+ """
626
+ The name of the volume. Needs to be unique per location.
627
+
628
+
629
+ - - -
630
+ """
631
+ return pulumi.get(self, "name")
632
+
633
+ @name.setter
634
+ def name(self, value: Optional[pulumi.Input[str]]):
635
+ pulumi.set(self, "name", value)
636
+
637
+ @property
638
+ @pulumi.getter
639
+ def network(self) -> Optional[pulumi.Input[str]]:
640
+ """
641
+ VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.
642
+ """
643
+ return pulumi.get(self, "network")
644
+
645
+ @network.setter
646
+ def network(self, value: Optional[pulumi.Input[str]]):
647
+ pulumi.set(self, "network", value)
648
+
649
+ @property
650
+ @pulumi.getter
651
+ def project(self) -> Optional[pulumi.Input[str]]:
652
+ """
653
+ The ID of the project in which the resource belongs.
654
+ If it is not provided, the provider project is used.
655
+ """
656
+ return pulumi.get(self, "project")
657
+
658
+ @project.setter
659
+ def project(self, value: Optional[pulumi.Input[str]]):
660
+ pulumi.set(self, "project", value)
661
+
662
+ @property
663
+ @pulumi.getter
664
+ def protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
665
+ """
666
+ The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
667
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
668
+ """
669
+ return pulumi.get(self, "protocols")
670
+
671
+ @protocols.setter
672
+ def protocols(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
673
+ pulumi.set(self, "protocols", value)
674
+
675
+ @property
676
+ @pulumi.getter(name="psaRange")
677
+ def psa_range(self) -> Optional[pulumi.Input[str]]:
678
+ """
679
+ Name of the Private Service Access allocated range. Inherited from storage pool.
680
+ """
681
+ return pulumi.get(self, "psa_range")
682
+
683
+ @psa_range.setter
684
+ def psa_range(self, value: Optional[pulumi.Input[str]]):
685
+ pulumi.set(self, "psa_range", value)
686
+
687
+ @property
688
+ @pulumi.getter(name="pulumiLabels")
689
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
690
+ """
691
+ The combination of labels configured directly on the resource
692
+ and default labels configured on the provider.
693
+ """
694
+ return pulumi.get(self, "pulumi_labels")
695
+
696
+ @pulumi_labels.setter
697
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
698
+ pulumi.set(self, "pulumi_labels", value)
699
+
700
+ @property
701
+ @pulumi.getter(name="restrictedActions")
702
+ def restricted_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
703
+ """
704
+ List of actions that are restricted on this volume.
705
+ Each value may be one of: `DELETE`.
706
+ """
707
+ return pulumi.get(self, "restricted_actions")
708
+
709
+ @restricted_actions.setter
710
+ def restricted_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
711
+ pulumi.set(self, "restricted_actions", value)
712
+
713
+ @property
714
+ @pulumi.getter(name="securityStyle")
715
+ def security_style(self) -> Optional[pulumi.Input[str]]:
716
+ """
717
+ Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
718
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
719
+ Possible values are: `NTFS`, `UNIX`.
720
+ """
721
+ return pulumi.get(self, "security_style")
722
+
723
+ @security_style.setter
724
+ def security_style(self, value: Optional[pulumi.Input[str]]):
725
+ pulumi.set(self, "security_style", value)
726
+
727
+ @property
728
+ @pulumi.getter(name="serviceLevel")
729
+ def service_level(self) -> Optional[pulumi.Input[str]]:
730
+ """
731
+ Service level of the volume. Inherited from storage pool.
732
+ """
733
+ return pulumi.get(self, "service_level")
734
+
735
+ @service_level.setter
736
+ def service_level(self, value: Optional[pulumi.Input[str]]):
737
+ pulumi.set(self, "service_level", value)
738
+
739
+ @property
740
+ @pulumi.getter(name="shareName")
741
+ def share_name(self) -> Optional[pulumi.Input[str]]:
742
+ """
743
+ Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
744
+ """
745
+ return pulumi.get(self, "share_name")
746
+
747
+ @share_name.setter
748
+ def share_name(self, value: Optional[pulumi.Input[str]]):
749
+ pulumi.set(self, "share_name", value)
750
+
751
+ @property
752
+ @pulumi.getter(name="smbSettings")
753
+ def smb_settings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
754
+ """
755
+ Settings for volumes with SMB access.
756
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
757
+ """
758
+ return pulumi.get(self, "smb_settings")
759
+
760
+ @smb_settings.setter
761
+ def smb_settings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
762
+ pulumi.set(self, "smb_settings", value)
763
+
764
+ @property
765
+ @pulumi.getter(name="snapshotDirectory")
766
+ def snapshot_directory(self) -> Optional[pulumi.Input[bool]]:
767
+ """
768
+ If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
769
+ """
770
+ return pulumi.get(self, "snapshot_directory")
771
+
772
+ @snapshot_directory.setter
773
+ def snapshot_directory(self, value: Optional[pulumi.Input[bool]]):
774
+ pulumi.set(self, "snapshot_directory", value)
775
+
776
+ @property
777
+ @pulumi.getter(name="snapshotPolicy")
778
+ def snapshot_policy(self) -> Optional[pulumi.Input['VolumeSnapshotPolicyArgs']]:
779
+ """
780
+ Snapshot policy defines the schedule for automatic snapshot creation.
781
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
782
+ Structure is documented below.
783
+ """
784
+ return pulumi.get(self, "snapshot_policy")
785
+
786
+ @snapshot_policy.setter
787
+ def snapshot_policy(self, value: Optional[pulumi.Input['VolumeSnapshotPolicyArgs']]):
788
+ pulumi.set(self, "snapshot_policy", value)
789
+
790
+ @property
791
+ @pulumi.getter(name="storagePool")
792
+ def storage_pool(self) -> Optional[pulumi.Input[str]]:
793
+ """
794
+ Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
795
+ """
796
+ return pulumi.get(self, "storage_pool")
797
+
798
+ @storage_pool.setter
799
+ def storage_pool(self, value: Optional[pulumi.Input[str]]):
800
+ pulumi.set(self, "storage_pool", value)
801
+
802
+ @property
803
+ @pulumi.getter(name="unixPermissions")
804
+ def unix_permissions(self) -> Optional[pulumi.Input[str]]:
805
+ """
806
+ Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
807
+ """
808
+ return pulumi.get(self, "unix_permissions")
809
+
810
+ @unix_permissions.setter
811
+ def unix_permissions(self, value: Optional[pulumi.Input[str]]):
812
+ pulumi.set(self, "unix_permissions", value)
813
+
814
+ @property
815
+ @pulumi.getter(name="usedGib")
816
+ def used_gib(self) -> Optional[pulumi.Input[str]]:
817
+ """
818
+ Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.
819
+ """
820
+ return pulumi.get(self, "used_gib")
821
+
822
+ @used_gib.setter
823
+ def used_gib(self, value: Optional[pulumi.Input[str]]):
824
+ pulumi.set(self, "used_gib", value)
825
+
826
+
827
+ class Volume(pulumi.CustomResource):
828
+ @overload
829
+ def __init__(__self__,
830
+ resource_name: str,
831
+ opts: Optional[pulumi.ResourceOptions] = None,
832
+ capacity_gib: Optional[pulumi.Input[str]] = None,
833
+ description: Optional[pulumi.Input[str]] = None,
834
+ export_policy: Optional[pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']]] = None,
835
+ kerberos_enabled: Optional[pulumi.Input[bool]] = None,
836
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
837
+ location: Optional[pulumi.Input[str]] = None,
838
+ name: Optional[pulumi.Input[str]] = None,
839
+ project: Optional[pulumi.Input[str]] = None,
840
+ protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
841
+ restricted_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
842
+ security_style: Optional[pulumi.Input[str]] = None,
843
+ share_name: Optional[pulumi.Input[str]] = None,
844
+ smb_settings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
845
+ snapshot_directory: Optional[pulumi.Input[bool]] = None,
846
+ snapshot_policy: Optional[pulumi.Input[pulumi.InputType['VolumeSnapshotPolicyArgs']]] = None,
847
+ storage_pool: Optional[pulumi.Input[str]] = None,
848
+ unix_permissions: Optional[pulumi.Input[str]] = None,
849
+ __props__=None):
850
+ """
851
+ A volume is a file system container in a storage pool that stores application, database, and user data.
852
+
853
+ You can create a volume's capacity using the available capacity in the storage pool and you can define and resize the capacity without disruption to any processes.
854
+
855
+ Storage pool settings apply to the volumes contained within them automatically.
856
+
857
+ To get more information about Volume, see:
858
+
859
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.volumes)
860
+ * How-to Guides
861
+ * [Quickstart](https://cloud.google.com/netapp/volumes/docs/get-started/quickstarts/create-volume)
862
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volumes/overview)
863
+
864
+ ## Example Usage
865
+ ### Volume Basic
866
+
867
+ ```python
868
+ import pulumi
869
+ import pulumi_gcp as gcp
870
+
871
+ default_network = gcp.compute.get_network(name="test-network")
872
+ default_storage_pool = gcp.netapp.StoragePool("defaultStoragePool",
873
+ location="us-west2",
874
+ service_level="PREMIUM",
875
+ capacity_gib="2048",
876
+ network=default_network.id)
877
+ test_volume = gcp.netapp.Volume("testVolume",
878
+ location="us-west2",
879
+ capacity_gib="100",
880
+ share_name="test-volume",
881
+ storage_pool=default_storage_pool.name,
882
+ protocols=["NFSV3"])
883
+ ```
884
+
885
+ ## Import
886
+
887
+ Volume can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/volumes/{{name}}` * `{{project}}/{{location}}/{{name}}` * `{{location}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Volume using one of the formats above. For exampletf import {
888
+
889
+ id = "projects/{{project}}/locations/{{location}}/volumes/{{name}}"
890
+
891
+ to = google_netapp_volume.default }
892
+
893
+ ```sh
894
+ $ pulumi import gcp:netapp/volume:Volume When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Volume can be imported using one of the formats above. For example
895
+ ```
896
+
897
+ ```sh
898
+ $ pulumi import gcp:netapp/volume:Volume default projects/{{project}}/locations/{{location}}/volumes/{{name}}
899
+ ```
900
+
901
+ ```sh
902
+ $ pulumi import gcp:netapp/volume:Volume default {{project}}/{{location}}/{{name}}
903
+ ```
904
+
905
+ ```sh
906
+ $ pulumi import gcp:netapp/volume:Volume default {{location}}/{{name}}
907
+ ```
908
+
909
+ :param str resource_name: The name of the resource.
910
+ :param pulumi.ResourceOptions opts: Options for the resource.
911
+ :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
912
+ :param pulumi.Input[str] description: An optional description of this resource.
913
+ :param pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']] export_policy: Export policy of the volume for NFSV3 and/or NFSV4.1 access.
914
+ Structure is documented below.
915
+ :param pulumi.Input[bool] kerberos_enabled: Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
916
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
917
+
918
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
919
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
920
+ :param pulumi.Input[str] location: Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
921
+ :param pulumi.Input[str] name: The name of the volume. Needs to be unique per location.
922
+
923
+
924
+ - - -
925
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
926
+ If it is not provided, the provider project is used.
927
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
928
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
929
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] restricted_actions: List of actions that are restricted on this volume.
930
+ Each value may be one of: `DELETE`.
931
+ :param pulumi.Input[str] security_style: Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
932
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
933
+ Possible values are: `NTFS`, `UNIX`.
934
+ :param pulumi.Input[str] share_name: Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
935
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] smb_settings: Settings for volumes with SMB access.
936
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
937
+ :param pulumi.Input[bool] snapshot_directory: If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
938
+ :param pulumi.Input[pulumi.InputType['VolumeSnapshotPolicyArgs']] snapshot_policy: Snapshot policy defines the schedule for automatic snapshot creation.
939
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
940
+ Structure is documented below.
941
+ :param pulumi.Input[str] storage_pool: Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
942
+ :param pulumi.Input[str] unix_permissions: Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
943
+ """
944
+ ...
945
+ @overload
946
+ def __init__(__self__,
947
+ resource_name: str,
948
+ args: VolumeArgs,
949
+ opts: Optional[pulumi.ResourceOptions] = None):
950
+ """
951
+ A volume is a file system container in a storage pool that stores application, database, and user data.
952
+
953
+ You can create a volume's capacity using the available capacity in the storage pool and you can define and resize the capacity without disruption to any processes.
954
+
955
+ Storage pool settings apply to the volumes contained within them automatically.
956
+
957
+ To get more information about Volume, see:
958
+
959
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.volumes)
960
+ * How-to Guides
961
+ * [Quickstart](https://cloud.google.com/netapp/volumes/docs/get-started/quickstarts/create-volume)
962
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volumes/overview)
963
+
964
+ ## Example Usage
965
+ ### Volume Basic
966
+
967
+ ```python
968
+ import pulumi
969
+ import pulumi_gcp as gcp
970
+
971
+ default_network = gcp.compute.get_network(name="test-network")
972
+ default_storage_pool = gcp.netapp.StoragePool("defaultStoragePool",
973
+ location="us-west2",
974
+ service_level="PREMIUM",
975
+ capacity_gib="2048",
976
+ network=default_network.id)
977
+ test_volume = gcp.netapp.Volume("testVolume",
978
+ location="us-west2",
979
+ capacity_gib="100",
980
+ share_name="test-volume",
981
+ storage_pool=default_storage_pool.name,
982
+ protocols=["NFSV3"])
983
+ ```
984
+
985
+ ## Import
986
+
987
+ Volume can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/volumes/{{name}}` * `{{project}}/{{location}}/{{name}}` * `{{location}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Volume using one of the formats above. For exampletf import {
988
+
989
+ id = "projects/{{project}}/locations/{{location}}/volumes/{{name}}"
990
+
991
+ to = google_netapp_volume.default }
992
+
993
+ ```sh
994
+ $ pulumi import gcp:netapp/volume:Volume When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Volume can be imported using one of the formats above. For example
995
+ ```
996
+
997
+ ```sh
998
+ $ pulumi import gcp:netapp/volume:Volume default projects/{{project}}/locations/{{location}}/volumes/{{name}}
999
+ ```
1000
+
1001
+ ```sh
1002
+ $ pulumi import gcp:netapp/volume:Volume default {{project}}/{{location}}/{{name}}
1003
+ ```
1004
+
1005
+ ```sh
1006
+ $ pulumi import gcp:netapp/volume:Volume default {{location}}/{{name}}
1007
+ ```
1008
+
1009
+ :param str resource_name: The name of the resource.
1010
+ :param VolumeArgs args: The arguments to use to populate this resource's properties.
1011
+ :param pulumi.ResourceOptions opts: Options for the resource.
1012
+ """
1013
+ ...
1014
+ def __init__(__self__, resource_name: str, *args, **kwargs):
1015
+ resource_args, opts = _utilities.get_resource_args_opts(VolumeArgs, pulumi.ResourceOptions, *args, **kwargs)
1016
+ if resource_args is not None:
1017
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
1018
+ else:
1019
+ __self__._internal_init(resource_name, *args, **kwargs)
1020
+
1021
+ def _internal_init(__self__,
1022
+ resource_name: str,
1023
+ opts: Optional[pulumi.ResourceOptions] = None,
1024
+ capacity_gib: Optional[pulumi.Input[str]] = None,
1025
+ description: Optional[pulumi.Input[str]] = None,
1026
+ export_policy: Optional[pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']]] = None,
1027
+ kerberos_enabled: Optional[pulumi.Input[bool]] = None,
1028
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1029
+ location: Optional[pulumi.Input[str]] = None,
1030
+ name: Optional[pulumi.Input[str]] = None,
1031
+ project: Optional[pulumi.Input[str]] = None,
1032
+ protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1033
+ restricted_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1034
+ security_style: Optional[pulumi.Input[str]] = None,
1035
+ share_name: Optional[pulumi.Input[str]] = None,
1036
+ smb_settings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1037
+ snapshot_directory: Optional[pulumi.Input[bool]] = None,
1038
+ snapshot_policy: Optional[pulumi.Input[pulumi.InputType['VolumeSnapshotPolicyArgs']]] = None,
1039
+ storage_pool: Optional[pulumi.Input[str]] = None,
1040
+ unix_permissions: Optional[pulumi.Input[str]] = None,
1041
+ __props__=None):
1042
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1043
+ if not isinstance(opts, pulumi.ResourceOptions):
1044
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
1045
+ if opts.id is None:
1046
+ if __props__ is not None:
1047
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1048
+ __props__ = VolumeArgs.__new__(VolumeArgs)
1049
+
1050
+ if capacity_gib is None and not opts.urn:
1051
+ raise TypeError("Missing required property 'capacity_gib'")
1052
+ __props__.__dict__["capacity_gib"] = capacity_gib
1053
+ __props__.__dict__["description"] = description
1054
+ __props__.__dict__["export_policy"] = export_policy
1055
+ __props__.__dict__["kerberos_enabled"] = kerberos_enabled
1056
+ __props__.__dict__["labels"] = labels
1057
+ if location is None and not opts.urn:
1058
+ raise TypeError("Missing required property 'location'")
1059
+ __props__.__dict__["location"] = location
1060
+ __props__.__dict__["name"] = name
1061
+ __props__.__dict__["project"] = project
1062
+ if protocols is None and not opts.urn:
1063
+ raise TypeError("Missing required property 'protocols'")
1064
+ __props__.__dict__["protocols"] = protocols
1065
+ __props__.__dict__["restricted_actions"] = restricted_actions
1066
+ __props__.__dict__["security_style"] = security_style
1067
+ if share_name is None and not opts.urn:
1068
+ raise TypeError("Missing required property 'share_name'")
1069
+ __props__.__dict__["share_name"] = share_name
1070
+ __props__.__dict__["smb_settings"] = smb_settings
1071
+ __props__.__dict__["snapshot_directory"] = snapshot_directory
1072
+ __props__.__dict__["snapshot_policy"] = snapshot_policy
1073
+ if storage_pool is None and not opts.urn:
1074
+ raise TypeError("Missing required property 'storage_pool'")
1075
+ __props__.__dict__["storage_pool"] = storage_pool
1076
+ __props__.__dict__["unix_permissions"] = unix_permissions
1077
+ __props__.__dict__["active_directory"] = None
1078
+ __props__.__dict__["effective_labels"] = None
1079
+ __props__.__dict__["encryption_type"] = None
1080
+ __props__.__dict__["has_replication"] = None
1081
+ __props__.__dict__["kms_config"] = None
1082
+ __props__.__dict__["ldap_enabled"] = None
1083
+ __props__.__dict__["mount_options"] = None
1084
+ __props__.__dict__["network"] = None
1085
+ __props__.__dict__["psa_range"] = None
1086
+ __props__.__dict__["pulumi_labels"] = None
1087
+ __props__.__dict__["service_level"] = None
1088
+ __props__.__dict__["used_gib"] = None
1089
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1090
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1091
+ super(Volume, __self__).__init__(
1092
+ 'gcp:netapp/volume:Volume',
1093
+ resource_name,
1094
+ __props__,
1095
+ opts)
1096
+
1097
+ @staticmethod
1098
+ def get(resource_name: str,
1099
+ id: pulumi.Input[str],
1100
+ opts: Optional[pulumi.ResourceOptions] = None,
1101
+ active_directory: Optional[pulumi.Input[str]] = None,
1102
+ capacity_gib: Optional[pulumi.Input[str]] = None,
1103
+ description: Optional[pulumi.Input[str]] = None,
1104
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1105
+ encryption_type: Optional[pulumi.Input[str]] = None,
1106
+ export_policy: Optional[pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']]] = None,
1107
+ has_replication: Optional[pulumi.Input[bool]] = None,
1108
+ kerberos_enabled: Optional[pulumi.Input[bool]] = None,
1109
+ kms_config: Optional[pulumi.Input[str]] = None,
1110
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1111
+ ldap_enabled: Optional[pulumi.Input[bool]] = None,
1112
+ location: Optional[pulumi.Input[str]] = None,
1113
+ mount_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VolumeMountOptionArgs']]]]] = None,
1114
+ name: Optional[pulumi.Input[str]] = None,
1115
+ network: Optional[pulumi.Input[str]] = None,
1116
+ project: Optional[pulumi.Input[str]] = None,
1117
+ protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1118
+ psa_range: Optional[pulumi.Input[str]] = None,
1119
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1120
+ restricted_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1121
+ security_style: Optional[pulumi.Input[str]] = None,
1122
+ service_level: Optional[pulumi.Input[str]] = None,
1123
+ share_name: Optional[pulumi.Input[str]] = None,
1124
+ smb_settings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1125
+ snapshot_directory: Optional[pulumi.Input[bool]] = None,
1126
+ snapshot_policy: Optional[pulumi.Input[pulumi.InputType['VolumeSnapshotPolicyArgs']]] = None,
1127
+ storage_pool: Optional[pulumi.Input[str]] = None,
1128
+ unix_permissions: Optional[pulumi.Input[str]] = None,
1129
+ used_gib: Optional[pulumi.Input[str]] = None) -> 'Volume':
1130
+ """
1131
+ Get an existing Volume resource's state with the given name, id, and optional extra
1132
+ properties used to qualify the lookup.
1133
+
1134
+ :param str resource_name: The unique name of the resulting resource.
1135
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1136
+ :param pulumi.ResourceOptions opts: Options for the resource.
1137
+ :param pulumi.Input[str] active_directory: Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
1138
+ :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
1139
+ :param pulumi.Input[str] description: An optional description of this resource.
1140
+ :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.
1141
+ :param pulumi.Input[str] encryption_type: Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
1142
+ :param pulumi.Input[pulumi.InputType['VolumeExportPolicyArgs']] export_policy: Export policy of the volume for NFSV3 and/or NFSV4.1 access.
1143
+ Structure is documented below.
1144
+ :param pulumi.Input[bool] has_replication: Indicates whether the volume is part of a volume replication relationship.
1145
+ :param pulumi.Input[bool] kerberos_enabled: Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
1146
+ :param pulumi.Input[str] kms_config: Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.
1147
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
1148
+
1149
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1150
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1151
+ :param pulumi.Input[bool] ldap_enabled: Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.
1152
+ :param pulumi.Input[str] location: Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
1153
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VolumeMountOptionArgs']]]] mount_options: Reports mount instructions for this volume.
1154
+ Structure is documented below.
1155
+ :param pulumi.Input[str] name: The name of the volume. Needs to be unique per location.
1156
+
1157
+
1158
+ - - -
1159
+ :param pulumi.Input[str] network: VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.
1160
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1161
+ If it is not provided, the provider project is used.
1162
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] protocols: The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
1163
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
1164
+ :param pulumi.Input[str] psa_range: Name of the Private Service Access allocated range. Inherited from storage pool.
1165
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
1166
+ and default labels configured on the provider.
1167
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] restricted_actions: List of actions that are restricted on this volume.
1168
+ Each value may be one of: `DELETE`.
1169
+ :param pulumi.Input[str] security_style: Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
1170
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
1171
+ Possible values are: `NTFS`, `UNIX`.
1172
+ :param pulumi.Input[str] service_level: Service level of the volume. Inherited from storage pool.
1173
+ :param pulumi.Input[str] share_name: Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
1174
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] smb_settings: Settings for volumes with SMB access.
1175
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
1176
+ :param pulumi.Input[bool] snapshot_directory: If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
1177
+ :param pulumi.Input[pulumi.InputType['VolumeSnapshotPolicyArgs']] snapshot_policy: Snapshot policy defines the schedule for automatic snapshot creation.
1178
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
1179
+ Structure is documented below.
1180
+ :param pulumi.Input[str] storage_pool: Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
1181
+ :param pulumi.Input[str] unix_permissions: Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
1182
+ :param pulumi.Input[str] used_gib: Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.
1183
+ """
1184
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1185
+
1186
+ __props__ = _VolumeState.__new__(_VolumeState)
1187
+
1188
+ __props__.__dict__["active_directory"] = active_directory
1189
+ __props__.__dict__["capacity_gib"] = capacity_gib
1190
+ __props__.__dict__["description"] = description
1191
+ __props__.__dict__["effective_labels"] = effective_labels
1192
+ __props__.__dict__["encryption_type"] = encryption_type
1193
+ __props__.__dict__["export_policy"] = export_policy
1194
+ __props__.__dict__["has_replication"] = has_replication
1195
+ __props__.__dict__["kerberos_enabled"] = kerberos_enabled
1196
+ __props__.__dict__["kms_config"] = kms_config
1197
+ __props__.__dict__["labels"] = labels
1198
+ __props__.__dict__["ldap_enabled"] = ldap_enabled
1199
+ __props__.__dict__["location"] = location
1200
+ __props__.__dict__["mount_options"] = mount_options
1201
+ __props__.__dict__["name"] = name
1202
+ __props__.__dict__["network"] = network
1203
+ __props__.__dict__["project"] = project
1204
+ __props__.__dict__["protocols"] = protocols
1205
+ __props__.__dict__["psa_range"] = psa_range
1206
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
1207
+ __props__.__dict__["restricted_actions"] = restricted_actions
1208
+ __props__.__dict__["security_style"] = security_style
1209
+ __props__.__dict__["service_level"] = service_level
1210
+ __props__.__dict__["share_name"] = share_name
1211
+ __props__.__dict__["smb_settings"] = smb_settings
1212
+ __props__.__dict__["snapshot_directory"] = snapshot_directory
1213
+ __props__.__dict__["snapshot_policy"] = snapshot_policy
1214
+ __props__.__dict__["storage_pool"] = storage_pool
1215
+ __props__.__dict__["unix_permissions"] = unix_permissions
1216
+ __props__.__dict__["used_gib"] = used_gib
1217
+ return Volume(resource_name, opts=opts, __props__=__props__)
1218
+
1219
+ @property
1220
+ @pulumi.getter(name="activeDirectory")
1221
+ def active_directory(self) -> pulumi.Output[str]:
1222
+ """
1223
+ Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
1224
+ """
1225
+ return pulumi.get(self, "active_directory")
1226
+
1227
+ @property
1228
+ @pulumi.getter(name="capacityGib")
1229
+ def capacity_gib(self) -> pulumi.Output[str]:
1230
+ """
1231
+ Capacity of the volume (in GiB).
1232
+ """
1233
+ return pulumi.get(self, "capacity_gib")
1234
+
1235
+ @property
1236
+ @pulumi.getter
1237
+ def description(self) -> pulumi.Output[Optional[str]]:
1238
+ """
1239
+ An optional description of this resource.
1240
+ """
1241
+ return pulumi.get(self, "description")
1242
+
1243
+ @property
1244
+ @pulumi.getter(name="effectiveLabels")
1245
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1246
+ """
1247
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1248
+ """
1249
+ return pulumi.get(self, "effective_labels")
1250
+
1251
+ @property
1252
+ @pulumi.getter(name="encryptionType")
1253
+ def encryption_type(self) -> pulumi.Output[str]:
1254
+ """
1255
+ Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
1256
+ """
1257
+ return pulumi.get(self, "encryption_type")
1258
+
1259
+ @property
1260
+ @pulumi.getter(name="exportPolicy")
1261
+ def export_policy(self) -> pulumi.Output[Optional['outputs.VolumeExportPolicy']]:
1262
+ """
1263
+ Export policy of the volume for NFSV3 and/or NFSV4.1 access.
1264
+ Structure is documented below.
1265
+ """
1266
+ return pulumi.get(self, "export_policy")
1267
+
1268
+ @property
1269
+ @pulumi.getter(name="hasReplication")
1270
+ def has_replication(self) -> pulumi.Output[bool]:
1271
+ """
1272
+ Indicates whether the volume is part of a volume replication relationship.
1273
+ """
1274
+ return pulumi.get(self, "has_replication")
1275
+
1276
+ @property
1277
+ @pulumi.getter(name="kerberosEnabled")
1278
+ def kerberos_enabled(self) -> pulumi.Output[Optional[bool]]:
1279
+ """
1280
+ Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
1281
+ """
1282
+ return pulumi.get(self, "kerberos_enabled")
1283
+
1284
+ @property
1285
+ @pulumi.getter(name="kmsConfig")
1286
+ def kms_config(self) -> pulumi.Output[str]:
1287
+ """
1288
+ Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.
1289
+ """
1290
+ return pulumi.get(self, "kms_config")
1291
+
1292
+ @property
1293
+ @pulumi.getter
1294
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1295
+ """
1296
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
1297
+
1298
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1299
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1300
+ """
1301
+ return pulumi.get(self, "labels")
1302
+
1303
+ @property
1304
+ @pulumi.getter(name="ldapEnabled")
1305
+ def ldap_enabled(self) -> pulumi.Output[bool]:
1306
+ """
1307
+ Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.
1308
+ """
1309
+ return pulumi.get(self, "ldap_enabled")
1310
+
1311
+ @property
1312
+ @pulumi.getter
1313
+ def location(self) -> pulumi.Output[str]:
1314
+ """
1315
+ Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
1316
+ """
1317
+ return pulumi.get(self, "location")
1318
+
1319
+ @property
1320
+ @pulumi.getter(name="mountOptions")
1321
+ def mount_options(self) -> pulumi.Output[Sequence['outputs.VolumeMountOption']]:
1322
+ """
1323
+ Reports mount instructions for this volume.
1324
+ Structure is documented below.
1325
+ """
1326
+ return pulumi.get(self, "mount_options")
1327
+
1328
+ @property
1329
+ @pulumi.getter
1330
+ def name(self) -> pulumi.Output[str]:
1331
+ """
1332
+ The name of the volume. Needs to be unique per location.
1333
+
1334
+
1335
+ - - -
1336
+ """
1337
+ return pulumi.get(self, "name")
1338
+
1339
+ @property
1340
+ @pulumi.getter
1341
+ def network(self) -> pulumi.Output[str]:
1342
+ """
1343
+ VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.
1344
+ """
1345
+ return pulumi.get(self, "network")
1346
+
1347
+ @property
1348
+ @pulumi.getter
1349
+ def project(self) -> pulumi.Output[str]:
1350
+ """
1351
+ The ID of the project in which the resource belongs.
1352
+ If it is not provided, the provider project is used.
1353
+ """
1354
+ return pulumi.get(self, "project")
1355
+
1356
+ @property
1357
+ @pulumi.getter
1358
+ def protocols(self) -> pulumi.Output[Sequence[str]]:
1359
+ """
1360
+ The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
1361
+ Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
1362
+ """
1363
+ return pulumi.get(self, "protocols")
1364
+
1365
+ @property
1366
+ @pulumi.getter(name="psaRange")
1367
+ def psa_range(self) -> pulumi.Output[str]:
1368
+ """
1369
+ Name of the Private Service Access allocated range. Inherited from storage pool.
1370
+ """
1371
+ return pulumi.get(self, "psa_range")
1372
+
1373
+ @property
1374
+ @pulumi.getter(name="pulumiLabels")
1375
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1376
+ """
1377
+ The combination of labels configured directly on the resource
1378
+ and default labels configured on the provider.
1379
+ """
1380
+ return pulumi.get(self, "pulumi_labels")
1381
+
1382
+ @property
1383
+ @pulumi.getter(name="restrictedActions")
1384
+ def restricted_actions(self) -> pulumi.Output[Optional[Sequence[str]]]:
1385
+ """
1386
+ List of actions that are restricted on this volume.
1387
+ Each value may be one of: `DELETE`.
1388
+ """
1389
+ return pulumi.get(self, "restricted_actions")
1390
+
1391
+ @property
1392
+ @pulumi.getter(name="securityStyle")
1393
+ def security_style(self) -> pulumi.Output[str]:
1394
+ """
1395
+ Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
1396
+ Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
1397
+ Possible values are: `NTFS`, `UNIX`.
1398
+ """
1399
+ return pulumi.get(self, "security_style")
1400
+
1401
+ @property
1402
+ @pulumi.getter(name="serviceLevel")
1403
+ def service_level(self) -> pulumi.Output[str]:
1404
+ """
1405
+ Service level of the volume. Inherited from storage pool.
1406
+ """
1407
+ return pulumi.get(self, "service_level")
1408
+
1409
+ @property
1410
+ @pulumi.getter(name="shareName")
1411
+ def share_name(self) -> pulumi.Output[str]:
1412
+ """
1413
+ Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
1414
+ """
1415
+ return pulumi.get(self, "share_name")
1416
+
1417
+ @property
1418
+ @pulumi.getter(name="smbSettings")
1419
+ def smb_settings(self) -> pulumi.Output[Optional[Sequence[str]]]:
1420
+ """
1421
+ Settings for volumes with SMB access.
1422
+ Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
1423
+ """
1424
+ return pulumi.get(self, "smb_settings")
1425
+
1426
+ @property
1427
+ @pulumi.getter(name="snapshotDirectory")
1428
+ def snapshot_directory(self) -> pulumi.Output[Optional[bool]]:
1429
+ """
1430
+ If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
1431
+ """
1432
+ return pulumi.get(self, "snapshot_directory")
1433
+
1434
+ @property
1435
+ @pulumi.getter(name="snapshotPolicy")
1436
+ def snapshot_policy(self) -> pulumi.Output[Optional['outputs.VolumeSnapshotPolicy']]:
1437
+ """
1438
+ Snapshot policy defines the schedule for automatic snapshot creation.
1439
+ To disable automatic snapshot creation you have to remove the whole snapshot_policy block.
1440
+ Structure is documented below.
1441
+ """
1442
+ return pulumi.get(self, "snapshot_policy")
1443
+
1444
+ @property
1445
+ @pulumi.getter(name="storagePool")
1446
+ def storage_pool(self) -> pulumi.Output[str]:
1447
+ """
1448
+ Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
1449
+ """
1450
+ return pulumi.get(self, "storage_pool")
1451
+
1452
+ @property
1453
+ @pulumi.getter(name="unixPermissions")
1454
+ def unix_permissions(self) -> pulumi.Output[str]:
1455
+ """
1456
+ Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
1457
+ """
1458
+ return pulumi.get(self, "unix_permissions")
1459
+
1460
+ @property
1461
+ @pulumi.getter(name="usedGib")
1462
+ def used_gib(self) -> pulumi.Output[str]:
1463
+ """
1464
+ Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.
1465
+ """
1466
+ return pulumi.get(self, "used_gib")
1467
+