pulumi-gcp 8.3.0a1726834947__py3-none-any.whl → 8.3.0a1727226164__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 (76) hide show
  1. pulumi_gcp/__init__.py +120 -0
  2. pulumi_gcp/alloydb/_inputs.py +20 -0
  3. pulumi_gcp/alloydb/instance.py +36 -0
  4. pulumi_gcp/alloydb/outputs.py +14 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +1400 -0
  7. pulumi_gcp/compute/attached_disk.py +103 -0
  8. pulumi_gcp/compute/backend_service.py +29 -22
  9. pulumi_gcp/compute/firewall_policy_with_rules.py +769 -0
  10. pulumi_gcp/compute/outputs.py +1019 -0
  11. pulumi_gcp/compute/region_backend_service.py +29 -22
  12. pulumi_gcp/compute/router_nat.py +27 -66
  13. pulumi_gcp/config/__init__.pyi +2 -0
  14. pulumi_gcp/config/vars.py +4 -0
  15. pulumi_gcp/container/_inputs.py +72 -99
  16. pulumi_gcp/container/outputs.py +53 -70
  17. pulumi_gcp/databasemigrationservice/__init__.py +1 -0
  18. pulumi_gcp/databasemigrationservice/_inputs.py +362 -0
  19. pulumi_gcp/databasemigrationservice/migration_job.py +1739 -0
  20. pulumi_gcp/databasemigrationservice/outputs.py +268 -0
  21. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  22. pulumi_gcp/dataproc/metastore_service.py +93 -0
  23. pulumi_gcp/developerconnect/_inputs.py +42 -39
  24. pulumi_gcp/developerconnect/connection.py +86 -83
  25. pulumi_gcp/developerconnect/outputs.py +28 -26
  26. pulumi_gcp/discoveryengine/__init__.py +1 -0
  27. pulumi_gcp/discoveryengine/_inputs.py +131 -0
  28. pulumi_gcp/discoveryengine/outputs.py +131 -0
  29. pulumi_gcp/discoveryengine/target_site.py +870 -0
  30. pulumi_gcp/dns/managed_zone.py +1 -1
  31. pulumi_gcp/filestore/get_instance.py +21 -1
  32. pulumi_gcp/filestore/instance.py +94 -0
  33. pulumi_gcp/gkehub/feature_membership.py +140 -62
  34. pulumi_gcp/healthcare/__init__.py +1 -0
  35. pulumi_gcp/healthcare/_inputs.py +39 -0
  36. pulumi_gcp/healthcare/outputs.py +40 -0
  37. pulumi_gcp/healthcare/workspace.py +465 -0
  38. pulumi_gcp/looker/instance.py +81 -0
  39. pulumi_gcp/netapp/_inputs.py +63 -0
  40. pulumi_gcp/netapp/outputs.py +57 -0
  41. pulumi_gcp/netapp/storage_pool.py +54 -0
  42. pulumi_gcp/netapp/volume.py +82 -0
  43. pulumi_gcp/provider.py +20 -0
  44. pulumi_gcp/pubsub/subscription.py +43 -7
  45. pulumi_gcp/pulumi-plugin.json +1 -1
  46. pulumi_gcp/secretmanager/__init__.py +8 -0
  47. pulumi_gcp/secretmanager/_inputs.py +308 -0
  48. pulumi_gcp/secretmanager/get_regional_secret.py +279 -0
  49. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +173 -0
  50. pulumi_gcp/secretmanager/get_regional_secret_version.py +241 -0
  51. pulumi_gcp/secretmanager/outputs.py +336 -0
  52. pulumi_gcp/secretmanager/regional_secret.py +1433 -0
  53. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +1082 -0
  54. pulumi_gcp/secretmanager/regional_secret_iam_member.py +1082 -0
  55. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +901 -0
  56. pulumi_gcp/secretmanager/regional_secret_version.py +753 -0
  57. pulumi_gcp/securitycenter/__init__.py +4 -0
  58. pulumi_gcp/securitycenter/folder_scc_big_query_export.py +795 -0
  59. pulumi_gcp/securitycenter/organization_scc_big_query_export.py +738 -0
  60. pulumi_gcp/securitycenter/project_scc_big_query_export.py +749 -0
  61. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +862 -0
  62. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +6 -2
  63. pulumi_gcp/siteverification/__init__.py +3 -0
  64. pulumi_gcp/siteverification/_inputs.py +85 -0
  65. pulumi_gcp/siteverification/outputs.py +57 -0
  66. pulumi_gcp/siteverification/web_resource.py +398 -0
  67. pulumi_gcp/spanner/__init__.py +1 -0
  68. pulumi_gcp/spanner/_inputs.py +129 -0
  69. pulumi_gcp/spanner/backup_schedule.py +748 -0
  70. pulumi_gcp/spanner/get_instance.py +11 -1
  71. pulumi_gcp/spanner/instance.py +56 -0
  72. pulumi_gcp/spanner/outputs.py +93 -0
  73. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/METADATA +1 -1
  74. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/RECORD +76 -56
  75. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-8.3.0a1726834947.dist-info → pulumi_gcp-8.3.0a1727226164.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,748 @@
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__ = ['BackupScheduleArgs', 'BackupSchedule']
20
+
21
+ @pulumi.input_type
22
+ class BackupScheduleArgs:
23
+ def __init__(__self__, *,
24
+ database: pulumi.Input[str],
25
+ instance: pulumi.Input[str],
26
+ retention_duration: pulumi.Input[str],
27
+ full_backup_spec: Optional[pulumi.Input['BackupScheduleFullBackupSpecArgs']] = None,
28
+ incremental_backup_spec: Optional[pulumi.Input['BackupScheduleIncrementalBackupSpecArgs']] = None,
29
+ name: Optional[pulumi.Input[str]] = None,
30
+ project: Optional[pulumi.Input[str]] = None,
31
+ spec: Optional[pulumi.Input['BackupScheduleSpecArgs']] = None):
32
+ """
33
+ The set of arguments for constructing a BackupSchedule resource.
34
+ :param pulumi.Input[str] database: The database to create the backup schedule on.
35
+
36
+
37
+ - - -
38
+ :param pulumi.Input[str] instance: The instance to create the database on.
39
+ :param pulumi.Input[str] retention_duration: At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
40
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
41
+ You can set this to a value up to 366 days.
42
+ :param pulumi.Input['BackupScheduleFullBackupSpecArgs'] full_backup_spec: The schedule creates only full backups..
43
+ :param pulumi.Input['BackupScheduleIncrementalBackupSpecArgs'] incremental_backup_spec: The schedule creates incremental backup chains.
44
+ :param pulumi.Input[str] name: A unique identifier for the backup schedule, which cannot be changed after
45
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
46
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
47
+ If it is not provided, the provider project is used.
48
+ :param pulumi.Input['BackupScheduleSpecArgs'] spec: Defines specifications of the backup schedule.
49
+ Structure is documented below.
50
+ """
51
+ pulumi.set(__self__, "database", database)
52
+ pulumi.set(__self__, "instance", instance)
53
+ pulumi.set(__self__, "retention_duration", retention_duration)
54
+ if full_backup_spec is not None:
55
+ pulumi.set(__self__, "full_backup_spec", full_backup_spec)
56
+ if incremental_backup_spec is not None:
57
+ pulumi.set(__self__, "incremental_backup_spec", incremental_backup_spec)
58
+ if name is not None:
59
+ pulumi.set(__self__, "name", name)
60
+ if project is not None:
61
+ pulumi.set(__self__, "project", project)
62
+ if spec is not None:
63
+ pulumi.set(__self__, "spec", spec)
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def database(self) -> pulumi.Input[str]:
68
+ """
69
+ The database to create the backup schedule on.
70
+
71
+
72
+ - - -
73
+ """
74
+ return pulumi.get(self, "database")
75
+
76
+ @database.setter
77
+ def database(self, value: pulumi.Input[str]):
78
+ pulumi.set(self, "database", value)
79
+
80
+ @property
81
+ @pulumi.getter
82
+ def instance(self) -> pulumi.Input[str]:
83
+ """
84
+ The instance to create the database on.
85
+ """
86
+ return pulumi.get(self, "instance")
87
+
88
+ @instance.setter
89
+ def instance(self, value: pulumi.Input[str]):
90
+ pulumi.set(self, "instance", value)
91
+
92
+ @property
93
+ @pulumi.getter(name="retentionDuration")
94
+ def retention_duration(self) -> pulumi.Input[str]:
95
+ """
96
+ At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
97
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
98
+ You can set this to a value up to 366 days.
99
+ """
100
+ return pulumi.get(self, "retention_duration")
101
+
102
+ @retention_duration.setter
103
+ def retention_duration(self, value: pulumi.Input[str]):
104
+ pulumi.set(self, "retention_duration", value)
105
+
106
+ @property
107
+ @pulumi.getter(name="fullBackupSpec")
108
+ def full_backup_spec(self) -> Optional[pulumi.Input['BackupScheduleFullBackupSpecArgs']]:
109
+ """
110
+ The schedule creates only full backups..
111
+ """
112
+ return pulumi.get(self, "full_backup_spec")
113
+
114
+ @full_backup_spec.setter
115
+ def full_backup_spec(self, value: Optional[pulumi.Input['BackupScheduleFullBackupSpecArgs']]):
116
+ pulumi.set(self, "full_backup_spec", value)
117
+
118
+ @property
119
+ @pulumi.getter(name="incrementalBackupSpec")
120
+ def incremental_backup_spec(self) -> Optional[pulumi.Input['BackupScheduleIncrementalBackupSpecArgs']]:
121
+ """
122
+ The schedule creates incremental backup chains.
123
+ """
124
+ return pulumi.get(self, "incremental_backup_spec")
125
+
126
+ @incremental_backup_spec.setter
127
+ def incremental_backup_spec(self, value: Optional[pulumi.Input['BackupScheduleIncrementalBackupSpecArgs']]):
128
+ pulumi.set(self, "incremental_backup_spec", value)
129
+
130
+ @property
131
+ @pulumi.getter
132
+ def name(self) -> Optional[pulumi.Input[str]]:
133
+ """
134
+ A unique identifier for the backup schedule, which cannot be changed after
135
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
136
+ """
137
+ return pulumi.get(self, "name")
138
+
139
+ @name.setter
140
+ def name(self, value: Optional[pulumi.Input[str]]):
141
+ pulumi.set(self, "name", value)
142
+
143
+ @property
144
+ @pulumi.getter
145
+ def project(self) -> Optional[pulumi.Input[str]]:
146
+ """
147
+ The ID of the project in which the resource belongs.
148
+ If it is not provided, the provider project is used.
149
+ """
150
+ return pulumi.get(self, "project")
151
+
152
+ @project.setter
153
+ def project(self, value: Optional[pulumi.Input[str]]):
154
+ pulumi.set(self, "project", value)
155
+
156
+ @property
157
+ @pulumi.getter
158
+ def spec(self) -> Optional[pulumi.Input['BackupScheduleSpecArgs']]:
159
+ """
160
+ Defines specifications of the backup schedule.
161
+ Structure is documented below.
162
+ """
163
+ return pulumi.get(self, "spec")
164
+
165
+ @spec.setter
166
+ def spec(self, value: Optional[pulumi.Input['BackupScheduleSpecArgs']]):
167
+ pulumi.set(self, "spec", value)
168
+
169
+
170
+ @pulumi.input_type
171
+ class _BackupScheduleState:
172
+ def __init__(__self__, *,
173
+ database: Optional[pulumi.Input[str]] = None,
174
+ full_backup_spec: Optional[pulumi.Input['BackupScheduleFullBackupSpecArgs']] = None,
175
+ incremental_backup_spec: Optional[pulumi.Input['BackupScheduleIncrementalBackupSpecArgs']] = None,
176
+ instance: Optional[pulumi.Input[str]] = None,
177
+ name: Optional[pulumi.Input[str]] = None,
178
+ project: Optional[pulumi.Input[str]] = None,
179
+ retention_duration: Optional[pulumi.Input[str]] = None,
180
+ spec: Optional[pulumi.Input['BackupScheduleSpecArgs']] = None):
181
+ """
182
+ Input properties used for looking up and filtering BackupSchedule resources.
183
+ :param pulumi.Input[str] database: The database to create the backup schedule on.
184
+
185
+
186
+ - - -
187
+ :param pulumi.Input['BackupScheduleFullBackupSpecArgs'] full_backup_spec: The schedule creates only full backups..
188
+ :param pulumi.Input['BackupScheduleIncrementalBackupSpecArgs'] incremental_backup_spec: The schedule creates incremental backup chains.
189
+ :param pulumi.Input[str] instance: The instance to create the database on.
190
+ :param pulumi.Input[str] name: A unique identifier for the backup schedule, which cannot be changed after
191
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
192
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
193
+ If it is not provided, the provider project is used.
194
+ :param pulumi.Input[str] retention_duration: At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
195
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
196
+ You can set this to a value up to 366 days.
197
+ :param pulumi.Input['BackupScheduleSpecArgs'] spec: Defines specifications of the backup schedule.
198
+ Structure is documented below.
199
+ """
200
+ if database is not None:
201
+ pulumi.set(__self__, "database", database)
202
+ if full_backup_spec is not None:
203
+ pulumi.set(__self__, "full_backup_spec", full_backup_spec)
204
+ if incremental_backup_spec is not None:
205
+ pulumi.set(__self__, "incremental_backup_spec", incremental_backup_spec)
206
+ if instance is not None:
207
+ pulumi.set(__self__, "instance", instance)
208
+ if name is not None:
209
+ pulumi.set(__self__, "name", name)
210
+ if project is not None:
211
+ pulumi.set(__self__, "project", project)
212
+ if retention_duration is not None:
213
+ pulumi.set(__self__, "retention_duration", retention_duration)
214
+ if spec is not None:
215
+ pulumi.set(__self__, "spec", spec)
216
+
217
+ @property
218
+ @pulumi.getter
219
+ def database(self) -> Optional[pulumi.Input[str]]:
220
+ """
221
+ The database to create the backup schedule on.
222
+
223
+
224
+ - - -
225
+ """
226
+ return pulumi.get(self, "database")
227
+
228
+ @database.setter
229
+ def database(self, value: Optional[pulumi.Input[str]]):
230
+ pulumi.set(self, "database", value)
231
+
232
+ @property
233
+ @pulumi.getter(name="fullBackupSpec")
234
+ def full_backup_spec(self) -> Optional[pulumi.Input['BackupScheduleFullBackupSpecArgs']]:
235
+ """
236
+ The schedule creates only full backups..
237
+ """
238
+ return pulumi.get(self, "full_backup_spec")
239
+
240
+ @full_backup_spec.setter
241
+ def full_backup_spec(self, value: Optional[pulumi.Input['BackupScheduleFullBackupSpecArgs']]):
242
+ pulumi.set(self, "full_backup_spec", value)
243
+
244
+ @property
245
+ @pulumi.getter(name="incrementalBackupSpec")
246
+ def incremental_backup_spec(self) -> Optional[pulumi.Input['BackupScheduleIncrementalBackupSpecArgs']]:
247
+ """
248
+ The schedule creates incremental backup chains.
249
+ """
250
+ return pulumi.get(self, "incremental_backup_spec")
251
+
252
+ @incremental_backup_spec.setter
253
+ def incremental_backup_spec(self, value: Optional[pulumi.Input['BackupScheduleIncrementalBackupSpecArgs']]):
254
+ pulumi.set(self, "incremental_backup_spec", value)
255
+
256
+ @property
257
+ @pulumi.getter
258
+ def instance(self) -> Optional[pulumi.Input[str]]:
259
+ """
260
+ The instance to create the database on.
261
+ """
262
+ return pulumi.get(self, "instance")
263
+
264
+ @instance.setter
265
+ def instance(self, value: Optional[pulumi.Input[str]]):
266
+ pulumi.set(self, "instance", value)
267
+
268
+ @property
269
+ @pulumi.getter
270
+ def name(self) -> Optional[pulumi.Input[str]]:
271
+ """
272
+ A unique identifier for the backup schedule, which cannot be changed after
273
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
274
+ """
275
+ return pulumi.get(self, "name")
276
+
277
+ @name.setter
278
+ def name(self, value: Optional[pulumi.Input[str]]):
279
+ pulumi.set(self, "name", value)
280
+
281
+ @property
282
+ @pulumi.getter
283
+ def project(self) -> Optional[pulumi.Input[str]]:
284
+ """
285
+ The ID of the project in which the resource belongs.
286
+ If it is not provided, the provider project is used.
287
+ """
288
+ return pulumi.get(self, "project")
289
+
290
+ @project.setter
291
+ def project(self, value: Optional[pulumi.Input[str]]):
292
+ pulumi.set(self, "project", value)
293
+
294
+ @property
295
+ @pulumi.getter(name="retentionDuration")
296
+ def retention_duration(self) -> Optional[pulumi.Input[str]]:
297
+ """
298
+ At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
299
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
300
+ You can set this to a value up to 366 days.
301
+ """
302
+ return pulumi.get(self, "retention_duration")
303
+
304
+ @retention_duration.setter
305
+ def retention_duration(self, value: Optional[pulumi.Input[str]]):
306
+ pulumi.set(self, "retention_duration", value)
307
+
308
+ @property
309
+ @pulumi.getter
310
+ def spec(self) -> Optional[pulumi.Input['BackupScheduleSpecArgs']]:
311
+ """
312
+ Defines specifications of the backup schedule.
313
+ Structure is documented below.
314
+ """
315
+ return pulumi.get(self, "spec")
316
+
317
+ @spec.setter
318
+ def spec(self, value: Optional[pulumi.Input['BackupScheduleSpecArgs']]):
319
+ pulumi.set(self, "spec", value)
320
+
321
+
322
+ class BackupSchedule(pulumi.CustomResource):
323
+ @overload
324
+ def __init__(__self__,
325
+ resource_name: str,
326
+ opts: Optional[pulumi.ResourceOptions] = None,
327
+ database: Optional[pulumi.Input[str]] = None,
328
+ full_backup_spec: Optional[pulumi.Input[Union['BackupScheduleFullBackupSpecArgs', 'BackupScheduleFullBackupSpecArgsDict']]] = None,
329
+ incremental_backup_spec: Optional[pulumi.Input[Union['BackupScheduleIncrementalBackupSpecArgs', 'BackupScheduleIncrementalBackupSpecArgsDict']]] = None,
330
+ instance: Optional[pulumi.Input[str]] = None,
331
+ name: Optional[pulumi.Input[str]] = None,
332
+ project: Optional[pulumi.Input[str]] = None,
333
+ retention_duration: Optional[pulumi.Input[str]] = None,
334
+ spec: Optional[pulumi.Input[Union['BackupScheduleSpecArgs', 'BackupScheduleSpecArgsDict']]] = None,
335
+ __props__=None):
336
+ """
337
+ A backup schedule for a Cloud Spanner Database.
338
+ This resource is owned by the database it is backing up, and is deleted along with the database.
339
+ The actual backups are not though.
340
+
341
+ To get more information about BackupSchedule, see:
342
+
343
+ * [API documentation](https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances.databases.backupSchedules)
344
+ * How-to Guides
345
+ * [Official Documentation](https://cloud.google.com/spanner/docs/backup)
346
+
347
+ > **Warning:** This resource creates a Spanner Backup Schedule on a project that already has
348
+ a Spanner database.
349
+ This resource is owned by the database it is backing up, and is deleted along
350
+ with the database. The actual backups are not though.
351
+
352
+ ## Example Usage
353
+
354
+ ### Spanner Backup Schedule Daily Full
355
+
356
+ ```python
357
+ import pulumi
358
+ import pulumi_gcp as gcp
359
+
360
+ main = gcp.spanner.Instance("main",
361
+ name="instance-id",
362
+ config="regional-europe-west1",
363
+ display_name="main-instance",
364
+ num_nodes=1)
365
+ database = gcp.spanner.Database("database",
366
+ instance=main.name,
367
+ name="database-id",
368
+ version_retention_period="3d",
369
+ ddls=[
370
+ "CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)",
371
+ "CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)",
372
+ ],
373
+ deletion_protection=True)
374
+ full_backup = gcp.spanner.BackupSchedule("full-backup",
375
+ instance=main.name,
376
+ database=database.name,
377
+ name="backup-schedule-id",
378
+ retention_duration="31620000s",
379
+ spec={
380
+ "cron_spec": {
381
+ "text": "0 12 * * *",
382
+ },
383
+ },
384
+ full_backup_spec={})
385
+ ```
386
+ ### Spanner Backup Schedule Daily Incremental
387
+
388
+ ```python
389
+ import pulumi
390
+ import pulumi_gcp as gcp
391
+
392
+ main = gcp.spanner.Instance("main",
393
+ name="instance-id",
394
+ config="regional-europe-west1",
395
+ display_name="main-instance",
396
+ num_nodes=1)
397
+ database = gcp.spanner.Database("database",
398
+ instance=main.name,
399
+ name="database-id",
400
+ version_retention_period="3d",
401
+ ddls=[
402
+ "CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)",
403
+ "CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)",
404
+ ],
405
+ deletion_protection=True)
406
+ incremental_backup = gcp.spanner.BackupSchedule("incremental-backup",
407
+ instance=main.name,
408
+ database=database.name,
409
+ name="backup-schedule-id",
410
+ retention_duration="31620000s",
411
+ spec={
412
+ "cron_spec": {
413
+ "text": "0 12 * * *",
414
+ },
415
+ },
416
+ incremental_backup_spec={})
417
+ ```
418
+
419
+ ## Import
420
+
421
+ BackupSchedule can be imported using any of these accepted formats:
422
+
423
+ * `projects/{{project}}/instances/{{instance}}/databases/{{database}}/backupSchedules/{{name}}`
424
+
425
+ * `{{project}}/{{instance}}/{{database}}/{{name}}`
426
+
427
+ * `{{instance}}/{{database}}/{{name}}`
428
+
429
+ When using the `pulumi import` command, BackupSchedule can be imported using one of the formats above. For example:
430
+
431
+ ```sh
432
+ $ pulumi import gcp:spanner/backupSchedule:BackupSchedule default projects/{{project}}/instances/{{instance}}/databases/{{database}}/backupSchedules/{{name}}
433
+ ```
434
+
435
+ ```sh
436
+ $ pulumi import gcp:spanner/backupSchedule:BackupSchedule default {{project}}/{{instance}}/{{database}}/{{name}}
437
+ ```
438
+
439
+ ```sh
440
+ $ pulumi import gcp:spanner/backupSchedule:BackupSchedule default {{instance}}/{{database}}/{{name}}
441
+ ```
442
+
443
+ :param str resource_name: The name of the resource.
444
+ :param pulumi.ResourceOptions opts: Options for the resource.
445
+ :param pulumi.Input[str] database: The database to create the backup schedule on.
446
+
447
+
448
+ - - -
449
+ :param pulumi.Input[Union['BackupScheduleFullBackupSpecArgs', 'BackupScheduleFullBackupSpecArgsDict']] full_backup_spec: The schedule creates only full backups..
450
+ :param pulumi.Input[Union['BackupScheduleIncrementalBackupSpecArgs', 'BackupScheduleIncrementalBackupSpecArgsDict']] incremental_backup_spec: The schedule creates incremental backup chains.
451
+ :param pulumi.Input[str] instance: The instance to create the database on.
452
+ :param pulumi.Input[str] name: A unique identifier for the backup schedule, which cannot be changed after
453
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
454
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
455
+ If it is not provided, the provider project is used.
456
+ :param pulumi.Input[str] retention_duration: At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
457
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
458
+ You can set this to a value up to 366 days.
459
+ :param pulumi.Input[Union['BackupScheduleSpecArgs', 'BackupScheduleSpecArgsDict']] spec: Defines specifications of the backup schedule.
460
+ Structure is documented below.
461
+ """
462
+ ...
463
+ @overload
464
+ def __init__(__self__,
465
+ resource_name: str,
466
+ args: BackupScheduleArgs,
467
+ opts: Optional[pulumi.ResourceOptions] = None):
468
+ """
469
+ A backup schedule for a Cloud Spanner Database.
470
+ This resource is owned by the database it is backing up, and is deleted along with the database.
471
+ The actual backups are not though.
472
+
473
+ To get more information about BackupSchedule, see:
474
+
475
+ * [API documentation](https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances.databases.backupSchedules)
476
+ * How-to Guides
477
+ * [Official Documentation](https://cloud.google.com/spanner/docs/backup)
478
+
479
+ > **Warning:** This resource creates a Spanner Backup Schedule on a project that already has
480
+ a Spanner database.
481
+ This resource is owned by the database it is backing up, and is deleted along
482
+ with the database. The actual backups are not though.
483
+
484
+ ## Example Usage
485
+
486
+ ### Spanner Backup Schedule Daily Full
487
+
488
+ ```python
489
+ import pulumi
490
+ import pulumi_gcp as gcp
491
+
492
+ main = gcp.spanner.Instance("main",
493
+ name="instance-id",
494
+ config="regional-europe-west1",
495
+ display_name="main-instance",
496
+ num_nodes=1)
497
+ database = gcp.spanner.Database("database",
498
+ instance=main.name,
499
+ name="database-id",
500
+ version_retention_period="3d",
501
+ ddls=[
502
+ "CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)",
503
+ "CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)",
504
+ ],
505
+ deletion_protection=True)
506
+ full_backup = gcp.spanner.BackupSchedule("full-backup",
507
+ instance=main.name,
508
+ database=database.name,
509
+ name="backup-schedule-id",
510
+ retention_duration="31620000s",
511
+ spec={
512
+ "cron_spec": {
513
+ "text": "0 12 * * *",
514
+ },
515
+ },
516
+ full_backup_spec={})
517
+ ```
518
+ ### Spanner Backup Schedule Daily Incremental
519
+
520
+ ```python
521
+ import pulumi
522
+ import pulumi_gcp as gcp
523
+
524
+ main = gcp.spanner.Instance("main",
525
+ name="instance-id",
526
+ config="regional-europe-west1",
527
+ display_name="main-instance",
528
+ num_nodes=1)
529
+ database = gcp.spanner.Database("database",
530
+ instance=main.name,
531
+ name="database-id",
532
+ version_retention_period="3d",
533
+ ddls=[
534
+ "CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)",
535
+ "CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)",
536
+ ],
537
+ deletion_protection=True)
538
+ incremental_backup = gcp.spanner.BackupSchedule("incremental-backup",
539
+ instance=main.name,
540
+ database=database.name,
541
+ name="backup-schedule-id",
542
+ retention_duration="31620000s",
543
+ spec={
544
+ "cron_spec": {
545
+ "text": "0 12 * * *",
546
+ },
547
+ },
548
+ incremental_backup_spec={})
549
+ ```
550
+
551
+ ## Import
552
+
553
+ BackupSchedule can be imported using any of these accepted formats:
554
+
555
+ * `projects/{{project}}/instances/{{instance}}/databases/{{database}}/backupSchedules/{{name}}`
556
+
557
+ * `{{project}}/{{instance}}/{{database}}/{{name}}`
558
+
559
+ * `{{instance}}/{{database}}/{{name}}`
560
+
561
+ When using the `pulumi import` command, BackupSchedule can be imported using one of the formats above. For example:
562
+
563
+ ```sh
564
+ $ pulumi import gcp:spanner/backupSchedule:BackupSchedule default projects/{{project}}/instances/{{instance}}/databases/{{database}}/backupSchedules/{{name}}
565
+ ```
566
+
567
+ ```sh
568
+ $ pulumi import gcp:spanner/backupSchedule:BackupSchedule default {{project}}/{{instance}}/{{database}}/{{name}}
569
+ ```
570
+
571
+ ```sh
572
+ $ pulumi import gcp:spanner/backupSchedule:BackupSchedule default {{instance}}/{{database}}/{{name}}
573
+ ```
574
+
575
+ :param str resource_name: The name of the resource.
576
+ :param BackupScheduleArgs args: The arguments to use to populate this resource's properties.
577
+ :param pulumi.ResourceOptions opts: Options for the resource.
578
+ """
579
+ ...
580
+ def __init__(__self__, resource_name: str, *args, **kwargs):
581
+ resource_args, opts = _utilities.get_resource_args_opts(BackupScheduleArgs, pulumi.ResourceOptions, *args, **kwargs)
582
+ if resource_args is not None:
583
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
584
+ else:
585
+ __self__._internal_init(resource_name, *args, **kwargs)
586
+
587
+ def _internal_init(__self__,
588
+ resource_name: str,
589
+ opts: Optional[pulumi.ResourceOptions] = None,
590
+ database: Optional[pulumi.Input[str]] = None,
591
+ full_backup_spec: Optional[pulumi.Input[Union['BackupScheduleFullBackupSpecArgs', 'BackupScheduleFullBackupSpecArgsDict']]] = None,
592
+ incremental_backup_spec: Optional[pulumi.Input[Union['BackupScheduleIncrementalBackupSpecArgs', 'BackupScheduleIncrementalBackupSpecArgsDict']]] = None,
593
+ instance: Optional[pulumi.Input[str]] = None,
594
+ name: Optional[pulumi.Input[str]] = None,
595
+ project: Optional[pulumi.Input[str]] = None,
596
+ retention_duration: Optional[pulumi.Input[str]] = None,
597
+ spec: Optional[pulumi.Input[Union['BackupScheduleSpecArgs', 'BackupScheduleSpecArgsDict']]] = None,
598
+ __props__=None):
599
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
600
+ if not isinstance(opts, pulumi.ResourceOptions):
601
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
602
+ if opts.id is None:
603
+ if __props__ is not None:
604
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
605
+ __props__ = BackupScheduleArgs.__new__(BackupScheduleArgs)
606
+
607
+ if database is None and not opts.urn:
608
+ raise TypeError("Missing required property 'database'")
609
+ __props__.__dict__["database"] = database
610
+ __props__.__dict__["full_backup_spec"] = full_backup_spec
611
+ __props__.__dict__["incremental_backup_spec"] = incremental_backup_spec
612
+ if instance is None and not opts.urn:
613
+ raise TypeError("Missing required property 'instance'")
614
+ __props__.__dict__["instance"] = instance
615
+ __props__.__dict__["name"] = name
616
+ __props__.__dict__["project"] = project
617
+ if retention_duration is None and not opts.urn:
618
+ raise TypeError("Missing required property 'retention_duration'")
619
+ __props__.__dict__["retention_duration"] = retention_duration
620
+ __props__.__dict__["spec"] = spec
621
+ super(BackupSchedule, __self__).__init__(
622
+ 'gcp:spanner/backupSchedule:BackupSchedule',
623
+ resource_name,
624
+ __props__,
625
+ opts)
626
+
627
+ @staticmethod
628
+ def get(resource_name: str,
629
+ id: pulumi.Input[str],
630
+ opts: Optional[pulumi.ResourceOptions] = None,
631
+ database: Optional[pulumi.Input[str]] = None,
632
+ full_backup_spec: Optional[pulumi.Input[Union['BackupScheduleFullBackupSpecArgs', 'BackupScheduleFullBackupSpecArgsDict']]] = None,
633
+ incremental_backup_spec: Optional[pulumi.Input[Union['BackupScheduleIncrementalBackupSpecArgs', 'BackupScheduleIncrementalBackupSpecArgsDict']]] = None,
634
+ instance: Optional[pulumi.Input[str]] = None,
635
+ name: Optional[pulumi.Input[str]] = None,
636
+ project: Optional[pulumi.Input[str]] = None,
637
+ retention_duration: Optional[pulumi.Input[str]] = None,
638
+ spec: Optional[pulumi.Input[Union['BackupScheduleSpecArgs', 'BackupScheduleSpecArgsDict']]] = None) -> 'BackupSchedule':
639
+ """
640
+ Get an existing BackupSchedule resource's state with the given name, id, and optional extra
641
+ properties used to qualify the lookup.
642
+
643
+ :param str resource_name: The unique name of the resulting resource.
644
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
645
+ :param pulumi.ResourceOptions opts: Options for the resource.
646
+ :param pulumi.Input[str] database: The database to create the backup schedule on.
647
+
648
+
649
+ - - -
650
+ :param pulumi.Input[Union['BackupScheduleFullBackupSpecArgs', 'BackupScheduleFullBackupSpecArgsDict']] full_backup_spec: The schedule creates only full backups..
651
+ :param pulumi.Input[Union['BackupScheduleIncrementalBackupSpecArgs', 'BackupScheduleIncrementalBackupSpecArgsDict']] incremental_backup_spec: The schedule creates incremental backup chains.
652
+ :param pulumi.Input[str] instance: The instance to create the database on.
653
+ :param pulumi.Input[str] name: A unique identifier for the backup schedule, which cannot be changed after
654
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
655
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
656
+ If it is not provided, the provider project is used.
657
+ :param pulumi.Input[str] retention_duration: At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
658
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
659
+ You can set this to a value up to 366 days.
660
+ :param pulumi.Input[Union['BackupScheduleSpecArgs', 'BackupScheduleSpecArgsDict']] spec: Defines specifications of the backup schedule.
661
+ Structure is documented below.
662
+ """
663
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
664
+
665
+ __props__ = _BackupScheduleState.__new__(_BackupScheduleState)
666
+
667
+ __props__.__dict__["database"] = database
668
+ __props__.__dict__["full_backup_spec"] = full_backup_spec
669
+ __props__.__dict__["incremental_backup_spec"] = incremental_backup_spec
670
+ __props__.__dict__["instance"] = instance
671
+ __props__.__dict__["name"] = name
672
+ __props__.__dict__["project"] = project
673
+ __props__.__dict__["retention_duration"] = retention_duration
674
+ __props__.__dict__["spec"] = spec
675
+ return BackupSchedule(resource_name, opts=opts, __props__=__props__)
676
+
677
+ @property
678
+ @pulumi.getter
679
+ def database(self) -> pulumi.Output[str]:
680
+ """
681
+ The database to create the backup schedule on.
682
+
683
+
684
+ - - -
685
+ """
686
+ return pulumi.get(self, "database")
687
+
688
+ @property
689
+ @pulumi.getter(name="fullBackupSpec")
690
+ def full_backup_spec(self) -> pulumi.Output[Optional['outputs.BackupScheduleFullBackupSpec']]:
691
+ """
692
+ The schedule creates only full backups..
693
+ """
694
+ return pulumi.get(self, "full_backup_spec")
695
+
696
+ @property
697
+ @pulumi.getter(name="incrementalBackupSpec")
698
+ def incremental_backup_spec(self) -> pulumi.Output[Optional['outputs.BackupScheduleIncrementalBackupSpec']]:
699
+ """
700
+ The schedule creates incremental backup chains.
701
+ """
702
+ return pulumi.get(self, "incremental_backup_spec")
703
+
704
+ @property
705
+ @pulumi.getter
706
+ def instance(self) -> pulumi.Output[str]:
707
+ """
708
+ The instance to create the database on.
709
+ """
710
+ return pulumi.get(self, "instance")
711
+
712
+ @property
713
+ @pulumi.getter
714
+ def name(self) -> pulumi.Output[str]:
715
+ """
716
+ A unique identifier for the backup schedule, which cannot be changed after
717
+ the backup schedule is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
718
+ """
719
+ return pulumi.get(self, "name")
720
+
721
+ @property
722
+ @pulumi.getter
723
+ def project(self) -> pulumi.Output[str]:
724
+ """
725
+ The ID of the project in which the resource belongs.
726
+ If it is not provided, the provider project is used.
727
+ """
728
+ return pulumi.get(self, "project")
729
+
730
+ @property
731
+ @pulumi.getter(name="retentionDuration")
732
+ def retention_duration(self) -> pulumi.Output[str]:
733
+ """
734
+ At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
735
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.
736
+ You can set this to a value up to 366 days.
737
+ """
738
+ return pulumi.get(self, "retention_duration")
739
+
740
+ @property
741
+ @pulumi.getter
742
+ def spec(self) -> pulumi.Output[Optional['outputs.BackupScheduleSpec']]:
743
+ """
744
+ Defines specifications of the backup schedule.
745
+ Structure is documented below.
746
+ """
747
+ return pulumi.get(self, "spec")
748
+