pulumi-gcp 8.9.0a1731366299__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.0a1731366299.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/METADATA +1 -1
  112. {pulumi_gcp-8.9.0a1731366299.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/RECORD +114 -103
  113. {pulumi_gcp-8.9.0a1731366299.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/WHEEL +0 -0
  114. {pulumi_gcp-8.9.0a1731366299.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,766 @@
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__ = ['BackupPlanAssociationArgs', 'BackupPlanAssociation']
20
+
21
+ @pulumi.input_type
22
+ class BackupPlanAssociationArgs:
23
+ def __init__(__self__, *,
24
+ backup_plan: pulumi.Input[str],
25
+ backup_plan_association_id: pulumi.Input[str],
26
+ location: pulumi.Input[str],
27
+ resource: pulumi.Input[str],
28
+ resource_type: pulumi.Input[str],
29
+ project: Optional[pulumi.Input[str]] = None):
30
+ """
31
+ The set of arguments for constructing a BackupPlanAssociation resource.
32
+ :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created
33
+ :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association
34
+
35
+
36
+ - - -
37
+ :param pulumi.Input[str] location: The location for the backupplan association
38
+ :param pulumi.Input[str] resource: The resource for which BPA needs to be created
39
+ :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied
40
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
41
+ If it is not provided, the provider project is used.
42
+ """
43
+ pulumi.set(__self__, "backup_plan", backup_plan)
44
+ pulumi.set(__self__, "backup_plan_association_id", backup_plan_association_id)
45
+ pulumi.set(__self__, "location", location)
46
+ pulumi.set(__self__, "resource", resource)
47
+ pulumi.set(__self__, "resource_type", resource_type)
48
+ if project is not None:
49
+ pulumi.set(__self__, "project", project)
50
+
51
+ @property
52
+ @pulumi.getter(name="backupPlan")
53
+ def backup_plan(self) -> pulumi.Input[str]:
54
+ """
55
+ The BP with which resource needs to be created
56
+ """
57
+ return pulumi.get(self, "backup_plan")
58
+
59
+ @backup_plan.setter
60
+ def backup_plan(self, value: pulumi.Input[str]):
61
+ pulumi.set(self, "backup_plan", value)
62
+
63
+ @property
64
+ @pulumi.getter(name="backupPlanAssociationId")
65
+ def backup_plan_association_id(self) -> pulumi.Input[str]:
66
+ """
67
+ The id of backupplan association
68
+
69
+
70
+ - - -
71
+ """
72
+ return pulumi.get(self, "backup_plan_association_id")
73
+
74
+ @backup_plan_association_id.setter
75
+ def backup_plan_association_id(self, value: pulumi.Input[str]):
76
+ pulumi.set(self, "backup_plan_association_id", value)
77
+
78
+ @property
79
+ @pulumi.getter
80
+ def location(self) -> pulumi.Input[str]:
81
+ """
82
+ The location for the backupplan association
83
+ """
84
+ return pulumi.get(self, "location")
85
+
86
+ @location.setter
87
+ def location(self, value: pulumi.Input[str]):
88
+ pulumi.set(self, "location", value)
89
+
90
+ @property
91
+ @pulumi.getter
92
+ def resource(self) -> pulumi.Input[str]:
93
+ """
94
+ The resource for which BPA needs to be created
95
+ """
96
+ return pulumi.get(self, "resource")
97
+
98
+ @resource.setter
99
+ def resource(self, value: pulumi.Input[str]):
100
+ pulumi.set(self, "resource", value)
101
+
102
+ @property
103
+ @pulumi.getter(name="resourceType")
104
+ def resource_type(self) -> pulumi.Input[str]:
105
+ """
106
+ The resource type of workload on which backupplan is applied
107
+ """
108
+ return pulumi.get(self, "resource_type")
109
+
110
+ @resource_type.setter
111
+ def resource_type(self, value: pulumi.Input[str]):
112
+ pulumi.set(self, "resource_type", value)
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def project(self) -> Optional[pulumi.Input[str]]:
117
+ """
118
+ The ID of the project in which the resource belongs.
119
+ If it is not provided, the provider project is used.
120
+ """
121
+ return pulumi.get(self, "project")
122
+
123
+ @project.setter
124
+ def project(self, value: Optional[pulumi.Input[str]]):
125
+ pulumi.set(self, "project", value)
126
+
127
+
128
+ @pulumi.input_type
129
+ class _BackupPlanAssociationState:
130
+ def __init__(__self__, *,
131
+ backup_plan: Optional[pulumi.Input[str]] = None,
132
+ backup_plan_association_id: Optional[pulumi.Input[str]] = None,
133
+ create_time: Optional[pulumi.Input[str]] = None,
134
+ data_source: Optional[pulumi.Input[str]] = None,
135
+ last_successful_backup_consistency_time: Optional[pulumi.Input[str]] = None,
136
+ location: Optional[pulumi.Input[str]] = None,
137
+ name: Optional[pulumi.Input[str]] = None,
138
+ project: Optional[pulumi.Input[str]] = None,
139
+ resource: Optional[pulumi.Input[str]] = None,
140
+ resource_type: Optional[pulumi.Input[str]] = None,
141
+ rules_config_infos: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]]] = None,
142
+ update_time: Optional[pulumi.Input[str]] = None):
143
+ """
144
+ Input properties used for looking up and filtering BackupPlanAssociation resources.
145
+ :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created
146
+ :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association
147
+
148
+
149
+ - - -
150
+ :param pulumi.Input[str] create_time: The time when the instance was created
151
+ :param pulumi.Input[str] data_source: Resource name of data source which will be used as storage location for backups taken
152
+ :param pulumi.Input[str] last_successful_backup_consistency_time: The point in time when the last successful backup was captured from the source
153
+ :param pulumi.Input[str] location: The location for the backupplan association
154
+ :param pulumi.Input[str] name: The name of backup plan association resource created
155
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
156
+ If it is not provided, the provider project is used.
157
+ :param pulumi.Input[str] resource: The resource for which BPA needs to be created
158
+ :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied
159
+ :param pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]] rules_config_infos: Message for rules config info
160
+ Structure is documented below.
161
+ :param pulumi.Input[str] update_time: The time when the instance was updated.
162
+ """
163
+ if backup_plan is not None:
164
+ pulumi.set(__self__, "backup_plan", backup_plan)
165
+ if backup_plan_association_id is not None:
166
+ pulumi.set(__self__, "backup_plan_association_id", backup_plan_association_id)
167
+ if create_time is not None:
168
+ pulumi.set(__self__, "create_time", create_time)
169
+ if data_source is not None:
170
+ pulumi.set(__self__, "data_source", data_source)
171
+ if last_successful_backup_consistency_time is not None:
172
+ pulumi.set(__self__, "last_successful_backup_consistency_time", last_successful_backup_consistency_time)
173
+ if location is not None:
174
+ pulumi.set(__self__, "location", location)
175
+ if name is not None:
176
+ pulumi.set(__self__, "name", name)
177
+ if project is not None:
178
+ pulumi.set(__self__, "project", project)
179
+ if resource is not None:
180
+ pulumi.set(__self__, "resource", resource)
181
+ if resource_type is not None:
182
+ pulumi.set(__self__, "resource_type", resource_type)
183
+ if rules_config_infos is not None:
184
+ pulumi.set(__self__, "rules_config_infos", rules_config_infos)
185
+ if update_time is not None:
186
+ pulumi.set(__self__, "update_time", update_time)
187
+
188
+ @property
189
+ @pulumi.getter(name="backupPlan")
190
+ def backup_plan(self) -> Optional[pulumi.Input[str]]:
191
+ """
192
+ The BP with which resource needs to be created
193
+ """
194
+ return pulumi.get(self, "backup_plan")
195
+
196
+ @backup_plan.setter
197
+ def backup_plan(self, value: Optional[pulumi.Input[str]]):
198
+ pulumi.set(self, "backup_plan", value)
199
+
200
+ @property
201
+ @pulumi.getter(name="backupPlanAssociationId")
202
+ def backup_plan_association_id(self) -> Optional[pulumi.Input[str]]:
203
+ """
204
+ The id of backupplan association
205
+
206
+
207
+ - - -
208
+ """
209
+ return pulumi.get(self, "backup_plan_association_id")
210
+
211
+ @backup_plan_association_id.setter
212
+ def backup_plan_association_id(self, value: Optional[pulumi.Input[str]]):
213
+ pulumi.set(self, "backup_plan_association_id", value)
214
+
215
+ @property
216
+ @pulumi.getter(name="createTime")
217
+ def create_time(self) -> Optional[pulumi.Input[str]]:
218
+ """
219
+ The time when the instance was created
220
+ """
221
+ return pulumi.get(self, "create_time")
222
+
223
+ @create_time.setter
224
+ def create_time(self, value: Optional[pulumi.Input[str]]):
225
+ pulumi.set(self, "create_time", value)
226
+
227
+ @property
228
+ @pulumi.getter(name="dataSource")
229
+ def data_source(self) -> Optional[pulumi.Input[str]]:
230
+ """
231
+ Resource name of data source which will be used as storage location for backups taken
232
+ """
233
+ return pulumi.get(self, "data_source")
234
+
235
+ @data_source.setter
236
+ def data_source(self, value: Optional[pulumi.Input[str]]):
237
+ pulumi.set(self, "data_source", value)
238
+
239
+ @property
240
+ @pulumi.getter(name="lastSuccessfulBackupConsistencyTime")
241
+ def last_successful_backup_consistency_time(self) -> Optional[pulumi.Input[str]]:
242
+ """
243
+ The point in time when the last successful backup was captured from the source
244
+ """
245
+ return pulumi.get(self, "last_successful_backup_consistency_time")
246
+
247
+ @last_successful_backup_consistency_time.setter
248
+ def last_successful_backup_consistency_time(self, value: Optional[pulumi.Input[str]]):
249
+ pulumi.set(self, "last_successful_backup_consistency_time", value)
250
+
251
+ @property
252
+ @pulumi.getter
253
+ def location(self) -> Optional[pulumi.Input[str]]:
254
+ """
255
+ The location for the backupplan association
256
+ """
257
+ return pulumi.get(self, "location")
258
+
259
+ @location.setter
260
+ def location(self, value: Optional[pulumi.Input[str]]):
261
+ pulumi.set(self, "location", value)
262
+
263
+ @property
264
+ @pulumi.getter
265
+ def name(self) -> Optional[pulumi.Input[str]]:
266
+ """
267
+ The name of backup plan association resource created
268
+ """
269
+ return pulumi.get(self, "name")
270
+
271
+ @name.setter
272
+ def name(self, value: Optional[pulumi.Input[str]]):
273
+ pulumi.set(self, "name", value)
274
+
275
+ @property
276
+ @pulumi.getter
277
+ def project(self) -> Optional[pulumi.Input[str]]:
278
+ """
279
+ The ID of the project in which the resource belongs.
280
+ If it is not provided, the provider project is used.
281
+ """
282
+ return pulumi.get(self, "project")
283
+
284
+ @project.setter
285
+ def project(self, value: Optional[pulumi.Input[str]]):
286
+ pulumi.set(self, "project", value)
287
+
288
+ @property
289
+ @pulumi.getter
290
+ def resource(self) -> Optional[pulumi.Input[str]]:
291
+ """
292
+ The resource for which BPA needs to be created
293
+ """
294
+ return pulumi.get(self, "resource")
295
+
296
+ @resource.setter
297
+ def resource(self, value: Optional[pulumi.Input[str]]):
298
+ pulumi.set(self, "resource", value)
299
+
300
+ @property
301
+ @pulumi.getter(name="resourceType")
302
+ def resource_type(self) -> Optional[pulumi.Input[str]]:
303
+ """
304
+ The resource type of workload on which backupplan is applied
305
+ """
306
+ return pulumi.get(self, "resource_type")
307
+
308
+ @resource_type.setter
309
+ def resource_type(self, value: Optional[pulumi.Input[str]]):
310
+ pulumi.set(self, "resource_type", value)
311
+
312
+ @property
313
+ @pulumi.getter(name="rulesConfigInfos")
314
+ def rules_config_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]]]:
315
+ """
316
+ Message for rules config info
317
+ Structure is documented below.
318
+ """
319
+ return pulumi.get(self, "rules_config_infos")
320
+
321
+ @rules_config_infos.setter
322
+ def rules_config_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BackupPlanAssociationRulesConfigInfoArgs']]]]):
323
+ pulumi.set(self, "rules_config_infos", value)
324
+
325
+ @property
326
+ @pulumi.getter(name="updateTime")
327
+ def update_time(self) -> Optional[pulumi.Input[str]]:
328
+ """
329
+ The time when the instance was updated.
330
+ """
331
+ return pulumi.get(self, "update_time")
332
+
333
+ @update_time.setter
334
+ def update_time(self, value: Optional[pulumi.Input[str]]):
335
+ pulumi.set(self, "update_time", value)
336
+
337
+
338
+ class BackupPlanAssociation(pulumi.CustomResource):
339
+ @overload
340
+ def __init__(__self__,
341
+ resource_name: str,
342
+ opts: Optional[pulumi.ResourceOptions] = None,
343
+ backup_plan: Optional[pulumi.Input[str]] = None,
344
+ backup_plan_association_id: Optional[pulumi.Input[str]] = None,
345
+ location: Optional[pulumi.Input[str]] = None,
346
+ project: Optional[pulumi.Input[str]] = None,
347
+ resource: Optional[pulumi.Input[str]] = None,
348
+ resource_type: Optional[pulumi.Input[str]] = None,
349
+ __props__=None):
350
+ """
351
+ ## Example Usage
352
+
353
+ ### Backup Dr Bpa
354
+
355
+ ```python
356
+ import pulumi
357
+ import pulumi_gcp as gcp
358
+
359
+ my_sa = gcp.serviceaccount.Account("mySA",
360
+ account_id="my-custom",
361
+ display_name="Custom SA for VM Instance")
362
+ myinstance = gcp.compute.Instance("myinstance",
363
+ network_interfaces=[{
364
+ "access_configs": [{}],
365
+ "network": "default",
366
+ }],
367
+ name="test-instance",
368
+ machine_type="n2-standard-2",
369
+ zone="us-central1-a",
370
+ boot_disk={
371
+ "initialize_params": {
372
+ "image": "debian-cloud/debian-11",
373
+ "labels": {
374
+ "my_label": "value",
375
+ },
376
+ },
377
+ },
378
+ scratch_disks=[{
379
+ "interface": "NVME",
380
+ }],
381
+ service_account={
382
+ "email": my_sa.email,
383
+ "scopes": ["cloud-platform"],
384
+ })
385
+ bv1 = gcp.backupdisasterrecovery.BackupVault("bv1",
386
+ location="us-central1",
387
+ backup_vault_id="bv-bpa",
388
+ backup_minimum_enforced_retention_duration="100000s",
389
+ force_delete=True)
390
+ bp1 = gcp.backupdisasterrecovery.BackupPlan("bp1",
391
+ location="us-central1",
392
+ backup_plan_id="bp-bpa-test",
393
+ resource_type="compute.googleapis.com/Instance",
394
+ backup_vault=bv1.id,
395
+ backup_rules=[{
396
+ "rule_id": "rule-1",
397
+ "backup_retention_days": 2,
398
+ "standard_schedule": {
399
+ "recurrence_type": "HOURLY",
400
+ "hourly_frequency": 6,
401
+ "time_zone": "UTC",
402
+ "backup_window": {
403
+ "start_hour_of_day": 12,
404
+ "end_hour_of_day": 18,
405
+ },
406
+ },
407
+ }])
408
+ my_backup_plan_association = gcp.backupdisasterrecovery.BackupPlanAssociation("my-backup-plan-association",
409
+ location="us-central1",
410
+ resource_type="compute.googleapis.com/Instance",
411
+ backup_plan_association_id="my-bpa",
412
+ resource=myinstance.id,
413
+ backup_plan=bp1.name)
414
+ ```
415
+
416
+ ## Import
417
+
418
+ BackupPlanAssociation can be imported using any of these accepted formats:
419
+
420
+ * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}`
421
+
422
+ * `{{project}}/{{location}}/{{backup_plan_association_id}}`
423
+
424
+ * `{{location}}/{{backup_plan_association_id}}`
425
+
426
+ When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example:
427
+
428
+ ```sh
429
+ $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}
430
+ ```
431
+
432
+ ```sh
433
+ $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}}
434
+ ```
435
+
436
+ ```sh
437
+ $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}}
438
+ ```
439
+
440
+ :param str resource_name: The name of the resource.
441
+ :param pulumi.ResourceOptions opts: Options for the resource.
442
+ :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created
443
+ :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association
444
+
445
+
446
+ - - -
447
+ :param pulumi.Input[str] location: The location for the backupplan association
448
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
449
+ If it is not provided, the provider project is used.
450
+ :param pulumi.Input[str] resource: The resource for which BPA needs to be created
451
+ :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied
452
+ """
453
+ ...
454
+ @overload
455
+ def __init__(__self__,
456
+ resource_name: str,
457
+ args: BackupPlanAssociationArgs,
458
+ opts: Optional[pulumi.ResourceOptions] = None):
459
+ """
460
+ ## Example Usage
461
+
462
+ ### Backup Dr Bpa
463
+
464
+ ```python
465
+ import pulumi
466
+ import pulumi_gcp as gcp
467
+
468
+ my_sa = gcp.serviceaccount.Account("mySA",
469
+ account_id="my-custom",
470
+ display_name="Custom SA for VM Instance")
471
+ myinstance = gcp.compute.Instance("myinstance",
472
+ network_interfaces=[{
473
+ "access_configs": [{}],
474
+ "network": "default",
475
+ }],
476
+ name="test-instance",
477
+ machine_type="n2-standard-2",
478
+ zone="us-central1-a",
479
+ boot_disk={
480
+ "initialize_params": {
481
+ "image": "debian-cloud/debian-11",
482
+ "labels": {
483
+ "my_label": "value",
484
+ },
485
+ },
486
+ },
487
+ scratch_disks=[{
488
+ "interface": "NVME",
489
+ }],
490
+ service_account={
491
+ "email": my_sa.email,
492
+ "scopes": ["cloud-platform"],
493
+ })
494
+ bv1 = gcp.backupdisasterrecovery.BackupVault("bv1",
495
+ location="us-central1",
496
+ backup_vault_id="bv-bpa",
497
+ backup_minimum_enforced_retention_duration="100000s",
498
+ force_delete=True)
499
+ bp1 = gcp.backupdisasterrecovery.BackupPlan("bp1",
500
+ location="us-central1",
501
+ backup_plan_id="bp-bpa-test",
502
+ resource_type="compute.googleapis.com/Instance",
503
+ backup_vault=bv1.id,
504
+ backup_rules=[{
505
+ "rule_id": "rule-1",
506
+ "backup_retention_days": 2,
507
+ "standard_schedule": {
508
+ "recurrence_type": "HOURLY",
509
+ "hourly_frequency": 6,
510
+ "time_zone": "UTC",
511
+ "backup_window": {
512
+ "start_hour_of_day": 12,
513
+ "end_hour_of_day": 18,
514
+ },
515
+ },
516
+ }])
517
+ my_backup_plan_association = gcp.backupdisasterrecovery.BackupPlanAssociation("my-backup-plan-association",
518
+ location="us-central1",
519
+ resource_type="compute.googleapis.com/Instance",
520
+ backup_plan_association_id="my-bpa",
521
+ resource=myinstance.id,
522
+ backup_plan=bp1.name)
523
+ ```
524
+
525
+ ## Import
526
+
527
+ BackupPlanAssociation can be imported using any of these accepted formats:
528
+
529
+ * `projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}`
530
+
531
+ * `{{project}}/{{location}}/{{backup_plan_association_id}}`
532
+
533
+ * `{{location}}/{{backup_plan_association_id}}`
534
+
535
+ When using the `pulumi import` command, BackupPlanAssociation can be imported using one of the formats above. For example:
536
+
537
+ ```sh
538
+ $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}
539
+ ```
540
+
541
+ ```sh
542
+ $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{project}}/{{location}}/{{backup_plan_association_id}}
543
+ ```
544
+
545
+ ```sh
546
+ $ pulumi import gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation default {{location}}/{{backup_plan_association_id}}
547
+ ```
548
+
549
+ :param str resource_name: The name of the resource.
550
+ :param BackupPlanAssociationArgs args: The arguments to use to populate this resource's properties.
551
+ :param pulumi.ResourceOptions opts: Options for the resource.
552
+ """
553
+ ...
554
+ def __init__(__self__, resource_name: str, *args, **kwargs):
555
+ resource_args, opts = _utilities.get_resource_args_opts(BackupPlanAssociationArgs, pulumi.ResourceOptions, *args, **kwargs)
556
+ if resource_args is not None:
557
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
558
+ else:
559
+ __self__._internal_init(resource_name, *args, **kwargs)
560
+
561
+ def _internal_init(__self__,
562
+ resource_name: str,
563
+ opts: Optional[pulumi.ResourceOptions] = None,
564
+ backup_plan: Optional[pulumi.Input[str]] = None,
565
+ backup_plan_association_id: Optional[pulumi.Input[str]] = None,
566
+ location: Optional[pulumi.Input[str]] = None,
567
+ project: Optional[pulumi.Input[str]] = None,
568
+ resource: Optional[pulumi.Input[str]] = None,
569
+ resource_type: Optional[pulumi.Input[str]] = None,
570
+ __props__=None):
571
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
572
+ if not isinstance(opts, pulumi.ResourceOptions):
573
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
574
+ if opts.id is None:
575
+ if __props__ is not None:
576
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
577
+ __props__ = BackupPlanAssociationArgs.__new__(BackupPlanAssociationArgs)
578
+
579
+ if backup_plan is None and not opts.urn:
580
+ raise TypeError("Missing required property 'backup_plan'")
581
+ __props__.__dict__["backup_plan"] = backup_plan
582
+ if backup_plan_association_id is None and not opts.urn:
583
+ raise TypeError("Missing required property 'backup_plan_association_id'")
584
+ __props__.__dict__["backup_plan_association_id"] = backup_plan_association_id
585
+ if location is None and not opts.urn:
586
+ raise TypeError("Missing required property 'location'")
587
+ __props__.__dict__["location"] = location
588
+ __props__.__dict__["project"] = project
589
+ if resource is None and not opts.urn:
590
+ raise TypeError("Missing required property 'resource'")
591
+ __props__.__dict__["resource"] = resource
592
+ if resource_type is None and not opts.urn:
593
+ raise TypeError("Missing required property 'resource_type'")
594
+ __props__.__dict__["resource_type"] = resource_type
595
+ __props__.__dict__["create_time"] = None
596
+ __props__.__dict__["data_source"] = None
597
+ __props__.__dict__["last_successful_backup_consistency_time"] = None
598
+ __props__.__dict__["name"] = None
599
+ __props__.__dict__["rules_config_infos"] = None
600
+ __props__.__dict__["update_time"] = None
601
+ super(BackupPlanAssociation, __self__).__init__(
602
+ 'gcp:backupdisasterrecovery/backupPlanAssociation:BackupPlanAssociation',
603
+ resource_name,
604
+ __props__,
605
+ opts)
606
+
607
+ @staticmethod
608
+ def get(resource_name: str,
609
+ id: pulumi.Input[str],
610
+ opts: Optional[pulumi.ResourceOptions] = None,
611
+ backup_plan: Optional[pulumi.Input[str]] = None,
612
+ backup_plan_association_id: Optional[pulumi.Input[str]] = None,
613
+ create_time: Optional[pulumi.Input[str]] = None,
614
+ data_source: Optional[pulumi.Input[str]] = None,
615
+ last_successful_backup_consistency_time: Optional[pulumi.Input[str]] = None,
616
+ location: Optional[pulumi.Input[str]] = None,
617
+ name: Optional[pulumi.Input[str]] = None,
618
+ project: Optional[pulumi.Input[str]] = None,
619
+ resource: Optional[pulumi.Input[str]] = None,
620
+ resource_type: Optional[pulumi.Input[str]] = None,
621
+ rules_config_infos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanAssociationRulesConfigInfoArgs', 'BackupPlanAssociationRulesConfigInfoArgsDict']]]]] = None,
622
+ update_time: Optional[pulumi.Input[str]] = None) -> 'BackupPlanAssociation':
623
+ """
624
+ Get an existing BackupPlanAssociation resource's state with the given name, id, and optional extra
625
+ properties used to qualify the lookup.
626
+
627
+ :param str resource_name: The unique name of the resulting resource.
628
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
629
+ :param pulumi.ResourceOptions opts: Options for the resource.
630
+ :param pulumi.Input[str] backup_plan: The BP with which resource needs to be created
631
+ :param pulumi.Input[str] backup_plan_association_id: The id of backupplan association
632
+
633
+
634
+ - - -
635
+ :param pulumi.Input[str] create_time: The time when the instance was created
636
+ :param pulumi.Input[str] data_source: Resource name of data source which will be used as storage location for backups taken
637
+ :param pulumi.Input[str] last_successful_backup_consistency_time: The point in time when the last successful backup was captured from the source
638
+ :param pulumi.Input[str] location: The location for the backupplan association
639
+ :param pulumi.Input[str] name: The name of backup plan association resource created
640
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
641
+ If it is not provided, the provider project is used.
642
+ :param pulumi.Input[str] resource: The resource for which BPA needs to be created
643
+ :param pulumi.Input[str] resource_type: The resource type of workload on which backupplan is applied
644
+ :param pulumi.Input[Sequence[pulumi.Input[Union['BackupPlanAssociationRulesConfigInfoArgs', 'BackupPlanAssociationRulesConfigInfoArgsDict']]]] rules_config_infos: Message for rules config info
645
+ Structure is documented below.
646
+ :param pulumi.Input[str] update_time: The time when the instance was updated.
647
+ """
648
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
649
+
650
+ __props__ = _BackupPlanAssociationState.__new__(_BackupPlanAssociationState)
651
+
652
+ __props__.__dict__["backup_plan"] = backup_plan
653
+ __props__.__dict__["backup_plan_association_id"] = backup_plan_association_id
654
+ __props__.__dict__["create_time"] = create_time
655
+ __props__.__dict__["data_source"] = data_source
656
+ __props__.__dict__["last_successful_backup_consistency_time"] = last_successful_backup_consistency_time
657
+ __props__.__dict__["location"] = location
658
+ __props__.__dict__["name"] = name
659
+ __props__.__dict__["project"] = project
660
+ __props__.__dict__["resource"] = resource
661
+ __props__.__dict__["resource_type"] = resource_type
662
+ __props__.__dict__["rules_config_infos"] = rules_config_infos
663
+ __props__.__dict__["update_time"] = update_time
664
+ return BackupPlanAssociation(resource_name, opts=opts, __props__=__props__)
665
+
666
+ @property
667
+ @pulumi.getter(name="backupPlan")
668
+ def backup_plan(self) -> pulumi.Output[str]:
669
+ """
670
+ The BP with which resource needs to be created
671
+ """
672
+ return pulumi.get(self, "backup_plan")
673
+
674
+ @property
675
+ @pulumi.getter(name="backupPlanAssociationId")
676
+ def backup_plan_association_id(self) -> pulumi.Output[str]:
677
+ """
678
+ The id of backupplan association
679
+
680
+
681
+ - - -
682
+ """
683
+ return pulumi.get(self, "backup_plan_association_id")
684
+
685
+ @property
686
+ @pulumi.getter(name="createTime")
687
+ def create_time(self) -> pulumi.Output[str]:
688
+ """
689
+ The time when the instance was created
690
+ """
691
+ return pulumi.get(self, "create_time")
692
+
693
+ @property
694
+ @pulumi.getter(name="dataSource")
695
+ def data_source(self) -> pulumi.Output[str]:
696
+ """
697
+ Resource name of data source which will be used as storage location for backups taken
698
+ """
699
+ return pulumi.get(self, "data_source")
700
+
701
+ @property
702
+ @pulumi.getter(name="lastSuccessfulBackupConsistencyTime")
703
+ def last_successful_backup_consistency_time(self) -> pulumi.Output[str]:
704
+ """
705
+ The point in time when the last successful backup was captured from the source
706
+ """
707
+ return pulumi.get(self, "last_successful_backup_consistency_time")
708
+
709
+ @property
710
+ @pulumi.getter
711
+ def location(self) -> pulumi.Output[str]:
712
+ """
713
+ The location for the backupplan association
714
+ """
715
+ return pulumi.get(self, "location")
716
+
717
+ @property
718
+ @pulumi.getter
719
+ def name(self) -> pulumi.Output[str]:
720
+ """
721
+ The name of backup plan association resource created
722
+ """
723
+ return pulumi.get(self, "name")
724
+
725
+ @property
726
+ @pulumi.getter
727
+ def project(self) -> pulumi.Output[str]:
728
+ """
729
+ The ID of the project in which the resource belongs.
730
+ If it is not provided, the provider project is used.
731
+ """
732
+ return pulumi.get(self, "project")
733
+
734
+ @property
735
+ @pulumi.getter
736
+ def resource(self) -> pulumi.Output[str]:
737
+ """
738
+ The resource for which BPA needs to be created
739
+ """
740
+ return pulumi.get(self, "resource")
741
+
742
+ @property
743
+ @pulumi.getter(name="resourceType")
744
+ def resource_type(self) -> pulumi.Output[str]:
745
+ """
746
+ The resource type of workload on which backupplan is applied
747
+ """
748
+ return pulumi.get(self, "resource_type")
749
+
750
+ @property
751
+ @pulumi.getter(name="rulesConfigInfos")
752
+ def rules_config_infos(self) -> pulumi.Output[Sequence['outputs.BackupPlanAssociationRulesConfigInfo']]:
753
+ """
754
+ Message for rules config info
755
+ Structure is documented below.
756
+ """
757
+ return pulumi.get(self, "rules_config_infos")
758
+
759
+ @property
760
+ @pulumi.getter(name="updateTime")
761
+ def update_time(self) -> pulumi.Output[str]:
762
+ """
763
+ The time when the instance was updated.
764
+ """
765
+ return pulumi.get(self, "update_time")
766
+