pulumi-gcp 8.39.0a1752907636__py3-none-any.whl → 8.39.0a1753206228__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 (36) hide show
  1. pulumi_gcp/__init__.py +16 -0
  2. pulumi_gcp/apigee/_inputs.py +62 -0
  3. pulumi_gcp/apigee/instance.py +63 -0
  4. pulumi_gcp/apigee/outputs.py +37 -0
  5. pulumi_gcp/backupdisasterrecovery/__init__.py +1 -0
  6. pulumi_gcp/backupdisasterrecovery/service_config.py +297 -0
  7. pulumi_gcp/bigqueryanalyticshub/__init__.py +1 -0
  8. pulumi_gcp/bigqueryanalyticshub/_inputs.py +355 -0
  9. pulumi_gcp/bigqueryanalyticshub/data_exchange_subscription.py +1082 -0
  10. pulumi_gcp/bigqueryanalyticshub/listing.py +116 -0
  11. pulumi_gcp/bigqueryanalyticshub/outputs.py +287 -0
  12. pulumi_gcp/compute/__init__.py +1 -0
  13. pulumi_gcp/compute/_inputs.py +699 -19
  14. pulumi_gcp/compute/firewall.py +54 -0
  15. pulumi_gcp/compute/future_reservation.py +124 -0
  16. pulumi_gcp/compute/get_network_attachment.py +288 -0
  17. pulumi_gcp/compute/get_region_disk.py +23 -1
  18. pulumi_gcp/compute/get_reservation.py +45 -1
  19. pulumi_gcp/compute/interconnect.py +108 -0
  20. pulumi_gcp/compute/outputs.py +734 -15
  21. pulumi_gcp/compute/region_disk.py +115 -0
  22. pulumi_gcp/compute/reservation.py +449 -0
  23. pulumi_gcp/firebase/hosting_site.py +50 -2
  24. pulumi_gcp/firestore/__init__.py +1 -0
  25. pulumi_gcp/firestore/database.py +117 -1
  26. pulumi_gcp/firestore/get_document.py +234 -0
  27. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +12 -0
  28. pulumi_gcp/networksecurity/backend_authentication_config.py +12 -0
  29. pulumi_gcp/pulumi-plugin.json +1 -1
  30. pulumi_gcp/storage/bucket_object.py +47 -0
  31. pulumi_gcp/storage/get_bucket_object.py +12 -1
  32. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  33. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/METADATA +1 -1
  34. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/RECORD +36 -32
  35. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/WHEEL +0 -0
  36. {pulumi_gcp-8.39.0a1752907636.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/top_level.txt +0 -0
@@ -24,9 +24,13 @@ class ReservationArgs:
24
24
  def __init__(__self__, *,
25
25
  specific_reservation: pulumi.Input['ReservationSpecificReservationArgs'],
26
26
  zone: pulumi.Input[builtins.str],
27
+ delete_after_duration: Optional[pulumi.Input['ReservationDeleteAfterDurationArgs']] = None,
28
+ delete_at_time: Optional[pulumi.Input[builtins.str]] = None,
27
29
  description: Optional[pulumi.Input[builtins.str]] = None,
30
+ enable_emergent_maintenance: Optional[pulumi.Input[builtins.bool]] = None,
28
31
  name: Optional[pulumi.Input[builtins.str]] = None,
29
32
  project: Optional[pulumi.Input[builtins.str]] = None,
33
+ reservation_sharing_policy: Optional[pulumi.Input['ReservationReservationSharingPolicyArgs']] = None,
30
34
  share_settings: Optional[pulumi.Input['ReservationShareSettingsArgs']] = None,
31
35
  specific_reservation_required: Optional[pulumi.Input[builtins.bool]] = None):
32
36
  """
@@ -34,7 +38,12 @@ class ReservationArgs:
34
38
  :param pulumi.Input['ReservationSpecificReservationArgs'] specific_reservation: Reservation for instances with specific machine shapes.
35
39
  Structure is documented below.
36
40
  :param pulumi.Input[builtins.str] zone: The zone where the reservation is made.
41
+ :param pulumi.Input['ReservationDeleteAfterDurationArgs'] delete_after_duration: Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
42
+ Structure is documented below.
43
+ :param pulumi.Input[builtins.str] delete_at_time: Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
44
+ Cannot be used with delete_after_duration.
37
45
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
46
+ :param pulumi.Input[builtins.bool] enable_emergent_maintenance: Indicates if this group of VMs have emergent maintenance enabled.
38
47
  :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is
39
48
  created. The name must be 1-63 characters long, and comply with
40
49
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -44,6 +53,8 @@ class ReservationArgs:
44
53
  character, which cannot be a dash.
45
54
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
46
55
  If it is not provided, the provider project is used.
56
+ :param pulumi.Input['ReservationReservationSharingPolicyArgs'] reservation_sharing_policy: Sharing policy for reservations with Google Cloud managed services.
57
+ Structure is documented below.
47
58
  :param pulumi.Input['ReservationShareSettingsArgs'] share_settings: The share setting for reservations.
48
59
  Structure is documented below.
49
60
  :param pulumi.Input[builtins.bool] specific_reservation_required: When set to true, only VMs that target this reservation by name can
@@ -52,12 +63,20 @@ class ReservationArgs:
52
63
  """
53
64
  pulumi.set(__self__, "specific_reservation", specific_reservation)
54
65
  pulumi.set(__self__, "zone", zone)
66
+ if delete_after_duration is not None:
67
+ pulumi.set(__self__, "delete_after_duration", delete_after_duration)
68
+ if delete_at_time is not None:
69
+ pulumi.set(__self__, "delete_at_time", delete_at_time)
55
70
  if description is not None:
56
71
  pulumi.set(__self__, "description", description)
72
+ if enable_emergent_maintenance is not None:
73
+ pulumi.set(__self__, "enable_emergent_maintenance", enable_emergent_maintenance)
57
74
  if name is not None:
58
75
  pulumi.set(__self__, "name", name)
59
76
  if project is not None:
60
77
  pulumi.set(__self__, "project", project)
78
+ if reservation_sharing_policy is not None:
79
+ pulumi.set(__self__, "reservation_sharing_policy", reservation_sharing_policy)
61
80
  if share_settings is not None:
62
81
  pulumi.set(__self__, "share_settings", share_settings)
63
82
  if specific_reservation_required is not None:
@@ -88,6 +107,32 @@ class ReservationArgs:
88
107
  def zone(self, value: pulumi.Input[builtins.str]):
89
108
  pulumi.set(self, "zone", value)
90
109
 
110
+ @property
111
+ @pulumi.getter(name="deleteAfterDuration")
112
+ def delete_after_duration(self) -> Optional[pulumi.Input['ReservationDeleteAfterDurationArgs']]:
113
+ """
114
+ Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
115
+ Structure is documented below.
116
+ """
117
+ return pulumi.get(self, "delete_after_duration")
118
+
119
+ @delete_after_duration.setter
120
+ def delete_after_duration(self, value: Optional[pulumi.Input['ReservationDeleteAfterDurationArgs']]):
121
+ pulumi.set(self, "delete_after_duration", value)
122
+
123
+ @property
124
+ @pulumi.getter(name="deleteAtTime")
125
+ def delete_at_time(self) -> Optional[pulumi.Input[builtins.str]]:
126
+ """
127
+ Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
128
+ Cannot be used with delete_after_duration.
129
+ """
130
+ return pulumi.get(self, "delete_at_time")
131
+
132
+ @delete_at_time.setter
133
+ def delete_at_time(self, value: Optional[pulumi.Input[builtins.str]]):
134
+ pulumi.set(self, "delete_at_time", value)
135
+
91
136
  @property
92
137
  @pulumi.getter
93
138
  def description(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -100,6 +145,18 @@ class ReservationArgs:
100
145
  def description(self, value: Optional[pulumi.Input[builtins.str]]):
101
146
  pulumi.set(self, "description", value)
102
147
 
148
+ @property
149
+ @pulumi.getter(name="enableEmergentMaintenance")
150
+ def enable_emergent_maintenance(self) -> Optional[pulumi.Input[builtins.bool]]:
151
+ """
152
+ Indicates if this group of VMs have emergent maintenance enabled.
153
+ """
154
+ return pulumi.get(self, "enable_emergent_maintenance")
155
+
156
+ @enable_emergent_maintenance.setter
157
+ def enable_emergent_maintenance(self, value: Optional[pulumi.Input[builtins.bool]]):
158
+ pulumi.set(self, "enable_emergent_maintenance", value)
159
+
103
160
  @property
104
161
  @pulumi.getter
105
162
  def name(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -131,6 +188,19 @@ class ReservationArgs:
131
188
  def project(self, value: Optional[pulumi.Input[builtins.str]]):
132
189
  pulumi.set(self, "project", value)
133
190
 
191
+ @property
192
+ @pulumi.getter(name="reservationSharingPolicy")
193
+ def reservation_sharing_policy(self) -> Optional[pulumi.Input['ReservationReservationSharingPolicyArgs']]:
194
+ """
195
+ Sharing policy for reservations with Google Cloud managed services.
196
+ Structure is documented below.
197
+ """
198
+ return pulumi.get(self, "reservation_sharing_policy")
199
+
200
+ @reservation_sharing_policy.setter
201
+ def reservation_sharing_policy(self, value: Optional[pulumi.Input['ReservationReservationSharingPolicyArgs']]):
202
+ pulumi.set(self, "reservation_sharing_policy", value)
203
+
134
204
  @property
135
205
  @pulumi.getter(name="shareSettings")
136
206
  def share_settings(self) -> Optional[pulumi.Input['ReservationShareSettingsArgs']]:
@@ -164,9 +234,13 @@ class _ReservationState:
164
234
  def __init__(__self__, *,
165
235
  commitment: Optional[pulumi.Input[builtins.str]] = None,
166
236
  creation_timestamp: Optional[pulumi.Input[builtins.str]] = None,
237
+ delete_after_duration: Optional[pulumi.Input['ReservationDeleteAfterDurationArgs']] = None,
238
+ delete_at_time: Optional[pulumi.Input[builtins.str]] = None,
167
239
  description: Optional[pulumi.Input[builtins.str]] = None,
240
+ enable_emergent_maintenance: Optional[pulumi.Input[builtins.bool]] = None,
168
241
  name: Optional[pulumi.Input[builtins.str]] = None,
169
242
  project: Optional[pulumi.Input[builtins.str]] = None,
243
+ reservation_sharing_policy: Optional[pulumi.Input['ReservationReservationSharingPolicyArgs']] = None,
170
244
  self_link: Optional[pulumi.Input[builtins.str]] = None,
171
245
  share_settings: Optional[pulumi.Input['ReservationShareSettingsArgs']] = None,
172
246
  specific_reservation: Optional[pulumi.Input['ReservationSpecificReservationArgs']] = None,
@@ -178,7 +252,12 @@ class _ReservationState:
178
252
  :param pulumi.Input[builtins.str] commitment: Full or partial URL to a parent commitment. This field displays for
179
253
  reservations that are tied to a commitment.
180
254
  :param pulumi.Input[builtins.str] creation_timestamp: Creation timestamp in RFC3339 text format.
255
+ :param pulumi.Input['ReservationDeleteAfterDurationArgs'] delete_after_duration: Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
256
+ Structure is documented below.
257
+ :param pulumi.Input[builtins.str] delete_at_time: Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
258
+ Cannot be used with delete_after_duration.
181
259
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
260
+ :param pulumi.Input[builtins.bool] enable_emergent_maintenance: Indicates if this group of VMs have emergent maintenance enabled.
182
261
  :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is
183
262
  created. The name must be 1-63 characters long, and comply with
184
263
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -188,6 +267,8 @@ class _ReservationState:
188
267
  character, which cannot be a dash.
189
268
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
190
269
  If it is not provided, the provider project is used.
270
+ :param pulumi.Input['ReservationReservationSharingPolicyArgs'] reservation_sharing_policy: Sharing policy for reservations with Google Cloud managed services.
271
+ Structure is documented below.
191
272
  :param pulumi.Input[builtins.str] self_link: The URI of the created resource.
192
273
  :param pulumi.Input['ReservationShareSettingsArgs'] share_settings: The share setting for reservations.
193
274
  Structure is documented below.
@@ -203,12 +284,20 @@ class _ReservationState:
203
284
  pulumi.set(__self__, "commitment", commitment)
204
285
  if creation_timestamp is not None:
205
286
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
287
+ if delete_after_duration is not None:
288
+ pulumi.set(__self__, "delete_after_duration", delete_after_duration)
289
+ if delete_at_time is not None:
290
+ pulumi.set(__self__, "delete_at_time", delete_at_time)
206
291
  if description is not None:
207
292
  pulumi.set(__self__, "description", description)
293
+ if enable_emergent_maintenance is not None:
294
+ pulumi.set(__self__, "enable_emergent_maintenance", enable_emergent_maintenance)
208
295
  if name is not None:
209
296
  pulumi.set(__self__, "name", name)
210
297
  if project is not None:
211
298
  pulumi.set(__self__, "project", project)
299
+ if reservation_sharing_policy is not None:
300
+ pulumi.set(__self__, "reservation_sharing_policy", reservation_sharing_policy)
212
301
  if self_link is not None:
213
302
  pulumi.set(__self__, "self_link", self_link)
214
303
  if share_settings is not None:
@@ -247,6 +336,32 @@ class _ReservationState:
247
336
  def creation_timestamp(self, value: Optional[pulumi.Input[builtins.str]]):
248
337
  pulumi.set(self, "creation_timestamp", value)
249
338
 
339
+ @property
340
+ @pulumi.getter(name="deleteAfterDuration")
341
+ def delete_after_duration(self) -> Optional[pulumi.Input['ReservationDeleteAfterDurationArgs']]:
342
+ """
343
+ Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
344
+ Structure is documented below.
345
+ """
346
+ return pulumi.get(self, "delete_after_duration")
347
+
348
+ @delete_after_duration.setter
349
+ def delete_after_duration(self, value: Optional[pulumi.Input['ReservationDeleteAfterDurationArgs']]):
350
+ pulumi.set(self, "delete_after_duration", value)
351
+
352
+ @property
353
+ @pulumi.getter(name="deleteAtTime")
354
+ def delete_at_time(self) -> Optional[pulumi.Input[builtins.str]]:
355
+ """
356
+ Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
357
+ Cannot be used with delete_after_duration.
358
+ """
359
+ return pulumi.get(self, "delete_at_time")
360
+
361
+ @delete_at_time.setter
362
+ def delete_at_time(self, value: Optional[pulumi.Input[builtins.str]]):
363
+ pulumi.set(self, "delete_at_time", value)
364
+
250
365
  @property
251
366
  @pulumi.getter
252
367
  def description(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -259,6 +374,18 @@ class _ReservationState:
259
374
  def description(self, value: Optional[pulumi.Input[builtins.str]]):
260
375
  pulumi.set(self, "description", value)
261
376
 
377
+ @property
378
+ @pulumi.getter(name="enableEmergentMaintenance")
379
+ def enable_emergent_maintenance(self) -> Optional[pulumi.Input[builtins.bool]]:
380
+ """
381
+ Indicates if this group of VMs have emergent maintenance enabled.
382
+ """
383
+ return pulumi.get(self, "enable_emergent_maintenance")
384
+
385
+ @enable_emergent_maintenance.setter
386
+ def enable_emergent_maintenance(self, value: Optional[pulumi.Input[builtins.bool]]):
387
+ pulumi.set(self, "enable_emergent_maintenance", value)
388
+
262
389
  @property
263
390
  @pulumi.getter
264
391
  def name(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -290,6 +417,19 @@ class _ReservationState:
290
417
  def project(self, value: Optional[pulumi.Input[builtins.str]]):
291
418
  pulumi.set(self, "project", value)
292
419
 
420
+ @property
421
+ @pulumi.getter(name="reservationSharingPolicy")
422
+ def reservation_sharing_policy(self) -> Optional[pulumi.Input['ReservationReservationSharingPolicyArgs']]:
423
+ """
424
+ Sharing policy for reservations with Google Cloud managed services.
425
+ Structure is documented below.
426
+ """
427
+ return pulumi.get(self, "reservation_sharing_policy")
428
+
429
+ @reservation_sharing_policy.setter
430
+ def reservation_sharing_policy(self, value: Optional[pulumi.Input['ReservationReservationSharingPolicyArgs']]):
431
+ pulumi.set(self, "reservation_sharing_policy", value)
432
+
293
433
  @property
294
434
  @pulumi.getter(name="selfLink")
295
435
  def self_link(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -373,9 +513,13 @@ class Reservation(pulumi.CustomResource):
373
513
  def __init__(__self__,
374
514
  resource_name: str,
375
515
  opts: Optional[pulumi.ResourceOptions] = None,
516
+ delete_after_duration: Optional[pulumi.Input[Union['ReservationDeleteAfterDurationArgs', 'ReservationDeleteAfterDurationArgsDict']]] = None,
517
+ delete_at_time: Optional[pulumi.Input[builtins.str]] = None,
376
518
  description: Optional[pulumi.Input[builtins.str]] = None,
519
+ enable_emergent_maintenance: Optional[pulumi.Input[builtins.bool]] = None,
377
520
  name: Optional[pulumi.Input[builtins.str]] = None,
378
521
  project: Optional[pulumi.Input[builtins.str]] = None,
522
+ reservation_sharing_policy: Optional[pulumi.Input[Union['ReservationReservationSharingPolicyArgs', 'ReservationReservationSharingPolicyArgsDict']]] = None,
379
523
  share_settings: Optional[pulumi.Input[Union['ReservationShareSettingsArgs', 'ReservationShareSettingsArgsDict']]] = None,
380
524
  specific_reservation: Optional[pulumi.Input[Union['ReservationSpecificReservationArgs', 'ReservationSpecificReservationArgsDict']]] = None,
381
525
  specific_reservation_required: Optional[pulumi.Input[builtins.bool]] = None,
@@ -416,6 +560,126 @@ class Reservation(pulumi.CustomResource):
416
560
  },
417
561
  })
418
562
  ```
563
+ ### Reservation Basic Beta
564
+
565
+ ```python
566
+ import pulumi
567
+ import pulumi_gcp as gcp
568
+
569
+ gce_reservation = gcp.compute.Reservation("gce_reservation",
570
+ name="gce-reservation",
571
+ zone="us-central1-a",
572
+ specific_reservation={
573
+ "count": 1,
574
+ "instance_properties": {
575
+ "min_cpu_platform": "Intel Cascade Lake",
576
+ "machine_type": "n2-standard-2",
577
+ "maintenance_interval": "PERIODIC",
578
+ },
579
+ },
580
+ enable_emergent_maintenance=True)
581
+ ```
582
+ ### Reservation Source Instance Template
583
+
584
+ ```python
585
+ import pulumi
586
+ import pulumi_gcp as gcp
587
+
588
+ my_image = gcp.compute.get_image(family="debian-11",
589
+ project="debian-cloud")
590
+ foobar = gcp.compute.InstanceTemplate("foobar",
591
+ name="tf-test-instance-template",
592
+ machine_type="n2-standard-2",
593
+ can_ip_forward=False,
594
+ tags=[
595
+ "foo",
596
+ "bar",
597
+ ],
598
+ disks=[{
599
+ "source_image": my_image.self_link,
600
+ "auto_delete": True,
601
+ "boot": True,
602
+ }],
603
+ network_interfaces=[{
604
+ "network": "default",
605
+ }],
606
+ scheduling={
607
+ "preemptible": False,
608
+ "automatic_restart": True,
609
+ },
610
+ metadata={
611
+ "foo": "bar",
612
+ },
613
+ service_account={
614
+ "scopes": [
615
+ "userinfo-email",
616
+ "compute-ro",
617
+ "storage-ro",
618
+ ],
619
+ },
620
+ labels={
621
+ "my_label": "foobar",
622
+ })
623
+ gce_reservation_source_instance_template = gcp.compute.Reservation("gce_reservation_source_instance_template",
624
+ name="gce-reservation-source-instance-template",
625
+ zone="us-central1-a",
626
+ specific_reservation={
627
+ "count": 1,
628
+ "source_instance_template": foobar.self_link,
629
+ })
630
+ ```
631
+ ### Reservation Sharing Policy
632
+
633
+ ```python
634
+ import pulumi
635
+ import pulumi_gcp as gcp
636
+
637
+ my_image = gcp.compute.get_image(family="debian-11",
638
+ project="debian-cloud")
639
+ foobar = gcp.compute.InstanceTemplate("foobar",
640
+ name="tf-test-instance-template",
641
+ machine_type="g2-standard-4",
642
+ can_ip_forward=False,
643
+ tags=[
644
+ "foo",
645
+ "bar",
646
+ ],
647
+ disks=[{
648
+ "source_image": my_image.self_link,
649
+ "auto_delete": True,
650
+ "boot": True,
651
+ }],
652
+ network_interfaces=[{
653
+ "network": "default",
654
+ }],
655
+ scheduling={
656
+ "preemptible": False,
657
+ "automatic_restart": True,
658
+ },
659
+ metadata={
660
+ "foo": "bar",
661
+ },
662
+ service_account={
663
+ "scopes": [
664
+ "userinfo-email",
665
+ "compute-ro",
666
+ "storage-ro",
667
+ ],
668
+ },
669
+ labels={
670
+ "my_label": "foobar",
671
+ })
672
+ gce_reservation_sharing_policy = gcp.compute.Reservation("gce_reservation_sharing_policy",
673
+ name="gce-reservation-sharing-policy",
674
+ zone="us-central1-b",
675
+ specific_reservation={
676
+ "count": 2,
677
+ "source_instance_template": foobar.self_link,
678
+ },
679
+ reservation_sharing_policy={
680
+ "service_share_type": "ALLOW_ALL",
681
+ })
682
+ ```
419
683
 
420
684
  ## Import
421
685
 
@@ -449,7 +713,12 @@ class Reservation(pulumi.CustomResource):
449
713
 
450
714
  :param str resource_name: The name of the resource.
451
715
  :param pulumi.ResourceOptions opts: Options for the resource.
716
+ :param pulumi.Input[Union['ReservationDeleteAfterDurationArgs', 'ReservationDeleteAfterDurationArgsDict']] delete_after_duration: Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
717
+ Structure is documented below.
718
+ :param pulumi.Input[builtins.str] delete_at_time: Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
719
+ Cannot be used with delete_after_duration.
452
720
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
721
+ :param pulumi.Input[builtins.bool] enable_emergent_maintenance: Indicates if this group of VMs have emergent maintenance enabled.
453
722
  :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is
454
723
  created. The name must be 1-63 characters long, and comply with
455
724
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -459,6 +728,8 @@ class Reservation(pulumi.CustomResource):
459
728
  character, which cannot be a dash.
460
729
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
461
730
  If it is not provided, the provider project is used.
731
+ :param pulumi.Input[Union['ReservationReservationSharingPolicyArgs', 'ReservationReservationSharingPolicyArgsDict']] reservation_sharing_policy: Sharing policy for reservations with Google Cloud managed services.
732
+ Structure is documented below.
462
733
  :param pulumi.Input[Union['ReservationShareSettingsArgs', 'ReservationShareSettingsArgsDict']] share_settings: The share setting for reservations.
463
734
  Structure is documented below.
464
735
  :param pulumi.Input[Union['ReservationSpecificReservationArgs', 'ReservationSpecificReservationArgsDict']] specific_reservation: Reservation for instances with specific machine shapes.
@@ -509,6 +780,126 @@ class Reservation(pulumi.CustomResource):
509
780
  },
510
781
  })
511
782
  ```
783
+ ### Reservation Basic Beta
784
+
785
+ ```python
786
+ import pulumi
787
+ import pulumi_gcp as gcp
788
+
789
+ gce_reservation = gcp.compute.Reservation("gce_reservation",
790
+ name="gce-reservation",
791
+ zone="us-central1-a",
792
+ specific_reservation={
793
+ "count": 1,
794
+ "instance_properties": {
795
+ "min_cpu_platform": "Intel Cascade Lake",
796
+ "machine_type": "n2-standard-2",
797
+ "maintenance_interval": "PERIODIC",
798
+ },
799
+ },
800
+ enable_emergent_maintenance=True)
801
+ ```
802
+ ### Reservation Source Instance Template
803
+
804
+ ```python
805
+ import pulumi
806
+ import pulumi_gcp as gcp
807
+
808
+ my_image = gcp.compute.get_image(family="debian-11",
809
+ project="debian-cloud")
810
+ foobar = gcp.compute.InstanceTemplate("foobar",
811
+ name="tf-test-instance-template",
812
+ machine_type="n2-standard-2",
813
+ can_ip_forward=False,
814
+ tags=[
815
+ "foo",
816
+ "bar",
817
+ ],
818
+ disks=[{
819
+ "source_image": my_image.self_link,
820
+ "auto_delete": True,
821
+ "boot": True,
822
+ }],
823
+ network_interfaces=[{
824
+ "network": "default",
825
+ }],
826
+ scheduling={
827
+ "preemptible": False,
828
+ "automatic_restart": True,
829
+ },
830
+ metadata={
831
+ "foo": "bar",
832
+ },
833
+ service_account={
834
+ "scopes": [
835
+ "userinfo-email",
836
+ "compute-ro",
837
+ "storage-ro",
838
+ ],
839
+ },
840
+ labels={
841
+ "my_label": "foobar",
842
+ })
843
+ gce_reservation_source_instance_template = gcp.compute.Reservation("gce_reservation_source_instance_template",
844
+ name="gce-reservation-source-instance-template",
845
+ zone="us-central1-a",
846
+ specific_reservation={
847
+ "count": 1,
848
+ "source_instance_template": foobar.self_link,
849
+ })
850
+ ```
851
+ ### Reservation Sharing Policy
852
+
853
+ ```python
854
+ import pulumi
855
+ import pulumi_gcp as gcp
856
+
857
+ my_image = gcp.compute.get_image(family="debian-11",
858
+ project="debian-cloud")
859
+ foobar = gcp.compute.InstanceTemplate("foobar",
860
+ name="tf-test-instance-template",
861
+ machine_type="g2-standard-4",
862
+ can_ip_forward=False,
863
+ tags=[
864
+ "foo",
865
+ "bar",
866
+ ],
867
+ disks=[{
868
+ "source_image": my_image.self_link,
869
+ "auto_delete": True,
870
+ "boot": True,
871
+ }],
872
+ network_interfaces=[{
873
+ "network": "default",
874
+ }],
875
+ scheduling={
876
+ "preemptible": False,
877
+ "automatic_restart": True,
878
+ },
879
+ metadata={
880
+ "foo": "bar",
881
+ },
882
+ service_account={
883
+ "scopes": [
884
+ "userinfo-email",
885
+ "compute-ro",
886
+ "storage-ro",
887
+ ],
888
+ },
889
+ labels={
890
+ "my_label": "foobar",
891
+ })
892
+ gce_reservation_sharing_policy = gcp.compute.Reservation("gce_reservation_sharing_policy",
893
+ name="gce-reservation-sharing-policy",
894
+ zone="us-central1-b",
895
+ specific_reservation={
896
+ "count": 2,
897
+ "source_instance_template": foobar.self_link,
898
+ },
899
+ reservation_sharing_policy={
900
+ "service_share_type": "ALLOW_ALL",
901
+ })
902
+ ```
512
903
 
513
904
  ## Import
514
905
 
@@ -555,9 +946,13 @@ class Reservation(pulumi.CustomResource):
555
946
  def _internal_init(__self__,
556
947
  resource_name: str,
557
948
  opts: Optional[pulumi.ResourceOptions] = None,
949
+ delete_after_duration: Optional[pulumi.Input[Union['ReservationDeleteAfterDurationArgs', 'ReservationDeleteAfterDurationArgsDict']]] = None,
950
+ delete_at_time: Optional[pulumi.Input[builtins.str]] = None,
558
951
  description: Optional[pulumi.Input[builtins.str]] = None,
952
+ enable_emergent_maintenance: Optional[pulumi.Input[builtins.bool]] = None,
559
953
  name: Optional[pulumi.Input[builtins.str]] = None,
560
954
  project: Optional[pulumi.Input[builtins.str]] = None,
955
+ reservation_sharing_policy: Optional[pulumi.Input[Union['ReservationReservationSharingPolicyArgs', 'ReservationReservationSharingPolicyArgsDict']]] = None,
561
956
  share_settings: Optional[pulumi.Input[Union['ReservationShareSettingsArgs', 'ReservationShareSettingsArgsDict']]] = None,
562
957
  specific_reservation: Optional[pulumi.Input[Union['ReservationSpecificReservationArgs', 'ReservationSpecificReservationArgsDict']]] = None,
563
958
  specific_reservation_required: Optional[pulumi.Input[builtins.bool]] = None,
@@ -571,9 +966,13 @@ class Reservation(pulumi.CustomResource):
571
966
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
572
967
  __props__ = ReservationArgs.__new__(ReservationArgs)
573
968
 
969
+ __props__.__dict__["delete_after_duration"] = delete_after_duration
970
+ __props__.__dict__["delete_at_time"] = delete_at_time
574
971
  __props__.__dict__["description"] = description
972
+ __props__.__dict__["enable_emergent_maintenance"] = enable_emergent_maintenance
575
973
  __props__.__dict__["name"] = name
576
974
  __props__.__dict__["project"] = project
975
+ __props__.__dict__["reservation_sharing_policy"] = reservation_sharing_policy
577
976
  __props__.__dict__["share_settings"] = share_settings
578
977
  if specific_reservation is None and not opts.urn:
579
978
  raise TypeError("Missing required property 'specific_reservation'")
@@ -598,9 +997,13 @@ class Reservation(pulumi.CustomResource):
598
997
  opts: Optional[pulumi.ResourceOptions] = None,
599
998
  commitment: Optional[pulumi.Input[builtins.str]] = None,
600
999
  creation_timestamp: Optional[pulumi.Input[builtins.str]] = None,
1000
+ delete_after_duration: Optional[pulumi.Input[Union['ReservationDeleteAfterDurationArgs', 'ReservationDeleteAfterDurationArgsDict']]] = None,
1001
+ delete_at_time: Optional[pulumi.Input[builtins.str]] = None,
601
1002
  description: Optional[pulumi.Input[builtins.str]] = None,
1003
+ enable_emergent_maintenance: Optional[pulumi.Input[builtins.bool]] = None,
602
1004
  name: Optional[pulumi.Input[builtins.str]] = None,
603
1005
  project: Optional[pulumi.Input[builtins.str]] = None,
1006
+ reservation_sharing_policy: Optional[pulumi.Input[Union['ReservationReservationSharingPolicyArgs', 'ReservationReservationSharingPolicyArgsDict']]] = None,
604
1007
  self_link: Optional[pulumi.Input[builtins.str]] = None,
605
1008
  share_settings: Optional[pulumi.Input[Union['ReservationShareSettingsArgs', 'ReservationShareSettingsArgsDict']]] = None,
606
1009
  specific_reservation: Optional[pulumi.Input[Union['ReservationSpecificReservationArgs', 'ReservationSpecificReservationArgsDict']]] = None,
@@ -617,7 +1020,12 @@ class Reservation(pulumi.CustomResource):
617
1020
  :param pulumi.Input[builtins.str] commitment: Full or partial URL to a parent commitment. This field displays for
618
1021
  reservations that are tied to a commitment.
619
1022
  :param pulumi.Input[builtins.str] creation_timestamp: Creation timestamp in RFC3339 text format.
1023
+ :param pulumi.Input[Union['ReservationDeleteAfterDurationArgs', 'ReservationDeleteAfterDurationArgsDict']] delete_after_duration: Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
1024
+ Structure is documented below.
1025
+ :param pulumi.Input[builtins.str] delete_at_time: Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
1026
+ Cannot be used with delete_after_duration.
620
1027
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
1028
+ :param pulumi.Input[builtins.bool] enable_emergent_maintenance: Indicates if this group of VMs have emergent maintenance enabled.
621
1029
  :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is
622
1030
  created. The name must be 1-63 characters long, and comply with
623
1031
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -627,6 +1035,8 @@ class Reservation(pulumi.CustomResource):
627
1035
  character, which cannot be a dash.
628
1036
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
629
1037
  If it is not provided, the provider project is used.
1038
+ :param pulumi.Input[Union['ReservationReservationSharingPolicyArgs', 'ReservationReservationSharingPolicyArgsDict']] reservation_sharing_policy: Sharing policy for reservations with Google Cloud managed services.
1039
+ Structure is documented below.
630
1040
  :param pulumi.Input[builtins.str] self_link: The URI of the created resource.
631
1041
  :param pulumi.Input[Union['ReservationShareSettingsArgs', 'ReservationShareSettingsArgsDict']] share_settings: The share setting for reservations.
632
1042
  Structure is documented below.
@@ -644,9 +1054,13 @@ class Reservation(pulumi.CustomResource):
644
1054
 
645
1055
  __props__.__dict__["commitment"] = commitment
646
1056
  __props__.__dict__["creation_timestamp"] = creation_timestamp
1057
+ __props__.__dict__["delete_after_duration"] = delete_after_duration
1058
+ __props__.__dict__["delete_at_time"] = delete_at_time
647
1059
  __props__.__dict__["description"] = description
1060
+ __props__.__dict__["enable_emergent_maintenance"] = enable_emergent_maintenance
648
1061
  __props__.__dict__["name"] = name
649
1062
  __props__.__dict__["project"] = project
1063
+ __props__.__dict__["reservation_sharing_policy"] = reservation_sharing_policy
650
1064
  __props__.__dict__["self_link"] = self_link
651
1065
  __props__.__dict__["share_settings"] = share_settings
652
1066
  __props__.__dict__["specific_reservation"] = specific_reservation
@@ -672,6 +1086,24 @@ class Reservation(pulumi.CustomResource):
672
1086
  """
673
1087
  return pulumi.get(self, "creation_timestamp")
674
1088
 
1089
+ @property
1090
+ @pulumi.getter(name="deleteAfterDuration")
1091
+ def delete_after_duration(self) -> pulumi.Output[Optional['outputs.ReservationDeleteAfterDuration']]:
1092
+ """
1093
+ Duration after which the reservation will be auto-deleted by Compute Engine. Cannot be used with delete_at_time.
1094
+ Structure is documented below.
1095
+ """
1096
+ return pulumi.get(self, "delete_after_duration")
1097
+
1098
+ @property
1099
+ @pulumi.getter(name="deleteAtTime")
1100
+ def delete_at_time(self) -> pulumi.Output[builtins.str]:
1101
+ """
1102
+ Absolute time in future when the reservation will be auto-deleted by Compute Engine. Timestamp is represented in RFC3339 text format.
1103
+ Cannot be used with delete_after_duration.
1104
+ """
1105
+ return pulumi.get(self, "delete_at_time")
1106
+
675
1107
  @property
676
1108
  @pulumi.getter
677
1109
  def description(self) -> pulumi.Output[Optional[builtins.str]]:
@@ -680,6 +1112,14 @@ class Reservation(pulumi.CustomResource):
680
1112
  """
681
1113
  return pulumi.get(self, "description")
682
1114
 
1115
+ @property
1116
+ @pulumi.getter(name="enableEmergentMaintenance")
1117
+ def enable_emergent_maintenance(self) -> pulumi.Output[Optional[builtins.bool]]:
1118
+ """
1119
+ Indicates if this group of VMs have emergent maintenance enabled.
1120
+ """
1121
+ return pulumi.get(self, "enable_emergent_maintenance")
1122
+
683
1123
  @property
684
1124
  @pulumi.getter
685
1125
  def name(self) -> pulumi.Output[builtins.str]:
@@ -703,6 +1143,15 @@ class Reservation(pulumi.CustomResource):
703
1143
  """
704
1144
  return pulumi.get(self, "project")
705
1145
 
1146
+ @property
1147
+ @pulumi.getter(name="reservationSharingPolicy")
1148
+ def reservation_sharing_policy(self) -> pulumi.Output['outputs.ReservationReservationSharingPolicy']:
1149
+ """
1150
+ Sharing policy for reservations with Google Cloud managed services.
1151
+ Structure is documented below.
1152
+ """
1153
+ return pulumi.get(self, "reservation_sharing_policy")
1154
+
706
1155
  @property
707
1156
  @pulumi.getter(name="selfLink")
708
1157
  def self_link(self) -> pulumi.Output[builtins.str]: