pulumi-gcp 8.9.0a1731221331__py3-none-any.whl → 8.9.0a1731432418__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 (114) hide show
  1. pulumi_gcp/__init__.py +64 -0
  2. pulumi_gcp/activedirectory/domain.py +24 -0
  3. pulumi_gcp/apigee/__init__.py +1 -0
  4. pulumi_gcp/apigee/_inputs.py +74 -0
  5. pulumi_gcp/apigee/api.py +456 -0
  6. pulumi_gcp/apigee/outputs.py +65 -0
  7. pulumi_gcp/applicationintegration/auth_config.py +24 -0
  8. pulumi_gcp/backupdisasterrecovery/__init__.py +4 -0
  9. pulumi_gcp/backupdisasterrecovery/_inputs.py +533 -0
  10. pulumi_gcp/backupdisasterrecovery/backup_plan.py +653 -0
  11. pulumi_gcp/backupdisasterrecovery/backup_plan_association.py +766 -0
  12. pulumi_gcp/backupdisasterrecovery/backup_vault.py +146 -6
  13. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +204 -0
  14. pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py +243 -0
  15. pulumi_gcp/backupdisasterrecovery/outputs.py +702 -0
  16. pulumi_gcp/bigquery/data_transfer_config.py +24 -0
  17. pulumi_gcp/cloudrunv2/_inputs.py +46 -0
  18. pulumi_gcp/cloudrunv2/job.py +0 -2
  19. pulumi_gcp/cloudrunv2/outputs.py +60 -2
  20. pulumi_gcp/cloudrunv2/service.py +0 -2
  21. pulumi_gcp/compute/__init__.py +1 -0
  22. pulumi_gcp/compute/_inputs.py +2163 -256
  23. pulumi_gcp/compute/disk.py +7 -7
  24. pulumi_gcp/compute/firewall_policy_rule.py +108 -54
  25. pulumi_gcp/compute/get_region_instance_group_manager.py +12 -1
  26. pulumi_gcp/compute/health_check.py +42 -42
  27. pulumi_gcp/compute/network_firewall_policy_rule.py +4 -4
  28. pulumi_gcp/compute/network_firewall_policy_with_rules.py +10 -10
  29. pulumi_gcp/compute/node_template.py +95 -0
  30. pulumi_gcp/compute/outputs.py +1639 -213
  31. pulumi_gcp/compute/region_disk.py +7 -7
  32. pulumi_gcp/compute/region_health_check.py +42 -42
  33. pulumi_gcp/compute/region_instance_group_manager.py +54 -14
  34. pulumi_gcp/compute/region_network_firewall_policy_rule.py +4 -4
  35. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +10 -10
  36. pulumi_gcp/compute/region_resize_request.py +772 -0
  37. pulumi_gcp/compute/region_security_policy.py +120 -0
  38. pulumi_gcp/compute/region_security_policy_rule.py +6 -6
  39. pulumi_gcp/compute/router_peer.py +56 -35
  40. pulumi_gcp/compute/security_scan_config.py +8 -8
  41. pulumi_gcp/config/__init__.pyi +4 -0
  42. pulumi_gcp/config/vars.py +8 -0
  43. pulumi_gcp/container/_inputs.py +345 -10
  44. pulumi_gcp/container/cluster.py +101 -0
  45. pulumi_gcp/container/get_cluster.py +23 -1
  46. pulumi_gcp/container/outputs.py +456 -8
  47. pulumi_gcp/dataloss/prevention_discovery_config.py +7 -7
  48. pulumi_gcp/dataproc/__init__.py +2 -0
  49. pulumi_gcp/dataproc/_inputs.py +101 -0
  50. pulumi_gcp/dataproc/gdc_application_environment.py +931 -0
  51. pulumi_gcp/dataproc/gdc_service_instance.py +1022 -0
  52. pulumi_gcp/dataproc/outputs.py +94 -0
  53. pulumi_gcp/edgecontainer/vpn_connection.py +4 -4
  54. pulumi_gcp/firebase/android_app.py +2 -2
  55. pulumi_gcp/firebase/apple_app.py +2 -2
  56. pulumi_gcp/firebase/web_app.py +2 -2
  57. pulumi_gcp/firestore/index.py +44 -0
  58. pulumi_gcp/gkeonprem/_inputs.py +15 -15
  59. pulumi_gcp/gkeonprem/outputs.py +10 -10
  60. pulumi_gcp/healthcare/dataset.py +7 -7
  61. pulumi_gcp/healthcare/dicom_store.py +7 -7
  62. pulumi_gcp/healthcare/fhir_store.py +7 -7
  63. pulumi_gcp/healthcare/hl7_store.py +14 -14
  64. pulumi_gcp/iam/__init__.py +1 -0
  65. pulumi_gcp/iam/_inputs.py +161 -0
  66. pulumi_gcp/iam/outputs.py +114 -0
  67. pulumi_gcp/iam/principal_access_boundary_policy.py +679 -0
  68. pulumi_gcp/logging/metric.py +2 -2
  69. pulumi_gcp/looker/_inputs.py +6 -0
  70. pulumi_gcp/looker/instance.py +169 -321
  71. pulumi_gcp/looker/outputs.py +4 -0
  72. pulumi_gcp/memorystore/instance.py +4 -0
  73. pulumi_gcp/monitoring/alert_policy.py +24 -0
  74. pulumi_gcp/monitoring/custom_service.py +24 -0
  75. pulumi_gcp/monitoring/group.py +24 -0
  76. pulumi_gcp/monitoring/metric_descriptor.py +24 -0
  77. pulumi_gcp/monitoring/slo.py +24 -0
  78. pulumi_gcp/monitoring/uptime_check_config.py +24 -0
  79. pulumi_gcp/networkmanagement/__init__.py +1 -0
  80. pulumi_gcp/networkmanagement/vpc_flow_logs_config.py +1358 -0
  81. pulumi_gcp/osconfig/patch_deployment.py +8 -8
  82. pulumi_gcp/provider.py +40 -0
  83. pulumi_gcp/pulumi-plugin.json +1 -1
  84. pulumi_gcp/redis/_inputs.py +3 -3
  85. pulumi_gcp/redis/outputs.py +2 -2
  86. pulumi_gcp/securitycenter/notification_config.py +4 -16
  87. pulumi_gcp/securitycenter/project_notification_config.py +0 -24
  88. pulumi_gcp/securitycenter/v2_organization_notification_config.py +4 -16
  89. pulumi_gcp/spanner/__init__.py +1 -0
  90. pulumi_gcp/spanner/_inputs.py +9 -9
  91. pulumi_gcp/spanner/get_database.py +229 -0
  92. pulumi_gcp/spanner/get_instance.py +12 -1
  93. pulumi_gcp/spanner/instance.py +70 -0
  94. pulumi_gcp/spanner/outputs.py +46 -12
  95. pulumi_gcp/sql/_inputs.py +26 -0
  96. pulumi_gcp/sql/database_instance.py +124 -11
  97. pulumi_gcp/sql/get_database_instance.py +12 -1
  98. pulumi_gcp/sql/outputs.py +51 -0
  99. pulumi_gcp/storage/_inputs.py +3 -3
  100. pulumi_gcp/storage/outputs.py +2 -2
  101. pulumi_gcp/tags/tag_binding.py +4 -4
  102. pulumi_gcp/tags/tag_value.py +2 -2
  103. pulumi_gcp/transcoder/job.py +24 -0
  104. pulumi_gcp/vertex/_inputs.py +184 -0
  105. pulumi_gcp/vertex/ai_endpoint.py +394 -8
  106. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  107. pulumi_gcp/vertex/outputs.py +166 -0
  108. pulumi_gcp/workbench/instance.py +21 -7
  109. pulumi_gcp/workflows/workflow.py +36 -0
  110. pulumi_gcp/workstations/workstation_config.py +8 -8
  111. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/METADATA +1 -1
  112. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/RECORD +114 -103
  113. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/WHEEL +1 -1
  114. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/top_level.txt +0 -0
