pulumi-gcp 8.0.0a1726253601__py3-none-any.whl → 8.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/alloydb/_inputs.py +94 -0
  3. pulumi_gcp/alloydb/cluster.py +94 -1
  4. pulumi_gcp/alloydb/outputs.py +79 -0
  5. pulumi_gcp/assuredworkloads/workload.py +135 -16
  6. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  7. pulumi_gcp/backupdisasterrecovery/backup_vault.py +1203 -0
  8. pulumi_gcp/bigquery/_inputs.py +33 -0
  9. pulumi_gcp/bigquery/data_transfer_config.py +134 -6
  10. pulumi_gcp/bigquery/outputs.py +36 -0
  11. pulumi_gcp/bigqueryanalyticshub/_inputs.py +169 -7
  12. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +96 -3
  13. pulumi_gcp/bigqueryanalyticshub/listing.py +114 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +138 -5
  15. pulumi_gcp/bigtable/_inputs.py +21 -1
  16. pulumi_gcp/bigtable/outputs.py +13 -1
  17. pulumi_gcp/bigtable/table.py +34 -0
  18. pulumi_gcp/certificateauthority/authority.py +14 -7
  19. pulumi_gcp/certificatemanager/__init__.py +1 -0
  20. pulumi_gcp/certificatemanager/certificate.py +28 -0
  21. pulumi_gcp/certificatemanager/get_certificates.py +150 -0
  22. pulumi_gcp/certificatemanager/outputs.py +322 -0
  23. pulumi_gcp/cloudbuild/_inputs.py +6 -6
  24. pulumi_gcp/cloudbuild/outputs.py +4 -4
  25. pulumi_gcp/cloudrun/_inputs.py +6 -12
  26. pulumi_gcp/cloudrun/outputs.py +8 -16
  27. pulumi_gcp/cloudrunv2/_inputs.py +72 -15
  28. pulumi_gcp/cloudrunv2/outputs.py +82 -16
  29. pulumi_gcp/cloudrunv2/service.py +50 -4
  30. pulumi_gcp/cloudtasks/_inputs.py +630 -0
  31. pulumi_gcp/cloudtasks/outputs.py +479 -0
  32. pulumi_gcp/cloudtasks/queue.py +238 -0
  33. pulumi_gcp/compute/_inputs.py +129 -9
  34. pulumi_gcp/compute/get_instance.py +1 -1
  35. pulumi_gcp/compute/health_check.py +114 -0
  36. pulumi_gcp/compute/instance.py +86 -4
  37. pulumi_gcp/compute/instance_template.py +66 -0
  38. pulumi_gcp/compute/interconnect.py +28 -21
  39. pulumi_gcp/compute/node_template.py +93 -0
  40. pulumi_gcp/compute/outputs.py +108 -6
  41. pulumi_gcp/compute/target_https_proxy.py +28 -0
  42. pulumi_gcp/container/_inputs.py +140 -3
  43. pulumi_gcp/container/attached_cluster.py +7 -7
  44. pulumi_gcp/container/outputs.py +174 -2
  45. pulumi_gcp/databasemigrationservice/_inputs.py +176 -148
  46. pulumi_gcp/databasemigrationservice/connection_profile.py +206 -0
  47. pulumi_gcp/databasemigrationservice/outputs.py +109 -87
  48. pulumi_gcp/dataloss/_inputs.py +353 -1
  49. pulumi_gcp/dataloss/outputs.py +274 -3
  50. pulumi_gcp/dataproc/_inputs.py +27 -27
  51. pulumi_gcp/dataproc/outputs.py +18 -18
  52. pulumi_gcp/datastream/_inputs.py +69 -1
  53. pulumi_gcp/datastream/outputs.py +44 -2
  54. pulumi_gcp/datastream/stream.py +194 -7
  55. pulumi_gcp/discoveryengine/_inputs.py +188 -0
  56. pulumi_gcp/discoveryengine/data_store.py +14 -14
  57. pulumi_gcp/discoveryengine/outputs.py +153 -1
  58. pulumi_gcp/firebase/database_instance.py +7 -7
  59. pulumi_gcp/gkehub/_inputs.py +25 -1
  60. pulumi_gcp/gkehub/feature_membership.py +12 -6
  61. pulumi_gcp/gkehub/outputs.py +17 -1
  62. pulumi_gcp/iam/_inputs.py +196 -0
  63. pulumi_gcp/iam/get_workload_identity_pool_provider.py +13 -3
  64. pulumi_gcp/iam/outputs.py +295 -0
  65. pulumi_gcp/iam/workload_identity_pool_provider.py +164 -3
  66. pulumi_gcp/kms/__init__.py +2 -0
  67. pulumi_gcp/kms/autokey_config.py +10 -2
  68. pulumi_gcp/kms/get_crypto_key_latest_version.py +222 -0
  69. pulumi_gcp/kms/get_crypto_key_versions.py +175 -0
  70. pulumi_gcp/kms/outputs.py +164 -0
  71. pulumi_gcp/netapp/active_directory.py +6 -6
  72. pulumi_gcp/netapp/backup.py +6 -6
  73. pulumi_gcp/netapp/backup_policy.py +6 -6
  74. pulumi_gcp/netapp/backup_vault.py +6 -6
  75. pulumi_gcp/netapp/storage_pool.py +4 -4
  76. pulumi_gcp/netapp/volume.py +7 -0
  77. pulumi_gcp/networkconnectivity/_inputs.py +21 -1
  78. pulumi_gcp/networkconnectivity/outputs.py +15 -1
  79. pulumi_gcp/networkconnectivity/spoke.py +8 -0
  80. pulumi_gcp/networksecurity/client_tls_policy.py +24 -22
  81. pulumi_gcp/networksecurity/server_tls_policy.py +20 -32
  82. pulumi_gcp/organizations/get_project.py +13 -3
  83. pulumi_gcp/organizations/project.py +88 -3
  84. pulumi_gcp/parallelstore/instance.py +121 -121
  85. pulumi_gcp/projects/iam_member_remove.py +26 -0
  86. pulumi_gcp/projects/usage_export_bucket.py +38 -0
  87. pulumi_gcp/pubsub/_inputs.py +40 -0
  88. pulumi_gcp/pubsub/outputs.py +51 -1
  89. pulumi_gcp/pubsub/subscription.py +6 -0
  90. pulumi_gcp/pulumi-plugin.json +1 -1
  91. pulumi_gcp/redis/_inputs.py +419 -0
  92. pulumi_gcp/redis/cluster.py +123 -0
  93. pulumi_gcp/redis/outputs.py +315 -0
  94. pulumi_gcp/securitycenter/__init__.py +2 -0
  95. pulumi_gcp/securitycenter/v2_folder_scc_big_query_export.py +857 -0
  96. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +4 -4
  97. pulumi_gcp/securitycenter/v2_project_scc_big_query_export.py +796 -0
  98. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/RECORD +101 -95
  100. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/WHEEL +1 -1
  101. {pulumi_gcp-8.0.0a1726253601.dist-info → pulumi_gcp-8.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1203 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['BackupVaultArgs', 'BackupVault']
18
+
19
+ @pulumi.input_type
20
+ class BackupVaultArgs:
21
+ def __init__(__self__, *,
22
+ backup_minimum_enforced_retention_duration: pulumi.Input[str],
23
+ backup_vault_id: pulumi.Input[str],
24
+ location: pulumi.Input[str],
25
+ allow_missing: Optional[pulumi.Input[bool]] = None,
26
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ description: Optional[pulumi.Input[str]] = None,
28
+ effective_time: Optional[pulumi.Input[str]] = None,
29
+ force_delete: Optional[pulumi.Input[bool]] = None,
30
+ force_update: Optional[pulumi.Input[bool]] = None,
31
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
32
+ project: Optional[pulumi.Input[str]] = None):
33
+ """
34
+ The set of arguments for constructing a BackupVault resource.
35
+ :param pulumi.Input[str] backup_minimum_enforced_retention_duration: Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
36
+ :param pulumi.Input[str] backup_vault_id: Required. ID of the requesting object.
37
+
38
+
39
+ - - -
40
+ :param pulumi.Input[str] location: The GCP location for the backup vault.
41
+ :param pulumi.Input[bool] allow_missing: Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
42
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. See https://google.aip.dev/128#annotations
43
+ Stores small amounts of arbitrary data.
44
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
45
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
46
+ :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less).
47
+ :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked.
48
+ :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden:
49
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
50
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
51
+ :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
52
+ the restriction against conflicting retention periods. This conflict may occur when the
53
+ expiration schedule defined by the associated backup plan is shorter than the minimum
54
+ retention set by the backup vault.
55
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
56
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
57
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
58
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
59
+ If it is not provided, the provider project is used.
60
+ """
61
+ pulumi.set(__self__, "backup_minimum_enforced_retention_duration", backup_minimum_enforced_retention_duration)
62
+ pulumi.set(__self__, "backup_vault_id", backup_vault_id)
63
+ pulumi.set(__self__, "location", location)
64
+ if allow_missing is not None:
65
+ pulumi.set(__self__, "allow_missing", allow_missing)
66
+ if annotations is not None:
67
+ pulumi.set(__self__, "annotations", annotations)
68
+ if description is not None:
69
+ pulumi.set(__self__, "description", description)
70
+ if effective_time is not None:
71
+ pulumi.set(__self__, "effective_time", effective_time)
72
+ if force_delete is not None:
73
+ pulumi.set(__self__, "force_delete", force_delete)
74
+ if force_update is not None:
75
+ pulumi.set(__self__, "force_update", force_update)
76
+ if labels is not None:
77
+ pulumi.set(__self__, "labels", labels)
78
+ if project is not None:
79
+ pulumi.set(__self__, "project", project)
80
+
81
+ @property
82
+ @pulumi.getter(name="backupMinimumEnforcedRetentionDuration")
83
+ def backup_minimum_enforced_retention_duration(self) -> pulumi.Input[str]:
84
+ """
85
+ Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
86
+ """
87
+ return pulumi.get(self, "backup_minimum_enforced_retention_duration")
88
+
89
+ @backup_minimum_enforced_retention_duration.setter
90
+ def backup_minimum_enforced_retention_duration(self, value: pulumi.Input[str]):
91
+ pulumi.set(self, "backup_minimum_enforced_retention_duration", value)
92
+
93
+ @property
94
+ @pulumi.getter(name="backupVaultId")
95
+ def backup_vault_id(self) -> pulumi.Input[str]:
96
+ """
97
+ Required. ID of the requesting object.
98
+
99
+
100
+ - - -
101
+ """
102
+ return pulumi.get(self, "backup_vault_id")
103
+
104
+ @backup_vault_id.setter
105
+ def backup_vault_id(self, value: pulumi.Input[str]):
106
+ pulumi.set(self, "backup_vault_id", value)
107
+
108
+ @property
109
+ @pulumi.getter
110
+ def location(self) -> pulumi.Input[str]:
111
+ """
112
+ The GCP location for the backup vault.
113
+ """
114
+ return pulumi.get(self, "location")
115
+
116
+ @location.setter
117
+ def location(self, value: pulumi.Input[str]):
118
+ pulumi.set(self, "location", value)
119
+
120
+ @property
121
+ @pulumi.getter(name="allowMissing")
122
+ def allow_missing(self) -> Optional[pulumi.Input[bool]]:
123
+ """
124
+ Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
125
+ """
126
+ return pulumi.get(self, "allow_missing")
127
+
128
+ @allow_missing.setter
129
+ def allow_missing(self, value: Optional[pulumi.Input[bool]]):
130
+ pulumi.set(self, "allow_missing", value)
131
+
132
+ @property
133
+ @pulumi.getter
134
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
135
+ """
136
+ Optional. User annotations. See https://google.aip.dev/128#annotations
137
+ Stores small amounts of arbitrary data.
138
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
139
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
140
+ """
141
+ return pulumi.get(self, "annotations")
142
+
143
+ @annotations.setter
144
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
145
+ pulumi.set(self, "annotations", value)
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def description(self) -> Optional[pulumi.Input[str]]:
150
+ """
151
+ Optional. The description of the BackupVault instance (2048 characters or less).
152
+ """
153
+ return pulumi.get(self, "description")
154
+
155
+ @description.setter
156
+ def description(self, value: Optional[pulumi.Input[str]]):
157
+ pulumi.set(self, "description", value)
158
+
159
+ @property
160
+ @pulumi.getter(name="effectiveTime")
161
+ def effective_time(self) -> Optional[pulumi.Input[str]]:
162
+ """
163
+ Optional. Time after which the BackupVault resource is locked.
164
+ """
165
+ return pulumi.get(self, "effective_time")
166
+
167
+ @effective_time.setter
168
+ def effective_time(self, value: Optional[pulumi.Input[str]]):
169
+ pulumi.set(self, "effective_time", value)
170
+
171
+ @property
172
+ @pulumi.getter(name="forceDelete")
173
+ def force_delete(self) -> Optional[pulumi.Input[bool]]:
174
+ """
175
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
176
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
177
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
178
+ """
179
+ return pulumi.get(self, "force_delete")
180
+
181
+ @force_delete.setter
182
+ def force_delete(self, value: Optional[pulumi.Input[bool]]):
183
+ pulumi.set(self, "force_delete", value)
184
+
185
+ @property
186
+ @pulumi.getter(name="forceUpdate")
187
+ def force_update(self) -> Optional[pulumi.Input[bool]]:
188
+ """
189
+ If set, allow update to extend the minimum enforced retention for backup vault. This overrides
190
+ the restriction against conflicting retention periods. This conflict may occur when the
191
+ expiration schedule defined by the associated backup plan is shorter than the minimum
192
+ retention set by the backup vault.
193
+ """
194
+ return pulumi.get(self, "force_update")
195
+
196
+ @force_update.setter
197
+ def force_update(self, value: Optional[pulumi.Input[bool]]):
198
+ pulumi.set(self, "force_update", value)
199
+
200
+ @property
201
+ @pulumi.getter
202
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
203
+ """
204
+ Optional. Resource labels to represent user provided metadata.
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 project(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ The ID of the project in which the resource belongs.
219
+ If it is not provided, the provider project is used.
220
+ """
221
+ return pulumi.get(self, "project")
222
+
223
+ @project.setter
224
+ def project(self, value: Optional[pulumi.Input[str]]):
225
+ pulumi.set(self, "project", value)
226
+
227
+
228
+ @pulumi.input_type
229
+ class _BackupVaultState:
230
+ def __init__(__self__, *,
231
+ allow_missing: Optional[pulumi.Input[bool]] = None,
232
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
233
+ backup_count: Optional[pulumi.Input[str]] = None,
234
+ backup_minimum_enforced_retention_duration: Optional[pulumi.Input[str]] = None,
235
+ backup_vault_id: Optional[pulumi.Input[str]] = None,
236
+ create_time: Optional[pulumi.Input[str]] = None,
237
+ deletable: Optional[pulumi.Input[bool]] = None,
238
+ description: Optional[pulumi.Input[str]] = None,
239
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
240
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
241
+ effective_time: Optional[pulumi.Input[str]] = None,
242
+ etag: Optional[pulumi.Input[str]] = None,
243
+ force_delete: Optional[pulumi.Input[bool]] = None,
244
+ force_update: Optional[pulumi.Input[bool]] = None,
245
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
246
+ location: Optional[pulumi.Input[str]] = None,
247
+ name: Optional[pulumi.Input[str]] = None,
248
+ project: Optional[pulumi.Input[str]] = None,
249
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
250
+ service_account: Optional[pulumi.Input[str]] = None,
251
+ state: Optional[pulumi.Input[str]] = None,
252
+ total_stored_bytes: Optional[pulumi.Input[str]] = None,
253
+ uid: Optional[pulumi.Input[str]] = None,
254
+ update_time: Optional[pulumi.Input[str]] = None):
255
+ """
256
+ Input properties used for looking up and filtering BackupVault resources.
257
+ :param pulumi.Input[bool] allow_missing: Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
258
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. See https://google.aip.dev/128#annotations
259
+ Stores small amounts of arbitrary data.
260
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
261
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
262
+ :param pulumi.Input[str] backup_count: Output only. The number of backups in this backup vault.
263
+ :param pulumi.Input[str] backup_minimum_enforced_retention_duration: Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
264
+ :param pulumi.Input[str] backup_vault_id: Required. ID of the requesting object.
265
+
266
+
267
+ - - -
268
+ :param pulumi.Input[str] create_time: Output only. The time when the instance was created.
269
+ :param pulumi.Input[bool] deletable: Output only. Set to true when there are no backups nested under this resource.
270
+ :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less).
271
+ :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.
272
+ :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked.
273
+ :param pulumi.Input[str] etag: Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other.
274
+ :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden:
275
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
276
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
277
+ :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
278
+ the restriction against conflicting retention periods. This conflict may occur when the
279
+ expiration schedule defined by the associated backup plan is shorter than the minimum
280
+ retention set by the backup vault.
281
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
282
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
283
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
284
+ :param pulumi.Input[str] location: The GCP location for the backup vault.
285
+ :param pulumi.Input[str] name: Output only. Identifier. The resource name.
286
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
287
+ If it is not provided, the provider project is used.
288
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
289
+ and default labels configured on the provider.
290
+ :param pulumi.Input[str] service_account: Output only. Service account used by the BackupVault Service for this BackupVault. The user should grant this account permissions in their workload project to enable the service to run backups and restores there.
291
+ :param pulumi.Input[str] state: Output only. The BackupVault resource instance state.
292
+ Possible values:
293
+ STATE_UNSPECIFIED
294
+ CREATING
295
+ ACTIVE
296
+ DELETING
297
+ ERROR
298
+ :param pulumi.Input[str] total_stored_bytes: Output only. Total size of the storage used by all backup resources.
299
+ :param pulumi.Input[str] uid: Output only. Output only Immutable after resource creation until resource deletion.
300
+ :param pulumi.Input[str] update_time: Output only. The time when the instance was updated.
301
+ """
302
+ if allow_missing is not None:
303
+ pulumi.set(__self__, "allow_missing", allow_missing)
304
+ if annotations is not None:
305
+ pulumi.set(__self__, "annotations", annotations)
306
+ if backup_count is not None:
307
+ pulumi.set(__self__, "backup_count", backup_count)
308
+ if backup_minimum_enforced_retention_duration is not None:
309
+ pulumi.set(__self__, "backup_minimum_enforced_retention_duration", backup_minimum_enforced_retention_duration)
310
+ if backup_vault_id is not None:
311
+ pulumi.set(__self__, "backup_vault_id", backup_vault_id)
312
+ if create_time is not None:
313
+ pulumi.set(__self__, "create_time", create_time)
314
+ if deletable is not None:
315
+ pulumi.set(__self__, "deletable", deletable)
316
+ if description is not None:
317
+ pulumi.set(__self__, "description", description)
318
+ if effective_annotations is not None:
319
+ pulumi.set(__self__, "effective_annotations", effective_annotations)
320
+ if effective_labels is not None:
321
+ pulumi.set(__self__, "effective_labels", effective_labels)
322
+ if effective_time is not None:
323
+ pulumi.set(__self__, "effective_time", effective_time)
324
+ if etag is not None:
325
+ pulumi.set(__self__, "etag", etag)
326
+ if force_delete is not None:
327
+ pulumi.set(__self__, "force_delete", force_delete)
328
+ if force_update is not None:
329
+ pulumi.set(__self__, "force_update", force_update)
330
+ if labels is not None:
331
+ pulumi.set(__self__, "labels", labels)
332
+ if location is not None:
333
+ pulumi.set(__self__, "location", location)
334
+ if name is not None:
335
+ pulumi.set(__self__, "name", name)
336
+ if project is not None:
337
+ pulumi.set(__self__, "project", project)
338
+ if pulumi_labels is not None:
339
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
340
+ if service_account is not None:
341
+ pulumi.set(__self__, "service_account", service_account)
342
+ if state is not None:
343
+ pulumi.set(__self__, "state", state)
344
+ if total_stored_bytes is not None:
345
+ pulumi.set(__self__, "total_stored_bytes", total_stored_bytes)
346
+ if uid is not None:
347
+ pulumi.set(__self__, "uid", uid)
348
+ if update_time is not None:
349
+ pulumi.set(__self__, "update_time", update_time)
350
+
351
+ @property
352
+ @pulumi.getter(name="allowMissing")
353
+ def allow_missing(self) -> Optional[pulumi.Input[bool]]:
354
+ """
355
+ Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
356
+ """
357
+ return pulumi.get(self, "allow_missing")
358
+
359
+ @allow_missing.setter
360
+ def allow_missing(self, value: Optional[pulumi.Input[bool]]):
361
+ pulumi.set(self, "allow_missing", value)
362
+
363
+ @property
364
+ @pulumi.getter
365
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
366
+ """
367
+ Optional. User annotations. See https://google.aip.dev/128#annotations
368
+ Stores small amounts of arbitrary data.
369
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
370
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
371
+ """
372
+ return pulumi.get(self, "annotations")
373
+
374
+ @annotations.setter
375
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
376
+ pulumi.set(self, "annotations", value)
377
+
378
+ @property
379
+ @pulumi.getter(name="backupCount")
380
+ def backup_count(self) -> Optional[pulumi.Input[str]]:
381
+ """
382
+ Output only. The number of backups in this backup vault.
383
+ """
384
+ return pulumi.get(self, "backup_count")
385
+
386
+ @backup_count.setter
387
+ def backup_count(self, value: Optional[pulumi.Input[str]]):
388
+ pulumi.set(self, "backup_count", value)
389
+
390
+ @property
391
+ @pulumi.getter(name="backupMinimumEnforcedRetentionDuration")
392
+ def backup_minimum_enforced_retention_duration(self) -> Optional[pulumi.Input[str]]:
393
+ """
394
+ Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
395
+ """
396
+ return pulumi.get(self, "backup_minimum_enforced_retention_duration")
397
+
398
+ @backup_minimum_enforced_retention_duration.setter
399
+ def backup_minimum_enforced_retention_duration(self, value: Optional[pulumi.Input[str]]):
400
+ pulumi.set(self, "backup_minimum_enforced_retention_duration", value)
401
+
402
+ @property
403
+ @pulumi.getter(name="backupVaultId")
404
+ def backup_vault_id(self) -> Optional[pulumi.Input[str]]:
405
+ """
406
+ Required. ID of the requesting object.
407
+
408
+
409
+ - - -
410
+ """
411
+ return pulumi.get(self, "backup_vault_id")
412
+
413
+ @backup_vault_id.setter
414
+ def backup_vault_id(self, value: Optional[pulumi.Input[str]]):
415
+ pulumi.set(self, "backup_vault_id", value)
416
+
417
+ @property
418
+ @pulumi.getter(name="createTime")
419
+ def create_time(self) -> Optional[pulumi.Input[str]]:
420
+ """
421
+ Output only. The time when the instance was created.
422
+ """
423
+ return pulumi.get(self, "create_time")
424
+
425
+ @create_time.setter
426
+ def create_time(self, value: Optional[pulumi.Input[str]]):
427
+ pulumi.set(self, "create_time", value)
428
+
429
+ @property
430
+ @pulumi.getter
431
+ def deletable(self) -> Optional[pulumi.Input[bool]]:
432
+ """
433
+ Output only. Set to true when there are no backups nested under this resource.
434
+ """
435
+ return pulumi.get(self, "deletable")
436
+
437
+ @deletable.setter
438
+ def deletable(self, value: Optional[pulumi.Input[bool]]):
439
+ pulumi.set(self, "deletable", value)
440
+
441
+ @property
442
+ @pulumi.getter
443
+ def description(self) -> Optional[pulumi.Input[str]]:
444
+ """
445
+ Optional. The description of the BackupVault instance (2048 characters or less).
446
+ """
447
+ return pulumi.get(self, "description")
448
+
449
+ @description.setter
450
+ def description(self, value: Optional[pulumi.Input[str]]):
451
+ pulumi.set(self, "description", value)
452
+
453
+ @property
454
+ @pulumi.getter(name="effectiveAnnotations")
455
+ def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
456
+ return pulumi.get(self, "effective_annotations")
457
+
458
+ @effective_annotations.setter
459
+ def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
460
+ pulumi.set(self, "effective_annotations", value)
461
+
462
+ @property
463
+ @pulumi.getter(name="effectiveLabels")
464
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
465
+ """
466
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
467
+ """
468
+ return pulumi.get(self, "effective_labels")
469
+
470
+ @effective_labels.setter
471
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
472
+ pulumi.set(self, "effective_labels", value)
473
+
474
+ @property
475
+ @pulumi.getter(name="effectiveTime")
476
+ def effective_time(self) -> Optional[pulumi.Input[str]]:
477
+ """
478
+ Optional. Time after which the BackupVault resource is locked.
479
+ """
480
+ return pulumi.get(self, "effective_time")
481
+
482
+ @effective_time.setter
483
+ def effective_time(self, value: Optional[pulumi.Input[str]]):
484
+ pulumi.set(self, "effective_time", value)
485
+
486
+ @property
487
+ @pulumi.getter
488
+ def etag(self) -> Optional[pulumi.Input[str]]:
489
+ """
490
+ Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other.
491
+ """
492
+ return pulumi.get(self, "etag")
493
+
494
+ @etag.setter
495
+ def etag(self, value: Optional[pulumi.Input[str]]):
496
+ pulumi.set(self, "etag", value)
497
+
498
+ @property
499
+ @pulumi.getter(name="forceDelete")
500
+ def force_delete(self) -> Optional[pulumi.Input[bool]]:
501
+ """
502
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
503
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
504
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
505
+ """
506
+ return pulumi.get(self, "force_delete")
507
+
508
+ @force_delete.setter
509
+ def force_delete(self, value: Optional[pulumi.Input[bool]]):
510
+ pulumi.set(self, "force_delete", value)
511
+
512
+ @property
513
+ @pulumi.getter(name="forceUpdate")
514
+ def force_update(self) -> Optional[pulumi.Input[bool]]:
515
+ """
516
+ If set, allow update to extend the minimum enforced retention for backup vault. This overrides
517
+ the restriction against conflicting retention periods. This conflict may occur when the
518
+ expiration schedule defined by the associated backup plan is shorter than the minimum
519
+ retention set by the backup vault.
520
+ """
521
+ return pulumi.get(self, "force_update")
522
+
523
+ @force_update.setter
524
+ def force_update(self, value: Optional[pulumi.Input[bool]]):
525
+ pulumi.set(self, "force_update", value)
526
+
527
+ @property
528
+ @pulumi.getter
529
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
530
+ """
531
+ Optional. Resource labels to represent user provided metadata.
532
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
533
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
534
+ """
535
+ return pulumi.get(self, "labels")
536
+
537
+ @labels.setter
538
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
539
+ pulumi.set(self, "labels", value)
540
+
541
+ @property
542
+ @pulumi.getter
543
+ def location(self) -> Optional[pulumi.Input[str]]:
544
+ """
545
+ The GCP location for the backup vault.
546
+ """
547
+ return pulumi.get(self, "location")
548
+
549
+ @location.setter
550
+ def location(self, value: Optional[pulumi.Input[str]]):
551
+ pulumi.set(self, "location", value)
552
+
553
+ @property
554
+ @pulumi.getter
555
+ def name(self) -> Optional[pulumi.Input[str]]:
556
+ """
557
+ Output only. Identifier. The resource name.
558
+ """
559
+ return pulumi.get(self, "name")
560
+
561
+ @name.setter
562
+ def name(self, value: Optional[pulumi.Input[str]]):
563
+ pulumi.set(self, "name", value)
564
+
565
+ @property
566
+ @pulumi.getter
567
+ def project(self) -> Optional[pulumi.Input[str]]:
568
+ """
569
+ The ID of the project in which the resource belongs.
570
+ If it is not provided, the provider project is used.
571
+ """
572
+ return pulumi.get(self, "project")
573
+
574
+ @project.setter
575
+ def project(self, value: Optional[pulumi.Input[str]]):
576
+ pulumi.set(self, "project", value)
577
+
578
+ @property
579
+ @pulumi.getter(name="pulumiLabels")
580
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
581
+ """
582
+ The combination of labels configured directly on the resource
583
+ and default labels configured on the provider.
584
+ """
585
+ return pulumi.get(self, "pulumi_labels")
586
+
587
+ @pulumi_labels.setter
588
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
589
+ pulumi.set(self, "pulumi_labels", value)
590
+
591
+ @property
592
+ @pulumi.getter(name="serviceAccount")
593
+ def service_account(self) -> Optional[pulumi.Input[str]]:
594
+ """
595
+ Output only. Service account used by the BackupVault Service for this BackupVault. The user should grant this account permissions in their workload project to enable the service to run backups and restores there.
596
+ """
597
+ return pulumi.get(self, "service_account")
598
+
599
+ @service_account.setter
600
+ def service_account(self, value: Optional[pulumi.Input[str]]):
601
+ pulumi.set(self, "service_account", value)
602
+
603
+ @property
604
+ @pulumi.getter
605
+ def state(self) -> Optional[pulumi.Input[str]]:
606
+ """
607
+ Output only. The BackupVault resource instance state.
608
+ Possible values:
609
+ STATE_UNSPECIFIED
610
+ CREATING
611
+ ACTIVE
612
+ DELETING
613
+ ERROR
614
+ """
615
+ return pulumi.get(self, "state")
616
+
617
+ @state.setter
618
+ def state(self, value: Optional[pulumi.Input[str]]):
619
+ pulumi.set(self, "state", value)
620
+
621
+ @property
622
+ @pulumi.getter(name="totalStoredBytes")
623
+ def total_stored_bytes(self) -> Optional[pulumi.Input[str]]:
624
+ """
625
+ Output only. Total size of the storage used by all backup resources.
626
+ """
627
+ return pulumi.get(self, "total_stored_bytes")
628
+
629
+ @total_stored_bytes.setter
630
+ def total_stored_bytes(self, value: Optional[pulumi.Input[str]]):
631
+ pulumi.set(self, "total_stored_bytes", value)
632
+
633
+ @property
634
+ @pulumi.getter
635
+ def uid(self) -> Optional[pulumi.Input[str]]:
636
+ """
637
+ Output only. Output only Immutable after resource creation until resource deletion.
638
+ """
639
+ return pulumi.get(self, "uid")
640
+
641
+ @uid.setter
642
+ def uid(self, value: Optional[pulumi.Input[str]]):
643
+ pulumi.set(self, "uid", value)
644
+
645
+ @property
646
+ @pulumi.getter(name="updateTime")
647
+ def update_time(self) -> Optional[pulumi.Input[str]]:
648
+ """
649
+ Output only. The time when the instance was updated.
650
+ """
651
+ return pulumi.get(self, "update_time")
652
+
653
+ @update_time.setter
654
+ def update_time(self, value: Optional[pulumi.Input[str]]):
655
+ pulumi.set(self, "update_time", value)
656
+
657
+
658
+ class BackupVault(pulumi.CustomResource):
659
+ @overload
660
+ def __init__(__self__,
661
+ resource_name: str,
662
+ opts: Optional[pulumi.ResourceOptions] = None,
663
+ allow_missing: Optional[pulumi.Input[bool]] = None,
664
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
665
+ backup_minimum_enforced_retention_duration: Optional[pulumi.Input[str]] = None,
666
+ backup_vault_id: Optional[pulumi.Input[str]] = None,
667
+ description: Optional[pulumi.Input[str]] = None,
668
+ effective_time: Optional[pulumi.Input[str]] = None,
669
+ force_delete: Optional[pulumi.Input[bool]] = None,
670
+ force_update: Optional[pulumi.Input[bool]] = None,
671
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
672
+ location: Optional[pulumi.Input[str]] = None,
673
+ project: Optional[pulumi.Input[str]] = None,
674
+ __props__=None):
675
+ """
676
+ ## Example Usage
677
+
678
+ ### Backup Dr Backup Vault Full
679
+
680
+ ```python
681
+ import pulumi
682
+ import pulumi_gcp as gcp
683
+
684
+ backup_vault_test = gcp.backupdisasterrecovery.BackupVault("backup-vault-test",
685
+ location="us-central1",
686
+ backup_vault_id="backup-vault-test",
687
+ description="This is a second backup vault built by Terraform.",
688
+ backup_minimum_enforced_retention_duration="100000s",
689
+ labels={
690
+ "foo": "bar1",
691
+ "bar": "baz1",
692
+ },
693
+ annotations={
694
+ "annotations1": "bar1",
695
+ "annotations2": "baz1",
696
+ },
697
+ force_update=True,
698
+ force_delete=True,
699
+ allow_missing=True)
700
+ ```
701
+
702
+ ## Import
703
+
704
+ BackupVault can be imported using any of these accepted formats:
705
+
706
+ * `projects/{{project}}/locations/{{location}}/backupVaults/{{backup_vault_id}}`
707
+
708
+ * `{{project}}/{{location}}/{{backup_vault_id}}`
709
+
710
+ * `{{location}}/{{backup_vault_id}}`
711
+
712
+ When using the `pulumi import` command, BackupVault can be imported using one of the formats above. For example:
713
+
714
+ ```sh
715
+ $ pulumi import gcp:backupdisasterrecovery/backupVault:BackupVault default projects/{{project}}/locations/{{location}}/backupVaults/{{backup_vault_id}}
716
+ ```
717
+
718
+ ```sh
719
+ $ pulumi import gcp:backupdisasterrecovery/backupVault:BackupVault default {{project}}/{{location}}/{{backup_vault_id}}
720
+ ```
721
+
722
+ ```sh
723
+ $ pulumi import gcp:backupdisasterrecovery/backupVault:BackupVault default {{location}}/{{backup_vault_id}}
724
+ ```
725
+
726
+ :param str resource_name: The name of the resource.
727
+ :param pulumi.ResourceOptions opts: Options for the resource.
728
+ :param pulumi.Input[bool] allow_missing: Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
729
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. See https://google.aip.dev/128#annotations
730
+ Stores small amounts of arbitrary data.
731
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
732
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
733
+ :param pulumi.Input[str] backup_minimum_enforced_retention_duration: Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
734
+ :param pulumi.Input[str] backup_vault_id: Required. ID of the requesting object.
735
+
736
+
737
+ - - -
738
+ :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less).
739
+ :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked.
740
+ :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden:
741
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
742
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
743
+ :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
744
+ the restriction against conflicting retention periods. This conflict may occur when the
745
+ expiration schedule defined by the associated backup plan is shorter than the minimum
746
+ retention set by the backup vault.
747
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
748
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
749
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
750
+ :param pulumi.Input[str] location: The GCP location for the backup vault.
751
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
752
+ If it is not provided, the provider project is used.
753
+ """
754
+ ...
755
+ @overload
756
+ def __init__(__self__,
757
+ resource_name: str,
758
+ args: BackupVaultArgs,
759
+ opts: Optional[pulumi.ResourceOptions] = None):
760
+ """
761
+ ## Example Usage
762
+
763
+ ### Backup Dr Backup Vault Full
764
+
765
+ ```python
766
+ import pulumi
767
+ import pulumi_gcp as gcp
768
+
769
+ backup_vault_test = gcp.backupdisasterrecovery.BackupVault("backup-vault-test",
770
+ location="us-central1",
771
+ backup_vault_id="backup-vault-test",
772
+ description="This is a second backup vault built by Terraform.",
773
+ backup_minimum_enforced_retention_duration="100000s",
774
+ labels={
775
+ "foo": "bar1",
776
+ "bar": "baz1",
777
+ },
778
+ annotations={
779
+ "annotations1": "bar1",
780
+ "annotations2": "baz1",
781
+ },
782
+ force_update=True,
783
+ force_delete=True,
784
+ allow_missing=True)
785
+ ```
786
+
787
+ ## Import
788
+
789
+ BackupVault can be imported using any of these accepted formats:
790
+
791
+ * `projects/{{project}}/locations/{{location}}/backupVaults/{{backup_vault_id}}`
792
+
793
+ * `{{project}}/{{location}}/{{backup_vault_id}}`
794
+
795
+ * `{{location}}/{{backup_vault_id}}`
796
+
797
+ When using the `pulumi import` command, BackupVault can be imported using one of the formats above. For example:
798
+
799
+ ```sh
800
+ $ pulumi import gcp:backupdisasterrecovery/backupVault:BackupVault default projects/{{project}}/locations/{{location}}/backupVaults/{{backup_vault_id}}
801
+ ```
802
+
803
+ ```sh
804
+ $ pulumi import gcp:backupdisasterrecovery/backupVault:BackupVault default {{project}}/{{location}}/{{backup_vault_id}}
805
+ ```
806
+
807
+ ```sh
808
+ $ pulumi import gcp:backupdisasterrecovery/backupVault:BackupVault default {{location}}/{{backup_vault_id}}
809
+ ```
810
+
811
+ :param str resource_name: The name of the resource.
812
+ :param BackupVaultArgs args: The arguments to use to populate this resource's properties.
813
+ :param pulumi.ResourceOptions opts: Options for the resource.
814
+ """
815
+ ...
816
+ def __init__(__self__, resource_name: str, *args, **kwargs):
817
+ resource_args, opts = _utilities.get_resource_args_opts(BackupVaultArgs, pulumi.ResourceOptions, *args, **kwargs)
818
+ if resource_args is not None:
819
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
820
+ else:
821
+ __self__._internal_init(resource_name, *args, **kwargs)
822
+
823
+ def _internal_init(__self__,
824
+ resource_name: str,
825
+ opts: Optional[pulumi.ResourceOptions] = None,
826
+ allow_missing: Optional[pulumi.Input[bool]] = None,
827
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
828
+ backup_minimum_enforced_retention_duration: Optional[pulumi.Input[str]] = None,
829
+ backup_vault_id: Optional[pulumi.Input[str]] = None,
830
+ description: Optional[pulumi.Input[str]] = None,
831
+ effective_time: Optional[pulumi.Input[str]] = None,
832
+ force_delete: Optional[pulumi.Input[bool]] = None,
833
+ force_update: Optional[pulumi.Input[bool]] = None,
834
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
835
+ location: Optional[pulumi.Input[str]] = None,
836
+ project: Optional[pulumi.Input[str]] = None,
837
+ __props__=None):
838
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
839
+ if not isinstance(opts, pulumi.ResourceOptions):
840
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
841
+ if opts.id is None:
842
+ if __props__ is not None:
843
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
844
+ __props__ = BackupVaultArgs.__new__(BackupVaultArgs)
845
+
846
+ __props__.__dict__["allow_missing"] = allow_missing
847
+ __props__.__dict__["annotations"] = annotations
848
+ if backup_minimum_enforced_retention_duration is None and not opts.urn:
849
+ raise TypeError("Missing required property 'backup_minimum_enforced_retention_duration'")
850
+ __props__.__dict__["backup_minimum_enforced_retention_duration"] = backup_minimum_enforced_retention_duration
851
+ if backup_vault_id is None and not opts.urn:
852
+ raise TypeError("Missing required property 'backup_vault_id'")
853
+ __props__.__dict__["backup_vault_id"] = backup_vault_id
854
+ __props__.__dict__["description"] = description
855
+ __props__.__dict__["effective_time"] = effective_time
856
+ __props__.__dict__["force_delete"] = force_delete
857
+ __props__.__dict__["force_update"] = force_update
858
+ __props__.__dict__["labels"] = labels
859
+ if location is None and not opts.urn:
860
+ raise TypeError("Missing required property 'location'")
861
+ __props__.__dict__["location"] = location
862
+ __props__.__dict__["project"] = project
863
+ __props__.__dict__["backup_count"] = None
864
+ __props__.__dict__["create_time"] = None
865
+ __props__.__dict__["deletable"] = None
866
+ __props__.__dict__["effective_annotations"] = None
867
+ __props__.__dict__["effective_labels"] = None
868
+ __props__.__dict__["etag"] = None
869
+ __props__.__dict__["name"] = None
870
+ __props__.__dict__["pulumi_labels"] = None
871
+ __props__.__dict__["service_account"] = None
872
+ __props__.__dict__["state"] = None
873
+ __props__.__dict__["total_stored_bytes"] = None
874
+ __props__.__dict__["uid"] = None
875
+ __props__.__dict__["update_time"] = None
876
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
877
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
878
+ super(BackupVault, __self__).__init__(
879
+ 'gcp:backupdisasterrecovery/backupVault:BackupVault',
880
+ resource_name,
881
+ __props__,
882
+ opts)
883
+
884
+ @staticmethod
885
+ def get(resource_name: str,
886
+ id: pulumi.Input[str],
887
+ opts: Optional[pulumi.ResourceOptions] = None,
888
+ allow_missing: Optional[pulumi.Input[bool]] = None,
889
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
890
+ backup_count: Optional[pulumi.Input[str]] = None,
891
+ backup_minimum_enforced_retention_duration: Optional[pulumi.Input[str]] = None,
892
+ backup_vault_id: Optional[pulumi.Input[str]] = None,
893
+ create_time: Optional[pulumi.Input[str]] = None,
894
+ deletable: Optional[pulumi.Input[bool]] = None,
895
+ description: Optional[pulumi.Input[str]] = None,
896
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
897
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
898
+ effective_time: Optional[pulumi.Input[str]] = None,
899
+ etag: Optional[pulumi.Input[str]] = None,
900
+ force_delete: Optional[pulumi.Input[bool]] = None,
901
+ force_update: Optional[pulumi.Input[bool]] = None,
902
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
903
+ location: Optional[pulumi.Input[str]] = None,
904
+ name: Optional[pulumi.Input[str]] = None,
905
+ project: Optional[pulumi.Input[str]] = None,
906
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
907
+ service_account: Optional[pulumi.Input[str]] = None,
908
+ state: Optional[pulumi.Input[str]] = None,
909
+ total_stored_bytes: Optional[pulumi.Input[str]] = None,
910
+ uid: Optional[pulumi.Input[str]] = None,
911
+ update_time: Optional[pulumi.Input[str]] = None) -> 'BackupVault':
912
+ """
913
+ Get an existing BackupVault resource's state with the given name, id, and optional extra
914
+ properties used to qualify the lookup.
915
+
916
+ :param str resource_name: The unique name of the resulting resource.
917
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
918
+ :param pulumi.ResourceOptions opts: Options for the resource.
919
+ :param pulumi.Input[bool] allow_missing: Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
920
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. See https://google.aip.dev/128#annotations
921
+ Stores small amounts of arbitrary data.
922
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
923
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
924
+ :param pulumi.Input[str] backup_count: Output only. The number of backups in this backup vault.
925
+ :param pulumi.Input[str] backup_minimum_enforced_retention_duration: Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
926
+ :param pulumi.Input[str] backup_vault_id: Required. ID of the requesting object.
927
+
928
+
929
+ - - -
930
+ :param pulumi.Input[str] create_time: Output only. The time when the instance was created.
931
+ :param pulumi.Input[bool] deletable: Output only. Set to true when there are no backups nested under this resource.
932
+ :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less).
933
+ :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.
934
+ :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked.
935
+ :param pulumi.Input[str] etag: Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other.
936
+ :param pulumi.Input[bool] force_delete: If set, the following restrictions against deletion of the backup vault instance can be overridden:
937
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
938
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
939
+ :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
940
+ the restriction against conflicting retention periods. This conflict may occur when the
941
+ expiration schedule defined by the associated backup plan is shorter than the minimum
942
+ retention set by the backup vault.
943
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
944
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
945
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
946
+ :param pulumi.Input[str] location: The GCP location for the backup vault.
947
+ :param pulumi.Input[str] name: Output only. Identifier. The resource name.
948
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
949
+ If it is not provided, the provider project is used.
950
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
951
+ and default labels configured on the provider.
952
+ :param pulumi.Input[str] service_account: Output only. Service account used by the BackupVault Service for this BackupVault. The user should grant this account permissions in their workload project to enable the service to run backups and restores there.
953
+ :param pulumi.Input[str] state: Output only. The BackupVault resource instance state.
954
+ Possible values:
955
+ STATE_UNSPECIFIED
956
+ CREATING
957
+ ACTIVE
958
+ DELETING
959
+ ERROR
960
+ :param pulumi.Input[str] total_stored_bytes: Output only. Total size of the storage used by all backup resources.
961
+ :param pulumi.Input[str] uid: Output only. Output only Immutable after resource creation until resource deletion.
962
+ :param pulumi.Input[str] update_time: Output only. The time when the instance was updated.
963
+ """
964
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
965
+
966
+ __props__ = _BackupVaultState.__new__(_BackupVaultState)
967
+
968
+ __props__.__dict__["allow_missing"] = allow_missing
969
+ __props__.__dict__["annotations"] = annotations
970
+ __props__.__dict__["backup_count"] = backup_count
971
+ __props__.__dict__["backup_minimum_enforced_retention_duration"] = backup_minimum_enforced_retention_duration
972
+ __props__.__dict__["backup_vault_id"] = backup_vault_id
973
+ __props__.__dict__["create_time"] = create_time
974
+ __props__.__dict__["deletable"] = deletable
975
+ __props__.__dict__["description"] = description
976
+ __props__.__dict__["effective_annotations"] = effective_annotations
977
+ __props__.__dict__["effective_labels"] = effective_labels
978
+ __props__.__dict__["effective_time"] = effective_time
979
+ __props__.__dict__["etag"] = etag
980
+ __props__.__dict__["force_delete"] = force_delete
981
+ __props__.__dict__["force_update"] = force_update
982
+ __props__.__dict__["labels"] = labels
983
+ __props__.__dict__["location"] = location
984
+ __props__.__dict__["name"] = name
985
+ __props__.__dict__["project"] = project
986
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
987
+ __props__.__dict__["service_account"] = service_account
988
+ __props__.__dict__["state"] = state
989
+ __props__.__dict__["total_stored_bytes"] = total_stored_bytes
990
+ __props__.__dict__["uid"] = uid
991
+ __props__.__dict__["update_time"] = update_time
992
+ return BackupVault(resource_name, opts=opts, __props__=__props__)
993
+
994
+ @property
995
+ @pulumi.getter(name="allowMissing")
996
+ def allow_missing(self) -> pulumi.Output[Optional[bool]]:
997
+ """
998
+ Allow idempotent deletion of backup vault. The request will still succeed in case the backup vault does not exist.
999
+ """
1000
+ return pulumi.get(self, "allow_missing")
1001
+
1002
+ @property
1003
+ @pulumi.getter
1004
+ def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1005
+ """
1006
+ Optional. User annotations. See https://google.aip.dev/128#annotations
1007
+ Stores small amounts of arbitrary data.
1008
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
1009
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
1010
+ """
1011
+ return pulumi.get(self, "annotations")
1012
+
1013
+ @property
1014
+ @pulumi.getter(name="backupCount")
1015
+ def backup_count(self) -> pulumi.Output[str]:
1016
+ """
1017
+ Output only. The number of backups in this backup vault.
1018
+ """
1019
+ return pulumi.get(self, "backup_count")
1020
+
1021
+ @property
1022
+ @pulumi.getter(name="backupMinimumEnforcedRetentionDuration")
1023
+ def backup_minimum_enforced_retention_duration(self) -> pulumi.Output[str]:
1024
+ """
1025
+ Required. The default and minimum enforced retention for each backup within the backup vault. The enforced retention for each backup can be extended.
1026
+ """
1027
+ return pulumi.get(self, "backup_minimum_enforced_retention_duration")
1028
+
1029
+ @property
1030
+ @pulumi.getter(name="backupVaultId")
1031
+ def backup_vault_id(self) -> pulumi.Output[str]:
1032
+ """
1033
+ Required. ID of the requesting object.
1034
+
1035
+
1036
+ - - -
1037
+ """
1038
+ return pulumi.get(self, "backup_vault_id")
1039
+
1040
+ @property
1041
+ @pulumi.getter(name="createTime")
1042
+ def create_time(self) -> pulumi.Output[str]:
1043
+ """
1044
+ Output only. The time when the instance was created.
1045
+ """
1046
+ return pulumi.get(self, "create_time")
1047
+
1048
+ @property
1049
+ @pulumi.getter
1050
+ def deletable(self) -> pulumi.Output[bool]:
1051
+ """
1052
+ Output only. Set to true when there are no backups nested under this resource.
1053
+ """
1054
+ return pulumi.get(self, "deletable")
1055
+
1056
+ @property
1057
+ @pulumi.getter
1058
+ def description(self) -> pulumi.Output[Optional[str]]:
1059
+ """
1060
+ Optional. The description of the BackupVault instance (2048 characters or less).
1061
+ """
1062
+ return pulumi.get(self, "description")
1063
+
1064
+ @property
1065
+ @pulumi.getter(name="effectiveAnnotations")
1066
+ def effective_annotations(self) -> pulumi.Output[Mapping[str, str]]:
1067
+ return pulumi.get(self, "effective_annotations")
1068
+
1069
+ @property
1070
+ @pulumi.getter(name="effectiveLabels")
1071
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
1072
+ """
1073
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1074
+ """
1075
+ return pulumi.get(self, "effective_labels")
1076
+
1077
+ @property
1078
+ @pulumi.getter(name="effectiveTime")
1079
+ def effective_time(self) -> pulumi.Output[Optional[str]]:
1080
+ """
1081
+ Optional. Time after which the BackupVault resource is locked.
1082
+ """
1083
+ return pulumi.get(self, "effective_time")
1084
+
1085
+ @property
1086
+ @pulumi.getter
1087
+ def etag(self) -> pulumi.Output[str]:
1088
+ """
1089
+ Optional. Server specified ETag for the backup vault resource to prevent simultaneous updates from overwiting each other.
1090
+ """
1091
+ return pulumi.get(self, "etag")
1092
+
1093
+ @property
1094
+ @pulumi.getter(name="forceDelete")
1095
+ def force_delete(self) -> pulumi.Output[Optional[bool]]:
1096
+ """
1097
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
1098
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
1099
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
1100
+ """
1101
+ return pulumi.get(self, "force_delete")
1102
+
1103
+ @property
1104
+ @pulumi.getter(name="forceUpdate")
1105
+ def force_update(self) -> pulumi.Output[Optional[bool]]:
1106
+ """
1107
+ If set, allow update to extend the minimum enforced retention for backup vault. This overrides
1108
+ the restriction against conflicting retention periods. This conflict may occur when the
1109
+ expiration schedule defined by the associated backup plan is shorter than the minimum
1110
+ retention set by the backup vault.
1111
+ """
1112
+ return pulumi.get(self, "force_update")
1113
+
1114
+ @property
1115
+ @pulumi.getter
1116
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1117
+ """
1118
+ Optional. Resource labels to represent user provided metadata.
1119
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1120
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1121
+ """
1122
+ return pulumi.get(self, "labels")
1123
+
1124
+ @property
1125
+ @pulumi.getter
1126
+ def location(self) -> pulumi.Output[str]:
1127
+ """
1128
+ The GCP location for the backup vault.
1129
+ """
1130
+ return pulumi.get(self, "location")
1131
+
1132
+ @property
1133
+ @pulumi.getter
1134
+ def name(self) -> pulumi.Output[str]:
1135
+ """
1136
+ Output only. Identifier. The resource name.
1137
+ """
1138
+ return pulumi.get(self, "name")
1139
+
1140
+ @property
1141
+ @pulumi.getter
1142
+ def project(self) -> pulumi.Output[str]:
1143
+ """
1144
+ The ID of the project in which the resource belongs.
1145
+ If it is not provided, the provider project is used.
1146
+ """
1147
+ return pulumi.get(self, "project")
1148
+
1149
+ @property
1150
+ @pulumi.getter(name="pulumiLabels")
1151
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1152
+ """
1153
+ The combination of labels configured directly on the resource
1154
+ and default labels configured on the provider.
1155
+ """
1156
+ return pulumi.get(self, "pulumi_labels")
1157
+
1158
+ @property
1159
+ @pulumi.getter(name="serviceAccount")
1160
+ def service_account(self) -> pulumi.Output[str]:
1161
+ """
1162
+ Output only. Service account used by the BackupVault Service for this BackupVault. The user should grant this account permissions in their workload project to enable the service to run backups and restores there.
1163
+ """
1164
+ return pulumi.get(self, "service_account")
1165
+
1166
+ @property
1167
+ @pulumi.getter
1168
+ def state(self) -> pulumi.Output[str]:
1169
+ """
1170
+ Output only. The BackupVault resource instance state.
1171
+ Possible values:
1172
+ STATE_UNSPECIFIED
1173
+ CREATING
1174
+ ACTIVE
1175
+ DELETING
1176
+ ERROR
1177
+ """
1178
+ return pulumi.get(self, "state")
1179
+
1180
+ @property
1181
+ @pulumi.getter(name="totalStoredBytes")
1182
+ def total_stored_bytes(self) -> pulumi.Output[str]:
1183
+ """
1184
+ Output only. Total size of the storage used by all backup resources.
1185
+ """
1186
+ return pulumi.get(self, "total_stored_bytes")
1187
+
1188
+ @property
1189
+ @pulumi.getter
1190
+ def uid(self) -> pulumi.Output[str]:
1191
+ """
1192
+ Output only. Output only Immutable after resource creation until resource deletion.
1193
+ """
1194
+ return pulumi.get(self, "uid")
1195
+
1196
+ @property
1197
+ @pulumi.getter(name="updateTime")
1198
+ def update_time(self) -> pulumi.Output[str]:
1199
+ """
1200
+ Output only. The time when the instance was updated.
1201
+ """
1202
+ return pulumi.get(self, "update_time")
1203
+