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
@@ -0,0 +1,653 @@
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
+ from ._inputs import *
18
+
19
+ __all__ = ['BackupPlanArgs', 'BackupPlan']
20
+
21
+ @pulumi.input_type
22
+ class BackupPlanArgs:
23
+ def __init__(__self__, *,
24
+ backup_plan_id: pulumi.Input[str],
25
+ backup_rules: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]],
26
+ backup_vault: pulumi.Input[str],
27
+ location: pulumi.Input[str],
28
+ resource_type: pulumi.Input[str],
29
+ description: Optional[pulumi.Input[str]] = None,
30
+ project: Optional[pulumi.Input[str]] = None):
31
+ """
32
+ The set of arguments for constructing a BackupPlan resource.
33
+ :param pulumi.Input[str] backup_plan_id: The ID of the backup plan
34
+ :param pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
35
+ Structure is documented below.
36
+ :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan.
37
+ :param pulumi.Input[str] location: The location for the backup plan
38
+ :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
39
+ :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided.
40
+ """
41
+ pulumi.set(__self__, "backup_plan_id", backup_plan_id)
42
+ pulumi.set(__self__, "backup_rules", backup_rules)
43
+ pulumi.set(__self__, "backup_vault", backup_vault)
44
+ pulumi.set(__self__, "location", location)
45
+ pulumi.set(__self__, "resource_type", resource_type)
46
+ if description is not None:
47
+ pulumi.set(__self__, "description", description)
48
+ if project is not None:
49
+ pulumi.set(__self__, "project", project)
50
+
51
+ @property
52
+ @pulumi.getter(name="backupPlanId")
53
+ def backup_plan_id(self) -> pulumi.Input[str]:
54
+ """
55
+ The ID of the backup plan
56
+ """
57
+ return pulumi.get(self, "backup_plan_id")
58
+
59
+ @backup_plan_id.setter
60
+ def backup_plan_id(self, value: pulumi.Input[str]):
61
+ pulumi.set(self, "backup_plan_id", value)
62
+
63
+ @property
64
+ @pulumi.getter(name="backupRules")
65
+ def backup_rules(self) -> pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]:
66
+ """
67
+ The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
68
+ Structure is documented below.
69
+ """
70
+ return pulumi.get(self, "backup_rules")
71
+
72
+ @backup_rules.setter
73
+ def backup_rules(self, value: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]):
74
+ pulumi.set(self, "backup_rules", value)
75
+
76
+ @property
77
+ @pulumi.getter(name="backupVault")
78
+ def backup_vault(self) -> pulumi.Input[str]:
79
+ """
80
+ Backup vault where the backups gets stored using this Backup plan.
81
+ """
82
+ return pulumi.get(self, "backup_vault")
83
+
84
+ @backup_vault.setter
85
+ def backup_vault(self, value: pulumi.Input[str]):
86
+ pulumi.set(self, "backup_vault", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def location(self) -> pulumi.Input[str]:
91
+ """
92
+ The location for the backup plan
93
+ """
94
+ return pulumi.get(self, "location")
95
+
96
+ @location.setter
97
+ def location(self, value: pulumi.Input[str]):
98
+ pulumi.set(self, "location", value)
99
+
100
+ @property
101
+ @pulumi.getter(name="resourceType")
102
+ def resource_type(self) -> pulumi.Input[str]:
103
+ """
104
+ The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
105
+ """
106
+ return pulumi.get(self, "resource_type")
107
+
108
+ @resource_type.setter
109
+ def resource_type(self, value: pulumi.Input[str]):
110
+ pulumi.set(self, "resource_type", value)
111
+
112
+ @property
113
+ @pulumi.getter
114
+ def description(self) -> Optional[pulumi.Input[str]]:
115
+ """
116
+ The description allows for additional details about 'BackupPlan' and its use cases to be provided.
117
+ """
118
+ return pulumi.get(self, "description")
119
+
120
+ @description.setter
121
+ def description(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "description", value)
123
+
124
+ @property
125
+ @pulumi.getter
126
+ def project(self) -> Optional[pulumi.Input[str]]:
127
+ return pulumi.get(self, "project")
128
+
129
+ @project.setter
130
+ def project(self, value: Optional[pulumi.Input[str]]):
131
+ pulumi.set(self, "project", value)
132
+
133
+
134
+ @pulumi.input_type
135
+ class _BackupPlanState:
136
+ def __init__(__self__, *,
137
+ backup_plan_id: Optional[pulumi.Input[str]] = None,
138
+ backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]] = None,
139
+ backup_vault: Optional[pulumi.Input[str]] = None,
140
+ backup_vault_service_account: Optional[pulumi.Input[str]] = None,
141
+ create_time: Optional[pulumi.Input[str]] = None,
142
+ description: Optional[pulumi.Input[str]] = None,
143
+ location: Optional[pulumi.Input[str]] = None,
144
+ name: Optional[pulumi.Input[str]] = None,
145
+ project: Optional[pulumi.Input[str]] = None,
146
+ resource_type: Optional[pulumi.Input[str]] = None,
147
+ update_time: Optional[pulumi.Input[str]] = None):
148
+ """
149
+ Input properties used for looking up and filtering BackupPlan resources.
150
+ :param pulumi.Input[str] backup_plan_id: The ID of the backup plan
151
+ :param pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
152
+ Structure is documented below.
153
+ :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan.
154
+ :param pulumi.Input[str] backup_vault_service_account: The Google Cloud Platform Service Account to be used by the BackupVault for taking backups.
155
+ :param pulumi.Input[str] create_time: When the `BackupPlan` was created.
156
+ :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided.
157
+ :param pulumi.Input[str] location: The location for the backup plan
158
+ :param pulumi.Input[str] name: The name of backup plan resource created
159
+ :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
160
+ :param pulumi.Input[str] update_time: When the `BackupPlan` was last updated.
161
+ """
162
+ if backup_plan_id is not None:
163
+ pulumi.set(__self__, "backup_plan_id", backup_plan_id)
164
+ if backup_rules is not None:
165
+ pulumi.set(__self__, "backup_rules", backup_rules)
166
+ if backup_vault is not None:
167
+ pulumi.set(__self__, "backup_vault", backup_vault)
168
+ if backup_vault_service_account is not None:
169
+ pulumi.set(__self__, "backup_vault_service_account", backup_vault_service_account)
170
+ if create_time is not None:
171
+ pulumi.set(__self__, "create_time", create_time)
172
+ if description is not None:
173
+ pulumi.set(__self__, "description", description)
174
+ if location is not None:
175
+ pulumi.set(__self__, "location", location)
176
+ if name is not None:
177
+ pulumi.set(__self__, "name", name)
178
+ if project is not None:
179
+ pulumi.set(__self__, "project", project)
180
+ if resource_type is not None:
181
+ pulumi.set(__self__, "resource_type", resource_type)
182
+ if update_time is not None:
183
+ pulumi.set(__self__, "update_time", update_time)
184
+
185
+ @property
186
+ @pulumi.getter(name="backupPlanId")
187
+ def backup_plan_id(self) -> Optional[pulumi.Input[str]]:
188
+ """
189
+ The ID of the backup plan
190
+ """
191
+ return pulumi.get(self, "backup_plan_id")
192
+
193
+ @backup_plan_id.setter
194
+ def backup_plan_id(self, value: Optional[pulumi.Input[str]]):
195
+ pulumi.set(self, "backup_plan_id", value)
196
+
197
+ @property
198
+ @pulumi.getter(name="backupRules")
199
+ def backup_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]]:
200
+ """
201
+ The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
202
+ Structure is documented below.
203
+ """
204
+ return pulumi.get(self, "backup_rules")
205
+
206
+ @backup_rules.setter
207
+ def backup_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupRuleArgs']]]]):
208
+ pulumi.set(self, "backup_rules", value)
209
+
210
+ @property
211
+ @pulumi.getter(name="backupVault")
212
+ def backup_vault(self) -> Optional[pulumi.Input[str]]:
213
+ """
214
+ Backup vault where the backups gets stored using this Backup plan.
215
+ """
216
+ return pulumi.get(self, "backup_vault")
217
+
218
+ @backup_vault.setter
219
+ def backup_vault(self, value: Optional[pulumi.Input[str]]):
220
+ pulumi.set(self, "backup_vault", value)
221
+
222
+ @property
223
+ @pulumi.getter(name="backupVaultServiceAccount")
224
+ def backup_vault_service_account(self) -> Optional[pulumi.Input[str]]:
225
+ """
226
+ The Google Cloud Platform Service Account to be used by the BackupVault for taking backups.
227
+ """
228
+ return pulumi.get(self, "backup_vault_service_account")
229
+
230
+ @backup_vault_service_account.setter
231
+ def backup_vault_service_account(self, value: Optional[pulumi.Input[str]]):
232
+ pulumi.set(self, "backup_vault_service_account", value)
233
+
234
+ @property
235
+ @pulumi.getter(name="createTime")
236
+ def create_time(self) -> Optional[pulumi.Input[str]]:
237
+ """
238
+ When the `BackupPlan` was created.
239
+ """
240
+ return pulumi.get(self, "create_time")
241
+
242
+ @create_time.setter
243
+ def create_time(self, value: Optional[pulumi.Input[str]]):
244
+ pulumi.set(self, "create_time", value)
245
+
246
+ @property
247
+ @pulumi.getter
248
+ def description(self) -> Optional[pulumi.Input[str]]:
249
+ """
250
+ The description allows for additional details about 'BackupPlan' and its use cases to be provided.
251
+ """
252
+ return pulumi.get(self, "description")
253
+
254
+ @description.setter
255
+ def description(self, value: Optional[pulumi.Input[str]]):
256
+ pulumi.set(self, "description", value)
257
+
258
+ @property
259
+ @pulumi.getter
260
+ def location(self) -> Optional[pulumi.Input[str]]:
261
+ """
262
+ The location for the backup plan
263
+ """
264
+ return pulumi.get(self, "location")
265
+
266
+ @location.setter
267
+ def location(self, value: Optional[pulumi.Input[str]]):
268
+ pulumi.set(self, "location", value)
269
+
270
+ @property
271
+ @pulumi.getter
272
+ def name(self) -> Optional[pulumi.Input[str]]:
273
+ """
274
+ The name of backup plan resource created
275
+ """
276
+ return pulumi.get(self, "name")
277
+
278
+ @name.setter
279
+ def name(self, value: Optional[pulumi.Input[str]]):
280
+ pulumi.set(self, "name", value)
281
+
282
+ @property
283
+ @pulumi.getter
284
+ def project(self) -> Optional[pulumi.Input[str]]:
285
+ return pulumi.get(self, "project")
286
+
287
+ @project.setter
288
+ def project(self, value: Optional[pulumi.Input[str]]):
289
+ pulumi.set(self, "project", value)
290
+
291
+ @property
292
+ @pulumi.getter(name="resourceType")
293
+ def resource_type(self) -> Optional[pulumi.Input[str]]:
294
+ """
295
+ The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
296
+ """
297
+ return pulumi.get(self, "resource_type")
298
+
299
+ @resource_type.setter
300
+ def resource_type(self, value: Optional[pulumi.Input[str]]):
301
+ pulumi.set(self, "resource_type", value)
302
+
303
+ @property
304
+ @pulumi.getter(name="updateTime")
305
+ def update_time(self) -> Optional[pulumi.Input[str]]:
306
+ """
307
+ When the `BackupPlan` was last updated.
308
+ """
309
+ return pulumi.get(self, "update_time")
310
+
311
+ @update_time.setter
312
+ def update_time(self, value: Optional[pulumi.Input[str]]):
313
+ pulumi.set(self, "update_time", value)
314
+
315
+
316
+ class BackupPlan(pulumi.CustomResource):
317
+ @overload
318
+ def __init__(__self__,
319
+ resource_name: str,
320
+ opts: Optional[pulumi.ResourceOptions] = None,
321
+ backup_plan_id: Optional[pulumi.Input[str]] = None,
322
+ backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]]] = None,
323
+ backup_vault: Optional[pulumi.Input[str]] = None,
324
+ description: Optional[pulumi.Input[str]] = None,
325
+ location: Optional[pulumi.Input[str]] = None,
326
+ project: Optional[pulumi.Input[str]] = None,
327
+ resource_type: Optional[pulumi.Input[str]] = None,
328
+ __props__=None):
329
+ """
330
+ ## Example Usage
331
+
332
+ ### Backup Dr Backup Plan Simple
333
+
334
+ ```python
335
+ import pulumi
336
+ import pulumi_gcp as gcp
337
+
338
+ my_backup_vault = gcp.backupdisasterrecovery.BackupVault("my_backup_vault",
339
+ location="us-central1",
340
+ backup_vault_id="bv-bp-test",
341
+ backup_minimum_enforced_retention_duration="100000s")
342
+ my_backup_plan_1 = gcp.backupdisasterrecovery.BackupPlan("my-backup-plan-1",
343
+ location="us-central1",
344
+ backup_plan_id="backup-plan-simple-test",
345
+ resource_type="compute.googleapis.com/Instance",
346
+ backup_vault=my_backup_vault.id,
347
+ backup_rules=[{
348
+ "rule_id": "rule-1",
349
+ "backup_retention_days": 5,
350
+ "standard_schedule": {
351
+ "recurrence_type": "HOURLY",
352
+ "hourly_frequency": 6,
353
+ "time_zone": "UTC",
354
+ "backup_window": {
355
+ "start_hour_of_day": 0,
356
+ "end_hour_of_day": 24,
357
+ },
358
+ },
359
+ }])
360
+ ```
361
+
362
+ ## Import
363
+
364
+ BackupPlan can be imported using any of these accepted formats:
365
+
366
+ * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}`
367
+
368
+ * `{{project}}/{{location}}/{{backup_plan_id}}`
369
+
370
+ * `{{location}}/{{backup_plan_id}}`
371
+
372
+ When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example:
373
+
374
+ ```sh
375
+ $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}
376
+ ```
377
+
378
+ ```sh
379
+ $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}}
380
+ ```
381
+
382
+ ```sh
383
+ $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}}
384
+ ```
385
+
386
+ :param str resource_name: The name of the resource.
387
+ :param pulumi.ResourceOptions opts: Options for the resource.
388
+ :param pulumi.Input[str] backup_plan_id: The ID of the backup plan
389
+ :param pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
390
+ Structure is documented below.
391
+ :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan.
392
+ :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided.
393
+ :param pulumi.Input[str] location: The location for the backup plan
394
+ :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
395
+ """
396
+ ...
397
+ @overload
398
+ def __init__(__self__,
399
+ resource_name: str,
400
+ args: BackupPlanArgs,
401
+ opts: Optional[pulumi.ResourceOptions] = None):
402
+ """
403
+ ## Example Usage
404
+
405
+ ### Backup Dr Backup Plan Simple
406
+
407
+ ```python
408
+ import pulumi
409
+ import pulumi_gcp as gcp
410
+
411
+ my_backup_vault = gcp.backupdisasterrecovery.BackupVault("my_backup_vault",
412
+ location="us-central1",
413
+ backup_vault_id="bv-bp-test",
414
+ backup_minimum_enforced_retention_duration="100000s")
415
+ my_backup_plan_1 = gcp.backupdisasterrecovery.BackupPlan("my-backup-plan-1",
416
+ location="us-central1",
417
+ backup_plan_id="backup-plan-simple-test",
418
+ resource_type="compute.googleapis.com/Instance",
419
+ backup_vault=my_backup_vault.id,
420
+ backup_rules=[{
421
+ "rule_id": "rule-1",
422
+ "backup_retention_days": 5,
423
+ "standard_schedule": {
424
+ "recurrence_type": "HOURLY",
425
+ "hourly_frequency": 6,
426
+ "time_zone": "UTC",
427
+ "backup_window": {
428
+ "start_hour_of_day": 0,
429
+ "end_hour_of_day": 24,
430
+ },
431
+ },
432
+ }])
433
+ ```
434
+
435
+ ## Import
436
+
437
+ BackupPlan can be imported using any of these accepted formats:
438
+
439
+ * `projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}`
440
+
441
+ * `{{project}}/{{location}}/{{backup_plan_id}}`
442
+
443
+ * `{{location}}/{{backup_plan_id}}`
444
+
445
+ When using the `pulumi import` command, BackupPlan can be imported using one of the formats above. For example:
446
+
447
+ ```sh
448
+ $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}
449
+ ```
450
+
451
+ ```sh
452
+ $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{project}}/{{location}}/{{backup_plan_id}}
453
+ ```
454
+
455
+ ```sh
456
+ $ pulumi import gcp:backupdisasterrecovery/backupPlan:BackupPlan default {{location}}/{{backup_plan_id}}
457
+ ```
458
+
459
+ :param str resource_name: The name of the resource.
460
+ :param BackupPlanArgs args: The arguments to use to populate this resource's properties.
461
+ :param pulumi.ResourceOptions opts: Options for the resource.
462
+ """
463
+ ...
464
+ def __init__(__self__, resource_name: str, *args, **kwargs):
465
+ resource_args, opts = _utilities.get_resource_args_opts(BackupPlanArgs, pulumi.ResourceOptions, *args, **kwargs)
466
+ if resource_args is not None:
467
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
468
+ else:
469
+ __self__._internal_init(resource_name, *args, **kwargs)
470
+
471
+ def _internal_init(__self__,
472
+ resource_name: str,
473
+ opts: Optional[pulumi.ResourceOptions] = None,
474
+ backup_plan_id: Optional[pulumi.Input[str]] = None,
475
+ backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]]] = None,
476
+ backup_vault: Optional[pulumi.Input[str]] = None,
477
+ description: Optional[pulumi.Input[str]] = None,
478
+ location: Optional[pulumi.Input[str]] = None,
479
+ project: Optional[pulumi.Input[str]] = None,
480
+ resource_type: Optional[pulumi.Input[str]] = None,
481
+ __props__=None):
482
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
483
+ if not isinstance(opts, pulumi.ResourceOptions):
484
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
485
+ if opts.id is None:
486
+ if __props__ is not None:
487
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
488
+ __props__ = BackupPlanArgs.__new__(BackupPlanArgs)
489
+
490
+ if backup_plan_id is None and not opts.urn:
491
+ raise TypeError("Missing required property 'backup_plan_id'")
492
+ __props__.__dict__["backup_plan_id"] = backup_plan_id
493
+ if backup_rules is None and not opts.urn:
494
+ raise TypeError("Missing required property 'backup_rules'")
495
+ __props__.__dict__["backup_rules"] = backup_rules
496
+ if backup_vault is None and not opts.urn:
497
+ raise TypeError("Missing required property 'backup_vault'")
498
+ __props__.__dict__["backup_vault"] = backup_vault
499
+ __props__.__dict__["description"] = description
500
+ if location is None and not opts.urn:
501
+ raise TypeError("Missing required property 'location'")
502
+ __props__.__dict__["location"] = location
503
+ __props__.__dict__["project"] = project
504
+ if resource_type is None and not opts.urn:
505
+ raise TypeError("Missing required property 'resource_type'")
506
+ __props__.__dict__["resource_type"] = resource_type
507
+ __props__.__dict__["backup_vault_service_account"] = None
508
+ __props__.__dict__["create_time"] = None
509
+ __props__.__dict__["name"] = None
510
+ __props__.__dict__["update_time"] = None
511
+ super(BackupPlan, __self__).__init__(
512
+ 'gcp:backupdisasterrecovery/backupPlan:BackupPlan',
513
+ resource_name,
514
+ __props__,
515
+ opts)
516
+
517
+ @staticmethod
518
+ def get(resource_name: str,
519
+ id: pulumi.Input[str],
520
+ opts: Optional[pulumi.ResourceOptions] = None,
521
+ backup_plan_id: Optional[pulumi.Input[str]] = None,
522
+ backup_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]]] = None,
523
+ backup_vault: Optional[pulumi.Input[str]] = None,
524
+ backup_vault_service_account: Optional[pulumi.Input[str]] = None,
525
+ create_time: Optional[pulumi.Input[str]] = None,
526
+ description: Optional[pulumi.Input[str]] = None,
527
+ location: Optional[pulumi.Input[str]] = None,
528
+ name: Optional[pulumi.Input[str]] = None,
529
+ project: Optional[pulumi.Input[str]] = None,
530
+ resource_type: Optional[pulumi.Input[str]] = None,
531
+ update_time: Optional[pulumi.Input[str]] = None) -> 'BackupPlan':
532
+ """
533
+ Get an existing BackupPlan resource's state with the given name, id, and optional extra
534
+ properties used to qualify the lookup.
535
+
536
+ :param str resource_name: The unique name of the resulting resource.
537
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
538
+ :param pulumi.ResourceOptions opts: Options for the resource.
539
+ :param pulumi.Input[str] backup_plan_id: The ID of the backup plan
540
+ :param pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanBackupRuleArgs', 'BackupPlanBackupRuleArgsDict']]]] backup_rules: The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
541
+ Structure is documented below.
542
+ :param pulumi.Input[str] backup_vault: Backup vault where the backups gets stored using this Backup plan.
543
+ :param pulumi.Input[str] backup_vault_service_account: The Google Cloud Platform Service Account to be used by the BackupVault for taking backups.
544
+ :param pulumi.Input[str] create_time: When the `BackupPlan` was created.
545
+ :param pulumi.Input[str] description: The description allows for additional details about 'BackupPlan' and its use cases to be provided.
546
+ :param pulumi.Input[str] location: The location for the backup plan
547
+ :param pulumi.Input[str] name: The name of backup plan resource created
548
+ :param pulumi.Input[str] resource_type: The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
549
+ :param pulumi.Input[str] update_time: When the `BackupPlan` was last updated.
550
+ """
551
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
552
+
553
+ __props__ = _BackupPlanState.__new__(_BackupPlanState)
554
+
555
+ __props__.__dict__["backup_plan_id"] = backup_plan_id
556
+ __props__.__dict__["backup_rules"] = backup_rules
557
+ __props__.__dict__["backup_vault"] = backup_vault
558
+ __props__.__dict__["backup_vault_service_account"] = backup_vault_service_account
559
+ __props__.__dict__["create_time"] = create_time
560
+ __props__.__dict__["description"] = description
561
+ __props__.__dict__["location"] = location
562
+ __props__.__dict__["name"] = name
563
+ __props__.__dict__["project"] = project
564
+ __props__.__dict__["resource_type"] = resource_type
565
+ __props__.__dict__["update_time"] = update_time
566
+ return BackupPlan(resource_name, opts=opts, __props__=__props__)
567
+
568
+ @property
569
+ @pulumi.getter(name="backupPlanId")
570
+ def backup_plan_id(self) -> pulumi.Output[str]:
571
+ """
572
+ The ID of the backup plan
573
+ """
574
+ return pulumi.get(self, "backup_plan_id")
575
+
576
+ @property
577
+ @pulumi.getter(name="backupRules")
578
+ def backup_rules(self) -> pulumi.Output[Sequence['outputs.BackupPlanBackupRule']]:
579
+ """
580
+ The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
581
+ Structure is documented below.
582
+ """
583
+ return pulumi.get(self, "backup_rules")
584
+
585
+ @property
586
+ @pulumi.getter(name="backupVault")
587
+ def backup_vault(self) -> pulumi.Output[str]:
588
+ """
589
+ Backup vault where the backups gets stored using this Backup plan.
590
+ """
591
+ return pulumi.get(self, "backup_vault")
592
+
593
+ @property
594
+ @pulumi.getter(name="backupVaultServiceAccount")
595
+ def backup_vault_service_account(self) -> pulumi.Output[str]:
596
+ """
597
+ The Google Cloud Platform Service Account to be used by the BackupVault for taking backups.
598
+ """
599
+ return pulumi.get(self, "backup_vault_service_account")
600
+
601
+ @property
602
+ @pulumi.getter(name="createTime")
603
+ def create_time(self) -> pulumi.Output[str]:
604
+ """
605
+ When the `BackupPlan` was created.
606
+ """
607
+ return pulumi.get(self, "create_time")
608
+
609
+ @property
610
+ @pulumi.getter
611
+ def description(self) -> pulumi.Output[Optional[str]]:
612
+ """
613
+ The description allows for additional details about 'BackupPlan' and its use cases to be provided.
614
+ """
615
+ return pulumi.get(self, "description")
616
+
617
+ @property
618
+ @pulumi.getter
619
+ def location(self) -> pulumi.Output[str]:
620
+ """
621
+ The location for the backup plan
622
+ """
623
+ return pulumi.get(self, "location")
624
+
625
+ @property
626
+ @pulumi.getter
627
+ def name(self) -> pulumi.Output[str]:
628
+ """
629
+ The name of backup plan resource created
630
+ """
631
+ return pulumi.get(self, "name")
632
+
633
+ @property
634
+ @pulumi.getter
635
+ def project(self) -> pulumi.Output[str]:
636
+ return pulumi.get(self, "project")
637
+
638
+ @property
639
+ @pulumi.getter(name="resourceType")
640
+ def resource_type(self) -> pulumi.Output[str]:
641
+ """
642
+ The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
643
+ """
644
+ return pulumi.get(self, "resource_type")
645
+
646
+ @property
647
+ @pulumi.getter(name="updateTime")
648
+ def update_time(self) -> pulumi.Output[str]:
649
+ """
650
+ When the `BackupPlan` was last updated.
651
+ """
652
+ return pulumi.get(self, "update_time")
653
+