@@ -28,6 +28,8 @@ class BackupVaultArgs:
28
28
  effective_time: Optional[pulumi.Input[str]] = None,
29
29
  force_delete: Optional[pulumi.Input[bool]] = None,
30
30
  force_update: Optional[pulumi.Input[bool]] = None,
31
+ ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None,
32
+ ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None,
31
33
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
32
34
  project: Optional[pulumi.Input[str]] = None):
33
35
  """
@@ -45,13 +47,20 @@ class BackupVaultArgs:
45
47
  Please refer to the field `effective_annotations` for all of the annotations present on the resource.
46
48
  :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less).
47
49
  :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:
50
+ :param pulumi.Input[bool] force_delete: (Optional, Deprecated)
51
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
49
52
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
50
53
  * deletion of a backup vault instance that is being referenced by an active backup plan.
54
+
55
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
51
56
  :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
52
57
  the restriction against conflicting retention periods. This conflict may occur when the
53
58
  expiration schedule defined by the associated backup plan is shorter than the minimum
54
59
  retention set by the backup vault.
60
+ :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden:
61
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
62
+ :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden:
63
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
55
64
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
56
65
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
57
66
  Please refer to the field `effective_labels` for all of the labels present on the resource.
@@ -69,10 +78,17 @@ class BackupVaultArgs:
69
78
  pulumi.set(__self__, "description", description)
70
79
  if effective_time is not None:
71
80
  pulumi.set(__self__, "effective_time", effective_time)
81
+ if force_delete is not None:
82
+ warnings.warn("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""", DeprecationWarning)
83
+ pulumi.log.warn("""force_delete is deprecated: `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""")
72
84
  if force_delete is not None:
