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,829 @@
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__ = ['BackupPolicyArgs', 'BackupPolicy']
13
+
14
+ @pulumi.input_type
15
+ class BackupPolicyArgs:
16
+ def __init__(__self__, *,
17
+ daily_backup_limit: pulumi.Input[int],
18
+ location: pulumi.Input[str],
19
+ monthly_backup_limit: pulumi.Input[int],
20
+ weekly_backup_limit: pulumi.Input[int],
21
+ description: Optional[pulumi.Input[str]] = None,
22
+ enabled: Optional[pulumi.Input[bool]] = None,
23
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
24
+ name: Optional[pulumi.Input[str]] = None,
25
+ project: Optional[pulumi.Input[str]] = None):
26
+ """
27
+ The set of arguments for constructing a BackupPolicy resource.
28
+ :param pulumi.Input[int] daily_backup_limit: Number of daily backups to keep. Note that the minimum daily backup limit is 2.
29
+ :param pulumi.Input[str] location: Name of the region for the policy to apply to.
30
+ :param pulumi.Input[int] monthly_backup_limit: Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
31
+ :param pulumi.Input[int] weekly_backup_limit: Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
32
+ :param pulumi.Input[str] description: An optional description of this resource.
33
+ :param pulumi.Input[bool] enabled: If enabled, make backups automatically according to the schedules.
34
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
35
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
36
+
37
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
38
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
39
+ :param pulumi.Input[str] name: The name of the backup policy. Needs to be unique per location.
40
+
41
+
42
+ - - -
43
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
44
+ If it is not provided, the provider project is used.
45
+ """
46
+ pulumi.set(__self__, "daily_backup_limit", daily_backup_limit)
47
+ pulumi.set(__self__, "location", location)
48
+ pulumi.set(__self__, "monthly_backup_limit", monthly_backup_limit)
49
+ pulumi.set(__self__, "weekly_backup_limit", weekly_backup_limit)
50
+ if description is not None:
51
+ pulumi.set(__self__, "description", description)
52
+ if enabled is not None:
53
+ pulumi.set(__self__, "enabled", enabled)
54
+ if labels is not None:
55
+ pulumi.set(__self__, "labels", labels)
56
+ if name is not None:
57
+ pulumi.set(__self__, "name", name)
58
+ if project is not None:
59
+ pulumi.set(__self__, "project", project)
60
+
61
+ @property
62
+ @pulumi.getter(name="dailyBackupLimit")
63
+ def daily_backup_limit(self) -> pulumi.Input[int]:
64
+ """
65
+ Number of daily backups to keep. Note that the minimum daily backup limit is 2.
66
+ """
67
+ return pulumi.get(self, "daily_backup_limit")
68
+
69
+ @daily_backup_limit.setter
70
+ def daily_backup_limit(self, value: pulumi.Input[int]):
71
+ pulumi.set(self, "daily_backup_limit", value)
72
+
73
+ @property
74
+ @pulumi.getter
75
+ def location(self) -> pulumi.Input[str]:
76
+ """
77
+ Name of the region for the policy to apply to.
78
+ """
79
+ return pulumi.get(self, "location")
80
+
81
+ @location.setter
82
+ def location(self, value: pulumi.Input[str]):
83
+ pulumi.set(self, "location", value)
84
+
85
+ @property
86
+ @pulumi.getter(name="monthlyBackupLimit")
87
+ def monthly_backup_limit(self) -> pulumi.Input[int]:
88
+ """
89
+ Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
90
+ """
91
+ return pulumi.get(self, "monthly_backup_limit")
92
+
93
+ @monthly_backup_limit.setter
94
+ def monthly_backup_limit(self, value: pulumi.Input[int]):
95
+ pulumi.set(self, "monthly_backup_limit", value)
96
+
97
+ @property
98
+ @pulumi.getter(name="weeklyBackupLimit")
99
+ def weekly_backup_limit(self) -> pulumi.Input[int]:
100
+ """
101
+ Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
102
+ """
103
+ return pulumi.get(self, "weekly_backup_limit")
104
+
105
+ @weekly_backup_limit.setter
106
+ def weekly_backup_limit(self, value: pulumi.Input[int]):
107
+ pulumi.set(self, "weekly_backup_limit", value)
108
+
109
+ @property
110
+ @pulumi.getter
111
+ def description(self) -> Optional[pulumi.Input[str]]:
112
+ """
113
+ An optional description of this resource.
114
+ """
115
+ return pulumi.get(self, "description")
116
+
117
+ @description.setter
118
+ def description(self, value: Optional[pulumi.Input[str]]):
119
+ pulumi.set(self, "description", value)
120
+
121
+ @property
122
+ @pulumi.getter
123
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
124
+ """
125
+ If enabled, make backups automatically according to the schedules.
126
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
127
+ """
128
+ return pulumi.get(self, "enabled")
129
+
130
+ @enabled.setter
131
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
132
+ pulumi.set(self, "enabled", value)
133
+
134
+ @property
135
+ @pulumi.getter
136
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
137
+ """
138
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
139
+
140
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
141
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
142
+ """
143
+ return pulumi.get(self, "labels")
144
+
145
+ @labels.setter
146
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
147
+ pulumi.set(self, "labels", value)
148
+
149
+ @property
150
+ @pulumi.getter
151
+ def name(self) -> Optional[pulumi.Input[str]]:
152
+ """
153
+ The name of the backup policy. Needs to be unique per location.
154
+
155
+
156
+ - - -
157
+ """
158
+ return pulumi.get(self, "name")
159
+
160
+ @name.setter
161
+ def name(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "name", value)
163
+
164
+ @property
165
+ @pulumi.getter
166
+ def project(self) -> Optional[pulumi.Input[str]]:
167
+ """
168
+ The ID of the project in which the resource belongs.
169
+ If it is not provided, the provider project is used.
170
+ """
171
+ return pulumi.get(self, "project")
172
+
173
+ @project.setter
174
+ def project(self, value: Optional[pulumi.Input[str]]):
175
+ pulumi.set(self, "project", value)
176
+
177
+
178
+ @pulumi.input_type
179
+ class _BackupPolicyState:
180
+ def __init__(__self__, *,
181
+ assigned_volume_count: Optional[pulumi.Input[int]] = None,
182
+ create_time: Optional[pulumi.Input[str]] = None,
183
+ daily_backup_limit: Optional[pulumi.Input[int]] = None,
184
+ description: Optional[pulumi.Input[str]] = None,
185
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
186
+ enabled: Optional[pulumi.Input[bool]] = None,
187
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
188
+ location: Optional[pulumi.Input[str]] = None,
189
+ monthly_backup_limit: Optional[pulumi.Input[int]] = None,
190
+ name: Optional[pulumi.Input[str]] = None,
191
+ project: Optional[pulumi.Input[str]] = None,
192
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
193
+ state: Optional[pulumi.Input[str]] = None,
194
+ weekly_backup_limit: Optional[pulumi.Input[int]] = None):
195
+ """
196
+ Input properties used for looking up and filtering BackupPolicy resources.
197
+ :param pulumi.Input[int] assigned_volume_count: The total number of volumes assigned by this backup policy.
198
+ :param pulumi.Input[str] create_time: Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
199
+ :param pulumi.Input[int] daily_backup_limit: Number of daily backups to keep. Note that the minimum daily backup limit is 2.
200
+ :param pulumi.Input[str] description: An optional description of this resource.
201
+ :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.
202
+ :param pulumi.Input[bool] enabled: If enabled, make backups automatically according to the schedules.
203
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
204
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
205
+
206
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
207
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
208
+ :param pulumi.Input[str] location: Name of the region for the policy to apply to.
209
+ :param pulumi.Input[int] monthly_backup_limit: Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
210
+ :param pulumi.Input[str] name: The name of the backup policy. Needs to be unique per location.
211
+
212
+
213
+ - - -
214
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
215
+ If it is not provided, the provider project is used.
216
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
217
+ and default labels configured on the provider.
218
+ :param pulumi.Input[str] state: The state of the backup policy.
219
+ :param pulumi.Input[int] weekly_backup_limit: Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
220
+ """
221
+ if assigned_volume_count is not None:
222
+ pulumi.set(__self__, "assigned_volume_count", assigned_volume_count)
223
+ if create_time is not None:
224
+ pulumi.set(__self__, "create_time", create_time)
225
+ if daily_backup_limit is not None:
226
+ pulumi.set(__self__, "daily_backup_limit", daily_backup_limit)
227
+ if description is not None:
228
+ pulumi.set(__self__, "description", description)
229
+ if effective_labels is not None:
230
+ pulumi.set(__self__, "effective_labels", effective_labels)
231
+ if enabled is not None:
232
+ pulumi.set(__self__, "enabled", enabled)
233
+ if labels is not None:
234
+ pulumi.set(__self__, "labels", labels)
235
+ if location is not None:
236
+ pulumi.set(__self__, "location", location)
237
+ if monthly_backup_limit is not None:
238
+ pulumi.set(__self__, "monthly_backup_limit", monthly_backup_limit)
239
+ if name is not None:
240
+ pulumi.set(__self__, "name", name)
241
+ if project is not None:
242
+ pulumi.set(__self__, "project", project)
243
+ if pulumi_labels is not None:
244
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
245
+ if state is not None:
246
+ pulumi.set(__self__, "state", state)
247
+ if weekly_backup_limit is not None:
248
+ pulumi.set(__self__, "weekly_backup_limit", weekly_backup_limit)
249
+
250
+ @property
251
+ @pulumi.getter(name="assignedVolumeCount")
252
+ def assigned_volume_count(self) -> Optional[pulumi.Input[int]]:
253
+ """
254
+ The total number of volumes assigned by this backup policy.
255
+ """
256
+ return pulumi.get(self, "assigned_volume_count")
257
+
258
+ @assigned_volume_count.setter
259
+ def assigned_volume_count(self, value: Optional[pulumi.Input[int]]):
260
+ pulumi.set(self, "assigned_volume_count", value)
261
+
262
+ @property
263
+ @pulumi.getter(name="createTime")
264
+ def create_time(self) -> Optional[pulumi.Input[str]]:
265
+ """
266
+ Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
267
+ """
268
+ return pulumi.get(self, "create_time")
269
+
270
+ @create_time.setter
271
+ def create_time(self, value: Optional[pulumi.Input[str]]):
272
+ pulumi.set(self, "create_time", value)
273
+
274
+ @property
275
+ @pulumi.getter(name="dailyBackupLimit")
276
+ def daily_backup_limit(self) -> Optional[pulumi.Input[int]]:
277
+ """
278
+ Number of daily backups to keep. Note that the minimum daily backup limit is 2.
279
+ """
280
+ return pulumi.get(self, "daily_backup_limit")
281
+
282
+ @daily_backup_limit.setter
283
+ def daily_backup_limit(self, value: Optional[pulumi.Input[int]]):
284
+ pulumi.set(self, "daily_backup_limit", value)
285
+
286
+ @property
287
+ @pulumi.getter
288
+ def description(self) -> Optional[pulumi.Input[str]]:
289
+ """
290
+ An optional description of this resource.
291
+ """
292
+ return pulumi.get(self, "description")
293
+
294
+ @description.setter
295
+ def description(self, value: Optional[pulumi.Input[str]]):
296
+ pulumi.set(self, "description", value)
297
+
298
+ @property
299
+ @pulumi.getter(name="effectiveLabels")
300
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
301
+ """
302
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
303
+ """
304
+ return pulumi.get(self, "effective_labels")
305
+
306
+ @effective_labels.setter
307
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
308
+ pulumi.set(self, "effective_labels", value)
309
+
310
+ @property
311
+ @pulumi.getter
312
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
313
+ """
314
+ If enabled, make backups automatically according to the schedules.
315
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
316
+ """
317
+ return pulumi.get(self, "enabled")
318
+
319
+ @enabled.setter
320
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
321
+ pulumi.set(self, "enabled", value)
322
+
323
+ @property
324
+ @pulumi.getter
325
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
326
+ """
327
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
328
+
329
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
330
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
331
+ """
332
+ return pulumi.get(self, "labels")
333
+
334
+ @labels.setter
335
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
336
+ pulumi.set(self, "labels", value)
337
+
338
+ @property
339
+ @pulumi.getter
340
+ def location(self) -> Optional[pulumi.Input[str]]:
341
+ """
342
+ Name of the region for the policy to apply to.
343
+ """
344
+ return pulumi.get(self, "location")
345
+
346
+ @location.setter
347
+ def location(self, value: Optional[pulumi.Input[str]]):
348
+ pulumi.set(self, "location", value)
349
+
350
+ @property
351
+ @pulumi.getter(name="monthlyBackupLimit")
352
+ def monthly_backup_limit(self) -> Optional[pulumi.Input[int]]:
353
+ """
354
+ Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
355
+ """
356
+ return pulumi.get(self, "monthly_backup_limit")
357
+
358
+ @monthly_backup_limit.setter
359
+ def monthly_backup_limit(self, value: Optional[pulumi.Input[int]]):
360
+ pulumi.set(self, "monthly_backup_limit", value)
361
+
362
+ @property
363
+ @pulumi.getter
364
+ def name(self) -> Optional[pulumi.Input[str]]:
365
+ """
366
+ The name of the backup policy. Needs to be unique per location.
367
+
368
+
369
+ - - -
370
+ """
371
+ return pulumi.get(self, "name")
372
+
373
+ @name.setter
374
+ def name(self, value: Optional[pulumi.Input[str]]):
375
+ pulumi.set(self, "name", value)
376
+
377
+ @property
378
+ @pulumi.getter
379
+ def project(self) -> Optional[pulumi.Input[str]]:
380
+ """
381
+ The ID of the project in which the resource belongs.
382
+ If it is not provided, the provider project is used.
383
+ """
384
+ return pulumi.get(self, "project")
385
+
386
+ @project.setter
387
+ def project(self, value: Optional[pulumi.Input[str]]):
388
+ pulumi.set(self, "project", value)
389
+
390
+ @property
391
+ @pulumi.getter(name="pulumiLabels")
392
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
393
+ """
394
+ The combination of labels configured directly on the resource
395
+ and default labels configured on the provider.
396
+ """
397
+ return pulumi.get(self, "pulumi_labels")
398
+
399
+ @pulumi_labels.setter
400
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
401
+ pulumi.set(self, "pulumi_labels", value)
402
+
403
+ @property
404
+ @pulumi.getter
405
+ def state(self) -> Optional[pulumi.Input[str]]:
406
+ """
407
+ The state of the backup policy.
408
+ """
409
+ return pulumi.get(self, "state")
410
+
411
+ @state.setter
412
+ def state(self, value: Optional[pulumi.Input[str]]):
413
+ pulumi.set(self, "state", value)
414
+
415
+ @property
416
+ @pulumi.getter(name="weeklyBackupLimit")
417
+ def weekly_backup_limit(self) -> Optional[pulumi.Input[int]]:
418
+ """
419
+ Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
420
+ """
421
+ return pulumi.get(self, "weekly_backup_limit")
422
+
423
+ @weekly_backup_limit.setter
424
+ def weekly_backup_limit(self, value: Optional[pulumi.Input[int]]):
425
+ pulumi.set(self, "weekly_backup_limit", value)
426
+
427
+
428
+ class BackupPolicy(pulumi.CustomResource):
429
+ @overload
430
+ def __init__(__self__,
431
+ resource_name: str,
432
+ opts: Optional[pulumi.ResourceOptions] = None,
433
+ daily_backup_limit: Optional[pulumi.Input[int]] = None,
434
+ description: Optional[pulumi.Input[str]] = None,
435
+ enabled: Optional[pulumi.Input[bool]] = None,
436
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
437
+ location: Optional[pulumi.Input[str]] = None,
438
+ monthly_backup_limit: Optional[pulumi.Input[int]] = None,
439
+ name: Optional[pulumi.Input[str]] = None,
440
+ project: Optional[pulumi.Input[str]] = None,
441
+ weekly_backup_limit: Optional[pulumi.Input[int]] = None,
442
+ __props__=None):
443
+ """
444
+ A backup policy is used to schedule backups at regular daily, weekly, or monthly intervals.
445
+ Backup policies allow you to attach a backup schedule to a volume.
446
+ The policy defines how many backups to retain at daily, weekly, or monthly intervals.
447
+
448
+ To get more information about backupPolicy, see:
449
+
450
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.backupPolicies)
451
+ * How-to Guides
452
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/protect-data/about-volume-backups#about_backup_policies)
453
+
454
+ ## Example Usage
455
+ ### Netapp Backup Policy Full
456
+
457
+ ```python
458
+ import pulumi
459
+ import pulumi_gcp as gcp
460
+
461
+ test_backup_policy_full = gcp.netapp.BackupPolicy("testBackupPolicyFull",
462
+ daily_backup_limit=2,
463
+ description="TF test backup schedule",
464
+ enabled=True,
465
+ labels={
466
+ "foo": "bar",
467
+ },
468
+ location="us-central1",
469
+ monthly_backup_limit=1,
470
+ weekly_backup_limit=1)
471
+ ```
472
+
473
+ ## Import
474
+
475
+ backupPolicy can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/backupPolicies/{{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 backupPolicy using one of the formats above. For exampletf import {
476
+
477
+ id = "projects/{{project}}/locations/{{location}}/backupPolicies/{{name}}"
478
+
479
+ to = google_netapp_backup_policy.default }
480
+
481
+ ```sh
482
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), backupPolicy can be imported using one of the formats above. For example
483
+ ```
484
+
485
+ ```sh
486
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default projects/{{project}}/locations/{{location}}/backupPolicies/{{name}}
487
+ ```
488
+
489
+ ```sh
490
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default {{project}}/{{location}}/{{name}}
491
+ ```
492
+
493
+ ```sh
494
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default {{location}}/{{name}}
495
+ ```
496
+
497
+ :param str resource_name: The name of the resource.
498
+ :param pulumi.ResourceOptions opts: Options for the resource.
499
+ :param pulumi.Input[int] daily_backup_limit: Number of daily backups to keep. Note that the minimum daily backup limit is 2.
500
+ :param pulumi.Input[str] description: An optional description of this resource.
501
+ :param pulumi.Input[bool] enabled: If enabled, make backups automatically according to the schedules.
502
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
503
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
504
+
505
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
506
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
507
+ :param pulumi.Input[str] location: Name of the region for the policy to apply to.
508
+ :param pulumi.Input[int] monthly_backup_limit: Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
509
+ :param pulumi.Input[str] name: The name of the backup policy. Needs to be unique per location.
510
+
511
+
512
+ - - -
513
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
514
+ If it is not provided, the provider project is used.
515
+ :param pulumi.Input[int] weekly_backup_limit: Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
516
+ """
517
+ ...
518
+ @overload
519
+ def __init__(__self__,
520
+ resource_name: str,
521
+ args: BackupPolicyArgs,
522
+ opts: Optional[pulumi.ResourceOptions] = None):
523
+ """
524
+ A backup policy is used to schedule backups at regular daily, weekly, or monthly intervals.
525
+ Backup policies allow you to attach a backup schedule to a volume.
526
+ The policy defines how many backups to retain at daily, weekly, or monthly intervals.
527
+
528
+ To get more information about backupPolicy, see:
529
+
530
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.backupPolicies)
531
+ * How-to Guides
532
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/protect-data/about-volume-backups#about_backup_policies)
533
+
534
+ ## Example Usage
535
+ ### Netapp Backup Policy Full
536
+
537
+ ```python
538
+ import pulumi
539
+ import pulumi_gcp as gcp
540
+
541
+ test_backup_policy_full = gcp.netapp.BackupPolicy("testBackupPolicyFull",
542
+ daily_backup_limit=2,
543
+ description="TF test backup schedule",
544
+ enabled=True,
545
+ labels={
546
+ "foo": "bar",
547
+ },
548
+ location="us-central1",
549
+ monthly_backup_limit=1,
550
+ weekly_backup_limit=1)
551
+ ```
552
+
553
+ ## Import
554
+
555
+ backupPolicy can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/backupPolicies/{{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 backupPolicy using one of the formats above. For exampletf import {
556
+
557
+ id = "projects/{{project}}/locations/{{location}}/backupPolicies/{{name}}"
558
+
559
+ to = google_netapp_backup_policy.default }
560
+
561
+ ```sh
562
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), backupPolicy can be imported using one of the formats above. For example
563
+ ```
564
+
565
+ ```sh
566
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default projects/{{project}}/locations/{{location}}/backupPolicies/{{name}}
567
+ ```
568
+
569
+ ```sh
570
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default {{project}}/{{location}}/{{name}}
571
+ ```
572
+
573
+ ```sh
574
+ $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default {{location}}/{{name}}
575
+ ```
576
+
577
+ :param str resource_name: The name of the resource.
578
+ :param BackupPolicyArgs args: The arguments to use to populate this resource's properties.
579
+ :param pulumi.ResourceOptions opts: Options for the resource.
580
+ """
581
+ ...
582
+ def __init__(__self__, resource_name: str, *args, **kwargs):
583
+ resource_args, opts = _utilities.get_resource_args_opts(BackupPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
584
+ if resource_args is not None:
585
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
586
+ else:
587
+ __self__._internal_init(resource_name, *args, **kwargs)
588
+
589
+ def _internal_init(__self__,
590
+ resource_name: str,
591
+ opts: Optional[pulumi.ResourceOptions] = None,
592
+ daily_backup_limit: Optional[pulumi.Input[int]] = None,
593
+ description: Optional[pulumi.Input[str]] = None,
594
+ enabled: Optional[pulumi.Input[bool]] = None,
595
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
596
+ location: Optional[pulumi.Input[str]] = None,
597
+ monthly_backup_limit: Optional[pulumi.Input[int]] = None,
598
+ name: Optional[pulumi.Input[str]] = None,
599
+ project: Optional[pulumi.Input[str]] = None,
600
+ weekly_backup_limit: Optional[pulumi.Input[int]] = None,
601
+ __props__=None):
602
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
603
+ if not isinstance(opts, pulumi.ResourceOptions):
604
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
605
+ if opts.id is None:
606
+ if __props__ is not None:
607
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
608
+ __props__ = BackupPolicyArgs.__new__(BackupPolicyArgs)
609
+
610
+ if daily_backup_limit is None and not opts.urn:
611
+ raise TypeError("Missing required property 'daily_backup_limit'")
612
+ __props__.__dict__["daily_backup_limit"] = daily_backup_limit
613
+ __props__.__dict__["description"] = description
614
+ __props__.__dict__["enabled"] = enabled
615
+ __props__.__dict__["labels"] = labels
616
+ if location is None and not opts.urn:
617
+ raise TypeError("Missing required property 'location'")
618
+ __props__.__dict__["location"] = location
619
+ if monthly_backup_limit is None and not opts.urn:
620
+ raise TypeError("Missing required property 'monthly_backup_limit'")
621
+ __props__.__dict__["monthly_backup_limit"] = monthly_backup_limit
622
+ __props__.__dict__["name"] = name
623
+ __props__.__dict__["project"] = project
624
+ if weekly_backup_limit is None and not opts.urn:
625
+ raise TypeError("Missing required property 'weekly_backup_limit'")
626
+ __props__.__dict__["weekly_backup_limit"] = weekly_backup_limit
627
+ __props__.__dict__["assigned_volume_count"] = None
628
+ __props__.__dict__["create_time"] = None
629
+ __props__.__dict__["effective_labels"] = None
630
+ __props__.__dict__["pulumi_labels"] = None
631
+ __props__.__dict__["state"] = None
632
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
633
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
634
+ super(BackupPolicy, __self__).__init__(
635
+ 'gcp:netapp/backupPolicy:BackupPolicy',
636
+ resource_name,
637
+ __props__,
638
+ opts)
639
+
640
+ @staticmethod
641
+ def get(resource_name: str,
642
+ id: pulumi.Input[str],
643
+ opts: Optional[pulumi.ResourceOptions] = None,
644
+ assigned_volume_count: Optional[pulumi.Input[int]] = None,
645
+ create_time: Optional[pulumi.Input[str]] = None,
646
+ daily_backup_limit: Optional[pulumi.Input[int]] = None,
647
+ description: Optional[pulumi.Input[str]] = None,
648
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
649
+ enabled: Optional[pulumi.Input[bool]] = None,
650
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
651
+ location: Optional[pulumi.Input[str]] = None,
652
+ monthly_backup_limit: Optional[pulumi.Input[int]] = None,
653
+ name: Optional[pulumi.Input[str]] = None,
654
+ project: Optional[pulumi.Input[str]] = None,
655
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
656
+ state: Optional[pulumi.Input[str]] = None,
657
+ weekly_backup_limit: Optional[pulumi.Input[int]] = None) -> 'BackupPolicy':
658
+ """
659
+ Get an existing BackupPolicy resource's state with the given name, id, and optional extra
660
+ properties used to qualify the lookup.
661
+
662
+ :param str resource_name: The unique name of the resulting resource.
663
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
664
+ :param pulumi.ResourceOptions opts: Options for the resource.
665
+ :param pulumi.Input[int] assigned_volume_count: The total number of volumes assigned by this backup policy.
666
+ :param pulumi.Input[str] create_time: Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
667
+ :param pulumi.Input[int] daily_backup_limit: Number of daily backups to keep. Note that the minimum daily backup limit is 2.
668
+ :param pulumi.Input[str] description: An optional description of this resource.
669
+ :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.
670
+ :param pulumi.Input[bool] enabled: If enabled, make backups automatically according to the schedules.
671
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
672
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
673
+
674
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
675
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
676
+ :param pulumi.Input[str] location: Name of the region for the policy to apply to.
677
+ :param pulumi.Input[int] monthly_backup_limit: Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
678
+ :param pulumi.Input[str] name: The name of the backup policy. Needs to be unique per location.
679
+
680
+
681
+ - - -
682
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
683
+ If it is not provided, the provider project is used.
684
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
685
+ and default labels configured on the provider.
686
+ :param pulumi.Input[str] state: The state of the backup policy.
687
+ :param pulumi.Input[int] weekly_backup_limit: Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
688
+ """
689
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
690
+
691
+ __props__ = _BackupPolicyState.__new__(_BackupPolicyState)
692
+
693
+ __props__.__dict__["assigned_volume_count"] = assigned_volume_count
694
+ __props__.__dict__["create_time"] = create_time
695
+ __props__.__dict__["daily_backup_limit"] = daily_backup_limit
696
+ __props__.__dict__["description"] = description
697
+ __props__.__dict__["effective_labels"] = effective_labels
698
+ __props__.__dict__["enabled"] = enabled
699
+ __props__.__dict__["labels"] = labels
700
+ __props__.__dict__["location"] = location
701
+ __props__.__dict__["monthly_backup_limit"] = monthly_backup_limit
702
+ __props__.__dict__["name"] = name
703
+ __props__.__dict__["project"] = project
704
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
705
+ __props__.__dict__["state"] = state
706
+ __props__.__dict__["weekly_backup_limit"] = weekly_backup_limit
707
+ return BackupPolicy(resource_name, opts=opts, __props__=__props__)
708
+
709
+ @property
710
+ @pulumi.getter(name="assignedVolumeCount")
711
+ def assigned_volume_count(self) -> pulumi.Output[int]:
712
+ """
713
+ The total number of volumes assigned by this backup policy.
714
+ """
715
+ return pulumi.get(self, "assigned_volume_count")
716
+
717
+ @property
718
+ @pulumi.getter(name="createTime")
719
+ def create_time(self) -> pulumi.Output[str]:
720
+ """
721
+ Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
722
+ """
723
+ return pulumi.get(self, "create_time")
724
+
725
+ @property
726
+ @pulumi.getter(name="dailyBackupLimit")
727
+ def daily_backup_limit(self) -> pulumi.Output[int]:
728
+ """
729
+ Number of daily backups to keep. Note that the minimum daily backup limit is 2.
730
+ """
731
+ return pulumi.get(self, "daily_backup_limit")
732
+
733
+ @property
734
+ @pulumi.getter
735
+ def description(self) -> pulumi.Output[Optional[str]]:
736
+ """
737
+ An optional description of this resource.
738
+ """
739
+ return pulumi.get(self, "description")
740
+
741
+ @property
742
+ @pulumi.getter(name="effectiveLabels")
743
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
744
+ """
745
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
746
+ """
747
+ return pulumi.get(self, "effective_labels")
748
+
749
+ @property
750
+ @pulumi.getter
751
+ def enabled(self) -> pulumi.Output[Optional[bool]]:
752
+ """
753
+ If enabled, make backups automatically according to the schedules.
754
+ This will be applied to all volumes that have this policy attached and enforced on volume level.
755
+ """
756
+ return pulumi.get(self, "enabled")
757
+
758
+ @property
759
+ @pulumi.getter
760
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
761
+ """
762
+ Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
763
+
764
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
765
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
766
+ """
767
+ return pulumi.get(self, "labels")
768
+
769
+ @property
770
+ @pulumi.getter
771
+ def location(self) -> pulumi.Output[str]:
772
+ """
773
+ Name of the region for the policy to apply to.
774
+ """
775
+ return pulumi.get(self, "location")
776
+
777
+ @property
778
+ @pulumi.getter(name="monthlyBackupLimit")
779
+ def monthly_backup_limit(self) -> pulumi.Output[int]:
780
+ """
781
+ Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
782
+ """
783
+ return pulumi.get(self, "monthly_backup_limit")
784
+
785
+ @property
786
+ @pulumi.getter
787
+ def name(self) -> pulumi.Output[str]:
788
+ """
789
+ The name of the backup policy. Needs to be unique per location.
790
+
791
+
792
+ - - -
793
+ """
794
+ return pulumi.get(self, "name")
795
+
796
+ @property
797
+ @pulumi.getter
798
+ def project(self) -> pulumi.Output[str]:
799
+ """
800
+ The ID of the project in which the resource belongs.
801
+ If it is not provided, the provider project is used.
802
+ """
803
+ return pulumi.get(self, "project")
804
+
805
+ @property
806
+ @pulumi.getter(name="pulumiLabels")
807
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
808
+ """
809
+ The combination of labels configured directly on the resource
810
+ and default labels configured on the provider.
811
+ """
812
+ return pulumi.get(self, "pulumi_labels")
813
+
814
+ @property
815
+ @pulumi.getter
816
+ def state(self) -> pulumi.Output[str]:
817
+ """
818
+ The state of the backup policy.
819
+ """
820
+ return pulumi.get(self, "state")
821
+
822
+ @property
823
+ @pulumi.getter(name="weeklyBackupLimit")
824
+ def weekly_backup_limit(self) -> pulumi.Output[int]:
825
+ """
826
+ Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
827
+ """
828
+ return pulumi.get(self, "weekly_backup_limit")
829
+