73
85
  pulumi.set(__self__, "force_delete", force_delete)
74
86
  if force_update is not None:
75
87
  pulumi.set(__self__, "force_update", force_update)
88
+ if ignore_backup_plan_references is not None:
89
+ pulumi.set(__self__, "ignore_backup_plan_references", ignore_backup_plan_references)
90
+ if ignore_inactive_datasources is not None:
91
+ pulumi.set(__self__, "ignore_inactive_datasources", ignore_inactive_datasources)
76
92
  if labels is not None:
77
93
  pulumi.set(__self__, "labels", labels)
78
94
  if project is not None:
@@ -170,11 +186,15 @@ class BackupVaultArgs:
170
186
 
171
187
  @property
172
188
  @pulumi.getter(name="forceDelete")
189
+ @_utilities.deprecated("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""")
173
190
  def force_delete(self) -> Optional[pulumi.Input[bool]]:
174
191
  """
192
+ (Optional, Deprecated)
175
193
  If set, the following restrictions against deletion of the backup vault instance can be overridden:
176
194
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
177
195
  * deletion of a backup vault instance that is being referenced by an active backup plan.
196
+
197
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
178
198
  """
179
199
  return pulumi.get(self, "force_delete")
180
200
 
@@ -197,6 +217,32 @@ class BackupVaultArgs:
197
217
  def force_update(self, value: Optional[pulumi.Input[bool]]):
198
218
  pulumi.set(self, "force_update", value)
199
219
 
220
+ @property
221
+ @pulumi.getter(name="ignoreBackupPlanReferences")
222
+ def ignore_backup_plan_references(self) -> Optional[pulumi.Input[bool]]:
223
+ """
224
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
225
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
226
+ """
227
+ return pulumi.get(self, "ignore_backup_plan_references")
228
+
229
+ @ignore_backup_plan_references.setter
230
+ def ignore_backup_plan_references(self, value: Optional[pulumi.Input[bool]]):
231
+ pulumi.set(self, "ignore_backup_plan_references", value)
232
+
233
+ @property
234
+ @pulumi.getter(name="ignoreInactiveDatasources")
235
+ def ignore_inactive_datasources(self) -> Optional[pulumi.Input[bool]]:
236
+ """
237
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
238
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
239
+ """
240
+ return pulumi.get(self, "ignore_inactive_datasources")
241
+
242
+ @ignore_inactive_datasources.setter
243
+ def ignore_inactive_datasources(self, value: Optional[pulumi.Input[bool]]):
244
+ pulumi.set(self, "ignore_inactive_datasources", value)
245
+
200
246
  @property
201
247
  @pulumi.getter
202
248
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -242,6 +288,8 @@ class _BackupVaultState:
242
288
  etag: Optional[pulumi.Input[str]] = None,
243
289
  force_delete: Optional[pulumi.Input[bool]] = None,
244
290
  force_update: Optional[pulumi.Input[bool]] = None,
291
+ ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None,
292
+ ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None,
245
293
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
246
294
  location: Optional[pulumi.Input[str]] = None,
247
295
  name: Optional[pulumi.Input[str]] = None,
@@ -271,13 +319,20 @@ class _BackupVaultState:
271
319
  :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
320
  :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked.
273
321
  :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:
322
+ :param pulumi.Input[bool] force_delete: (Optional, Deprecated)
323
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
275
324
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
276
325
  * deletion of a backup vault instance that is being referenced by an active backup plan.
326
+
327
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
277
328
  :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
278
329
  the restriction against conflicting retention periods. This conflict may occur when the
279
330
  expiration schedule defined by the associated backup plan is shorter than the minimum
280
331
  retention set by the backup vault.
332
+ :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden:
333
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
334
+ :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden:
335
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
281
336
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
282
337
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
283
338
  Please refer to the field `effective_labels` for all of the labels present on the resource.
@@ -323,10 +378,17 @@ class _BackupVaultState:
323
378
  pulumi.set(__self__, "effective_time", effective_time)
324
379
  if etag is not None:
325
380
  pulumi.set(__self__, "etag", etag)
381
+ if force_delete is not None:
382
+ warnings.warn("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""", DeprecationWarning)
383
+ pulumi.log.warn("""force_delete is deprecated: `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""")
326
384
  if force_delete is not None:
327
385
  pulumi.set(__self__, "force_delete", force_delete)
328
386
  if force_update is not None:
329
387
  pulumi.set(__self__, "force_update", force_update)
388
+ if ignore_backup_plan_references is not None:
389
+ pulumi.set(__self__, "ignore_backup_plan_references", ignore_backup_plan_references)
390
+ if ignore_inactive_datasources is not None:
391
+ pulumi.set(__self__, "ignore_inactive_datasources", ignore_inactive_datasources)
330
392
  if labels is not None:
331
393
  pulumi.set(__self__, "labels", labels)
332
394
  if location is not None:
@@ -497,11 +559,15 @@ class _BackupVaultState:
497
559
 
498
560
  @property
499
561
  @pulumi.getter(name="forceDelete")
562
+ @_utilities.deprecated("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""")
500
563
  def force_delete(self) -> Optional[pulumi.Input[bool]]:
501
564
  """
565
+ (Optional, Deprecated)
502
566
  If set, the following restrictions against deletion of the backup vault instance can be overridden:
503
567
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
504
568
  * deletion of a backup vault instance that is being referenced by an active backup plan.
569
+
570
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
505
571
  """
506
572
  return pulumi.get(self, "force_delete")
507
573
 
@@ -524,6 +590,32 @@ class _BackupVaultState:
524
590
  def force_update(self, value: Optional[pulumi.Input[bool]]):
525
591
  pulumi.set(self, "force_update", value)
526
592
 
593
+ @property
594
+ @pulumi.getter(name="ignoreBackupPlanReferences")
595
+ def ignore_backup_plan_references(self) -> Optional[pulumi.Input[bool]]:
596
+ """
597
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
598
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
599
+ """
600
+ return pulumi.get(self, "ignore_backup_plan_references")
601
+
602
+ @ignore_backup_plan_references.setter
603
+ def ignore_backup_plan_references(self, value: Optional[pulumi.Input[bool]]):
604
+ pulumi.set(self, "ignore_backup_plan_references", value)
605
+
606
+ @property
607
+ @pulumi.getter(name="ignoreInactiveDatasources")
608
+ def ignore_inactive_datasources(self) -> Optional[pulumi.Input[bool]]:
609
+ """
610
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
611
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
612
+ """
613
+ return pulumi.get(self, "ignore_inactive_datasources")
614
+
615
+ @ignore_inactive_datasources.setter
616
+ def ignore_inactive_datasources(self, value: Optional[pulumi.Input[bool]]):
617
+ pulumi.set(self, "ignore_inactive_datasources", value)
618
+
527
619
  @property
528
620
  @pulumi.getter
529
621
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -668,6 +760,8 @@ class BackupVault(pulumi.CustomResource):
668
760
  effective_time: Optional[pulumi.Input[str]] = None,
669
761
  force_delete: Optional[pulumi.Input[bool]] = None,
670
762
  force_update: Optional[pulumi.Input[bool]] = None,
763
+ ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None,
764
+ ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None,
671
765
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
672
766
  location: Optional[pulumi.Input[str]] = None,
673
767
  project: Optional[pulumi.Input[str]] = None,
@@ -695,7 +789,8 @@ class BackupVault(pulumi.CustomResource):
695
789
  "annotations2": "baz1",
696
790
  },
697
791
  force_update=True,
698
- force_delete=True,
792
+ ignore_inactive_datasources=True,
793
+ ignore_backup_plan_references=True,
699
794
  allow_missing=True)
700
795
  ```
701
796
 
@@ -737,13 +832,20 @@ class BackupVault(pulumi.CustomResource):
737
832
  - - -
738
833
  :param pulumi.Input[str] description: Optional. The description of the BackupVault instance (2048 characters or less).
739
834
  :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:
835
+ :param pulumi.Input[bool] force_delete: (Optional, Deprecated)
836
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
741
837
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
742
838
  * deletion of a backup vault instance that is being referenced by an active backup plan.
839
+
840
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
743
841
  :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
744
842
  the restriction against conflicting retention periods. This conflict may occur when the
745
843
  expiration schedule defined by the associated backup plan is shorter than the minimum
746
844
  retention set by the backup vault.
845
+ :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden:
846
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
847
+ :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden:
848
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
747
849
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
748
850
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
749
851
  Please refer to the field `effective_labels` for all of the labels present on the resource.
@@ -780,7 +882,8 @@ class BackupVault(pulumi.CustomResource):
780
882
  "annotations2": "baz1",
781
883
  },
782
884
  force_update=True,
783
- force_delete=True,
885
+ ignore_inactive_datasources=True,
886
+ ignore_backup_plan_references=True,
784
887
  allow_missing=True)
785
888
  ```
786
889
 
@@ -831,6 +934,8 @@ class BackupVault(pulumi.CustomResource):
831
934
  effective_time: Optional[pulumi.Input[str]] = None,
832
935
  force_delete: Optional[pulumi.Input[bool]] = None,
833
936
  force_update: Optional[pulumi.Input[bool]] = None,
937
+ ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None,
938
+ ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None,
834
939
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
835
940
  location: Optional[pulumi.Input[str]] = None,
836
941
  project: Optional[pulumi.Input[str]] = None,
@@ -855,6 +960,8 @@ class BackupVault(pulumi.CustomResource):
855
960
  __props__.__dict__["effective_time"] = effective_time
856
961
  __props__.__dict__["force_delete"] = force_delete
857
962
  __props__.__dict__["force_update"] = force_update
963
+ __props__.__dict__["ignore_backup_plan_references"] = ignore_backup_plan_references
964
+ __props__.__dict__["ignore_inactive_datasources"] = ignore_inactive_datasources
858
965
  __props__.__dict__["labels"] = labels
859
966
  if location is None and not opts.urn:
860
967
  raise TypeError("Missing required property 'location'")
@@ -899,6 +1006,8 @@ class BackupVault(pulumi.CustomResource):
899
1006
  etag: Optional[pulumi.Input[str]] = None,
900
1007
  force_delete: Optional[pulumi.Input[bool]] = None,
901
1008
  force_update: Optional[pulumi.Input[bool]] = None,
1009
+ ignore_backup_plan_references: Optional[pulumi.Input[bool]] = None,
1010
+ ignore_inactive_datasources: Optional[pulumi.Input[bool]] = None,
902
1011
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
903
1012
  location: Optional[pulumi.Input[str]] = None,
904
1013
  name: Optional[pulumi.Input[str]] = None,
@@ -933,13 +1042,20 @@ class BackupVault(pulumi.CustomResource):
933
1042
  :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
1043
  :param pulumi.Input[str] effective_time: Optional. Time after which the BackupVault resource is locked.
935
1044
  :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:
1045
+ :param pulumi.Input[bool] force_delete: (Optional, Deprecated)
1046
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
937
1047
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
938
1048
  * deletion of a backup vault instance that is being referenced by an active backup plan.
1049
+
1050
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
939
1051
  :param pulumi.Input[bool] force_update: If set, allow update to extend the minimum enforced retention for backup vault. This overrides
940
1052
  the restriction against conflicting retention periods. This conflict may occur when the
941
1053
  expiration schedule defined by the associated backup plan is shorter than the minimum
942
1054
  retention set by the backup vault.
1055
+ :param pulumi.Input[bool] ignore_backup_plan_references: If set, the following restrictions against deletion of the backup vault instance can be overridden:
1056
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
1057
+ :param pulumi.Input[bool] ignore_inactive_datasources: If set, the following restrictions against deletion of the backup vault instance can be overridden:
1058
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
943
1059
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Resource labels to represent user provided metadata.
944
1060
  **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
945
1061
  Please refer to the field `effective_labels` for all of the labels present on the resource.
@@ -979,6 +1095,8 @@ class BackupVault(pulumi.CustomResource):
979
1095
  __props__.__dict__["etag"] = etag
980
1096
  __props__.__dict__["force_delete"] = force_delete
981
1097
  __props__.__dict__["force_update"] = force_update
1098
+ __props__.__dict__["ignore_backup_plan_references"] = ignore_backup_plan_references
1099
+ __props__.__dict__["ignore_inactive_datasources"] = ignore_inactive_datasources
982
1100
  __props__.__dict__["labels"] = labels
983
1101
  __props__.__dict__["location"] = location
984
1102
  __props__.__dict__["name"] = name
@@ -1092,11 +1210,15 @@ class BackupVault(pulumi.CustomResource):
1092
1210
 
1093
1211
  @property
1094
1212
  @pulumi.getter(name="forceDelete")
1213
+ @_utilities.deprecated("""`force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.""")
1095
1214
  def force_delete(self) -> pulumi.Output[Optional[bool]]:
1096
1215
  """
1216
+ (Optional, Deprecated)
1097
1217
  If set, the following restrictions against deletion of the backup vault instance can be overridden:
1098
1218
  * deletion of a backup vault instance containing no backups, but still containing empty datasources.
1099
1219
  * deletion of a backup vault instance that is being referenced by an active backup plan.
1220
+
1221
+ > **Warning:** `force_delete` is deprecated and will be removed in a future major release. Use `ignore_inactive_datasources` instead.
1100
1222
  """
1101
1223
  return pulumi.get(self, "force_delete")
1102
1224
 
@@ -1111,6 +1233,24 @@ class BackupVault(pulumi.CustomResource):
1111
1233
  """
1112
1234
  return pulumi.get(self, "force_update")
1113
1235
 
1236
+ @property
1237
+ @pulumi.getter(name="ignoreBackupPlanReferences")
1238
+ def ignore_backup_plan_references(self) -> pulumi.Output[Optional[bool]]:
1239
+ """
1240
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
1241
+ * deletion of a backup vault instance that is being referenced by an active backup plan.
1242
+ """
1243
+ return pulumi.get(self, "ignore_backup_plan_references")
1244
+
1245
+ @property
1246
+ @pulumi.getter(name="ignoreInactiveDatasources")
1247
+ def ignore_inactive_datasources(self) -> pulumi.Output[Optional[bool]]:
1248
+ """
1249
+ If set, the following restrictions against deletion of the backup vault instance can be overridden:
1250
+ * deletion of a backup vault instance containing no backups, but still containing empty datasources.
1251
+ """
1252
+ return pulumi.get(self, "ignore_inactive_datasources")
1253
+
1114
1254
  @property
1115
1255
  @pulumi.getter
1116
1256
  def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
@@ -0,0 +1,204 @@
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
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'GetBackupPlanResult',
20
+ 'AwaitableGetBackupPlanResult',
21
+ 'get_backup_plan',
22
+ 'get_backup_plan_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetBackupPlanResult:
27
+ """
28
+ A collection of values returned by getBackupPlan.
29
+ """
30
+ def __init__(__self__, backup_plan_id=None, backup_rules=None, backup_vault=None, backup_vault_service_account=None, create_time=None, description=None, id=None, location=None, name=None, project=None, resource_type=None, update_time=None):
31
+ if backup_plan_id and not isinstance(backup_plan_id, str):
32
+ raise TypeError("Expected argument 'backup_plan_id' to be a str")
33
+ pulumi.set(__self__, "backup_plan_id", backup_plan_id)
34
+ if backup_rules and not isinstance(backup_rules, list):
35
+ raise TypeError("Expected argument 'backup_rules' to be a list")
36
+ pulumi.set(__self__, "backup_rules", backup_rules)
37
+ if backup_vault and not isinstance(backup_vault, str):
38
+ raise TypeError("Expected argument 'backup_vault' to be a str")
39
+ pulumi.set(__self__, "backup_vault", backup_vault)
40
+ if backup_vault_service_account and not isinstance(backup_vault_service_account, str):
41
+ raise TypeError("Expected argument 'backup_vault_service_account' to be a str")
42
+ pulumi.set(__self__, "backup_vault_service_account", backup_vault_service_account)
43
+ if create_time and not isinstance(create_time, str):
44
+ raise TypeError("Expected argument 'create_time' to be a str")
45
+ pulumi.set(__self__, "create_time", create_time)
46
+ if description and not isinstance(description, str):
47
+ raise TypeError("Expected argument 'description' to be a str")
48
+ pulumi.set(__self__, "description", description)
49
+ if id and not isinstance(id, str):
50
+ raise TypeError("Expected argument 'id' to be a str")
51
+ pulumi.set(__self__, "id", id)
52
+ if location and not isinstance(location, str):
53
+ raise TypeError("Expected argument 'location' to be a str")
54
+ pulumi.set(__self__, "location", location)
55
+ if name and not isinstance(name, str):
56
+ raise TypeError("Expected argument 'name' to be a str")
57
+ pulumi.set(__self__, "name", name)
58
+ if project and not isinstance(project, str):
59
+ raise TypeError("Expected argument 'project' to be a str")
60
+ pulumi.set(__self__, "project", project)
61
+ if resource_type and not isinstance(resource_type, str):
62
+ raise TypeError("Expected argument 'resource_type' to be a str")
63
+ pulumi.set(__self__, "resource_type", resource_type)
64
+ if update_time and not isinstance(update_time, str):
65
+ raise TypeError("Expected argument 'update_time' to be a str")
66
+ pulumi.set(__self__, "update_time", update_time)
67
+
68
+ @property
69
+ @pulumi.getter(name="backupPlanId")
70
+ def backup_plan_id(self) -> str:
71
+ return pulumi.get(self, "backup_plan_id")
72
+
73
+ @property
74
+ @pulumi.getter(name="backupRules")
75
+ def backup_rules(self) -> Sequence['outputs.GetBackupPlanBackupRuleResult']:
76
+ return pulumi.get(self, "backup_rules")
77
+
78
+ @property
79
+ @pulumi.getter(name="backupVault")
80
+ def backup_vault(self) -> str:
81
+ return pulumi.get(self, "backup_vault")
82
+
83
+ @property
84
+ @pulumi.getter(name="backupVaultServiceAccount")
85
+ def backup_vault_service_account(self) -> str:
86
+ return pulumi.get(self, "backup_vault_service_account")
87
+
88
+ @property
89
+ @pulumi.getter(name="createTime")
90
+ def create_time(self) -> str:
91
+ return pulumi.get(self, "create_time")
92
+
93
+ @property
94
+ @pulumi.getter
95
+ def description(self) -> str:
96
+ return pulumi.get(self, "description")
97
+
98
+ @property
99
+ @pulumi.getter
100
+ def id(self) -> str:
101
+ """
102
+ The provider-assigned unique ID for this managed resource.
103
+ """
104
+ return pulumi.get(self, "id")
105
+
106
+ @property
107
+ @pulumi.getter
108
+ def location(self) -> str:
109
+ return pulumi.get(self, "location")
110
+
111
+ @property
112
+ @pulumi.getter
113
+ def name(self) -> str:
114
+ return pulumi.get(self, "name")
115
+
116
+ @property
117
+ @pulumi.getter
118
+ def project(self) -> Optional[str]:
119
+ return pulumi.get(self, "project")
120
+
121
+ @property
122
+ @pulumi.getter(name="resourceType")
123
+ def resource_type(self) -> str:
124
+ return pulumi.get(self, "resource_type")
125
+
126
+ @property
127
+ @pulumi.getter(name="updateTime")
128
+ def update_time(self) -> str:
129
+ return pulumi.get(self, "update_time")
130
+
131
+
132
+ class AwaitableGetBackupPlanResult(GetBackupPlanResult):
133
+ # pylint: disable=using-constant-test
134
+ def __await__(self):
135
+ if False:
136
+ yield self
137
+ return GetBackupPlanResult(
138
+ backup_plan_id=self.backup_plan_id,
139
+ backup_rules=self.backup_rules,
140
+ backup_vault=self.backup_vault,
141
+ backup_vault_service_account=self.backup_vault_service_account,
142
+ create_time=self.create_time,
143
+ description=self.description,
144
+ id=self.id,
145
+ location=self.location,
146
+ name=self.name,
147
+ project=self.project,
148
+ resource_type=self.resource_type,
149
+ update_time=self.update_time)
150
+
151
+
152
+ def get_backup_plan(backup_plan_id: Optional[str] = None,
153
+ location: Optional[str] = None,
154
+ project: Optional[str] = None,
155
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBackupPlanResult:
156
+ """
157
+ Use this data source to access information about an existing resource.
158
+ """
159
+ __args__ = dict()
160
+ __args__['backupPlanId'] = backup_plan_id
161
+ __args__['location'] = location
162
+ __args__['project'] = project
163
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
164
+ __ret__ = pulumi.runtime.invoke('gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan', __args__, opts=opts, typ=GetBackupPlanResult).value
165
+
166
+ return AwaitableGetBackupPlanResult(
167
+ backup_plan_id=pulumi.get(__ret__, 'backup_plan_id'),
168
+ backup_rules=pulumi.get(__ret__, 'backup_rules'),
169
+ backup_vault=pulumi.get(__ret__, 'backup_vault'),
170
+ backup_vault_service_account=pulumi.get(__ret__, 'backup_vault_service_account'),
171
+ create_time=pulumi.get(__ret__, 'create_time'),
172
+ description=pulumi.get(__ret__, 'description'),
173
+ id=pulumi.get(__ret__, 'id'),
174
+ location=pulumi.get(__ret__, 'location'),
175
+ name=pulumi.get(__ret__, 'name'),
176
+ project=pulumi.get(__ret__, 'project'),
177
+ resource_type=pulumi.get(__ret__, 'resource_type'),
178
+ update_time=pulumi.get(__ret__, 'update_time'))
179
+ def get_backup_plan_output(backup_plan_id: Optional[pulumi.Input[str]] = None,
180
+ location: Optional[pulumi.Input[str]] = None,
181
+ project: Optional[pulumi.Input[Optional[str]]] = None,
182
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBackupPlanResult]:
183
+ """
184
+ Use this data source to access information about an existing resource.
185
+ """
186
+ __args__ = dict()
187
+ __args__['backupPlanId'] = backup_plan_id
188
+ __args__['location'] = location
189
+ __args__['project'] = project
190
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
191
+ __ret__ = pulumi.runtime.invoke_output('gcp:backupdisasterrecovery/getBackupPlan:getBackupPlan', __args__, opts=opts, typ=GetBackupPlanResult)
192
+ return __ret__.apply(lambda __response__: GetBackupPlanResult(
193
+ backup_plan_id=pulumi.get(__response__, 'backup_plan_id'),
194
+ backup_rules=pulumi.get(__response__, 'backup_rules'),
195
+ backup_vault=pulumi.get(__response__, 'backup_vault'),
196
+ backup_vault_service_account=pulumi.get(__response__, 'backup_vault_service_account'),
197
+ create_time=pulumi.get(__response__, 'create_time'),
198
+ description=pulumi.get(__response__, 'description'),
199
+ id=pulumi.get(__response__, 'id'),
200
+ location=pulumi.get(__response__, 'location'),
201
+ name=pulumi.get(__response__, 'name'),
202
+ project=pulumi.get(__response__, 'project'),
203
+ resource_type=pulumi.get(__response__, 'resource_type'),
204
+ update_time=pulumi.get(__response__, 'update_time')))