pulumi-gcp 8.39.0a1752821510__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.0a1752821510.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/METADATA +1 -1
  34. {pulumi_gcp-8.39.0a1752821510.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/RECORD +36 -32
  35. {pulumi_gcp-8.39.0a1752821510.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/WHEEL +0 -0
  36. {pulumi_gcp-8.39.0a1752821510.dist-info → pulumi_gcp-8.39.0a1753206228.dist-info}/top_level.txt +0 -0
@@ -32,6 +32,7 @@ class FirewallArgs:
32
32
  enable_logging: Optional[pulumi.Input[builtins.bool]] = None,
33
33
  log_config: Optional[pulumi.Input['FirewallLogConfigArgs']] = None,
34
34
  name: Optional[pulumi.Input[builtins.str]] = None,
35
+ params: Optional[pulumi.Input['FirewallParamsArgs']] = None,
35
36
  priority: Optional[pulumi.Input[builtins.int]] = None,
36
37
  project: Optional[pulumi.Input[builtins.str]] = None,
37
38
  source_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
@@ -74,6 +75,8 @@ class FirewallArgs:
74
75
  first character must be a lowercase letter, and all following
75
76
  characters must be a dash, lowercase letter, or digit, except the last
76
77
  character, which cannot be a dash.
78
+ :param pulumi.Input['FirewallParamsArgs'] params: Additional params passed with the request, but not persisted as part of resource payload
79
+ Structure is documented below.
77
80
  :param pulumi.Input[builtins.int] priority: Priority for this rule. This is an integer between 0 and 65535, both
78
81
  inclusive. When not specified, the value assumed is 1000. Relative
79
82
  priorities determine precedence of conflicting rules. Lower value of
@@ -146,6 +149,8 @@ class FirewallArgs:
146
149
  pulumi.set(__self__, "log_config", log_config)
147
150
  if name is not None:
148
151
  pulumi.set(__self__, "name", name)
152
+ if params is not None:
153
+ pulumi.set(__self__, "params", params)
149
154
  if priority is not None:
150
155
  pulumi.set(__self__, "priority", priority)
151
156
  if project is not None:
@@ -305,6 +310,19 @@ class FirewallArgs:
305
310
  def name(self, value: Optional[pulumi.Input[builtins.str]]):
306
311
  pulumi.set(self, "name", value)
307
312
 
313
+ @property
314
+ @pulumi.getter
315
+ def params(self) -> Optional[pulumi.Input['FirewallParamsArgs']]:
316
+ """
317
+ Additional params passed with the request, but not persisted as part of resource payload
318
+ Structure is documented below.
319
+ """
320
+ return pulumi.get(self, "params")
321
+
322
+ @params.setter
323
+ def params(self, value: Optional[pulumi.Input['FirewallParamsArgs']]):
324
+ pulumi.set(self, "params", value)
325
+
308
326
  @property
309
327
  @pulumi.getter
310
328
  def priority(self) -> Optional[pulumi.Input[builtins.int]]:
@@ -446,6 +464,7 @@ class _FirewallState:
446
464
  log_config: Optional[pulumi.Input['FirewallLogConfigArgs']] = None,
447
465
  name: Optional[pulumi.Input[builtins.str]] = None,
448
466
  network: Optional[pulumi.Input[builtins.str]] = None,
467
+ params: Optional[pulumi.Input['FirewallParamsArgs']] = None,
449
468
  priority: Optional[pulumi.Input[builtins.int]] = None,
450
469
  project: Optional[pulumi.Input[builtins.str]] = None,
451
470
  self_link: Optional[pulumi.Input[builtins.str]] = None,
@@ -490,6 +509,8 @@ class _FirewallState:
490
509
  characters must be a dash, lowercase letter, or digit, except the last
491
510
  character, which cannot be a dash.
492
511
  :param pulumi.Input[builtins.str] network: The name or self_link of the network to attach this firewall to.
512
+ :param pulumi.Input['FirewallParamsArgs'] params: Additional params passed with the request, but not persisted as part of resource payload
513
+ Structure is documented below.
493
514
  :param pulumi.Input[builtins.int] priority: Priority for this rule. This is an integer between 0 and 65535, both
494
515
  inclusive. When not specified, the value assumed is 1000. Relative
495
516
  priorities determine precedence of conflicting rules. Lower value of
@@ -566,6 +587,8 @@ class _FirewallState:
566
587
  pulumi.set(__self__, "name", name)
567
588
  if network is not None:
568
589
  pulumi.set(__self__, "network", network)
590
+ if params is not None:
591
+ pulumi.set(__self__, "params", params)
569
592
  if priority is not None:
570
593
  pulumi.set(__self__, "priority", priority)
571
594
  if project is not None:
@@ -739,6 +762,19 @@ class _FirewallState:
739
762
  def network(self, value: Optional[pulumi.Input[builtins.str]]):
740
763
  pulumi.set(self, "network", value)
741
764
 
765
+ @property
766
+ @pulumi.getter
767
+ def params(self) -> Optional[pulumi.Input['FirewallParamsArgs']]:
768
+ """
769
+ Additional params passed with the request, but not persisted as part of resource payload
770
+ Structure is documented below.
771
+ """
772
+ return pulumi.get(self, "params")
773
+
774
+ @params.setter
775
+ def params(self, value: Optional[pulumi.Input['FirewallParamsArgs']]):
776
+ pulumi.set(self, "params", value)
777
+
742
778
  @property
743
779
  @pulumi.getter
744
780
  def priority(self) -> Optional[pulumi.Input[builtins.int]]:
@@ -894,6 +930,7 @@ class Firewall(pulumi.CustomResource):
894
930
  log_config: Optional[pulumi.Input[Union['FirewallLogConfigArgs', 'FirewallLogConfigArgsDict']]] = None,
895
931
  name: Optional[pulumi.Input[builtins.str]] = None,
896
932
  network: Optional[pulumi.Input[builtins.str]] = None,
933
+ params: Optional[pulumi.Input[Union['FirewallParamsArgs', 'FirewallParamsArgsDict']]] = None,
897
934
  priority: Optional[pulumi.Input[builtins.int]] = None,
898
935
  project: Optional[pulumi.Input[builtins.str]] = None,
899
936
  source_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
@@ -1031,6 +1068,8 @@ class Firewall(pulumi.CustomResource):
1031
1068
  characters must be a dash, lowercase letter, or digit, except the last
1032
1069
  character, which cannot be a dash.
1033
1070
  :param pulumi.Input[builtins.str] network: The name or self_link of the network to attach this firewall to.
1071
+ :param pulumi.Input[Union['FirewallParamsArgs', 'FirewallParamsArgsDict']] params: Additional params passed with the request, but not persisted as part of resource payload
1072
+ Structure is documented below.
1034
1073
  :param pulumi.Input[builtins.int] priority: Priority for this rule. This is an integer between 0 and 65535, both
1035
1074
  inclusive. When not specified, the value assumed is 1000. Relative
1036
1075
  priorities determine precedence of conflicting rules. Lower value of
@@ -1206,6 +1245,7 @@ class Firewall(pulumi.CustomResource):
1206
1245
  log_config: Optional[pulumi.Input[Union['FirewallLogConfigArgs', 'FirewallLogConfigArgsDict']]] = None,
1207
1246
  name: Optional[pulumi.Input[builtins.str]] = None,
1208
1247
  network: Optional[pulumi.Input[builtins.str]] = None,
1248
+ params: Optional[pulumi.Input[Union['FirewallParamsArgs', 'FirewallParamsArgsDict']]] = None,
1209
1249
  priority: Optional[pulumi.Input[builtins.int]] = None,
1210
1250
  project: Optional[pulumi.Input[builtins.str]] = None,
1211
1251
  source_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
@@ -1234,6 +1274,7 @@ class Firewall(pulumi.CustomResource):
1234
1274
  if network is None and not opts.urn:
1235
1275
  raise TypeError("Missing required property 'network'")
1236
1276
  __props__.__dict__["network"] = network
1277
+ __props__.__dict__["params"] = params
1237
1278
  __props__.__dict__["priority"] = priority
1238
1279
  __props__.__dict__["project"] = project
1239
1280
  __props__.__dict__["source_ranges"] = source_ranges
@@ -1264,6 +1305,7 @@ class Firewall(pulumi.CustomResource):
1264
1305
  log_config: Optional[pulumi.Input[Union['FirewallLogConfigArgs', 'FirewallLogConfigArgsDict']]] = None,
1265
1306
  name: Optional[pulumi.Input[builtins.str]] = None,
1266
1307
  network: Optional[pulumi.Input[builtins.str]] = None,
1308
+ params: Optional[pulumi.Input[Union['FirewallParamsArgs', 'FirewallParamsArgsDict']]] = None,
1267
1309
  priority: Optional[pulumi.Input[builtins.int]] = None,
1268
1310
  project: Optional[pulumi.Input[builtins.str]] = None,
1269
1311
  self_link: Optional[pulumi.Input[builtins.str]] = None,
@@ -1313,6 +1355,8 @@ class Firewall(pulumi.CustomResource):
1313
1355
  characters must be a dash, lowercase letter, or digit, except the last
1314
1356
  character, which cannot be a dash.
1315
1357
  :param pulumi.Input[builtins.str] network: The name or self_link of the network to attach this firewall to.
1358
+ :param pulumi.Input[Union['FirewallParamsArgs', 'FirewallParamsArgsDict']] params: Additional params passed with the request, but not persisted as part of resource payload
1359
+ Structure is documented below.
1316
1360
  :param pulumi.Input[builtins.int] priority: Priority for this rule. This is an integer between 0 and 65535, both
1317
1361
  inclusive. When not specified, the value assumed is 1000. Relative
1318
1362
  priorities determine precedence of conflicting rules. Lower value of
@@ -1379,6 +1423,7 @@ class Firewall(pulumi.CustomResource):
1379
1423
  __props__.__dict__["log_config"] = log_config
1380
1424
  __props__.__dict__["name"] = name
1381
1425
  __props__.__dict__["network"] = network
1426
+ __props__.__dict__["params"] = params
1382
1427
  __props__.__dict__["priority"] = priority
1383
1428
  __props__.__dict__["project"] = project
1384
1429
  __props__.__dict__["self_link"] = self_link
@@ -1501,6 +1546,15 @@ class Firewall(pulumi.CustomResource):
1501
1546
  """
1502
1547
  return pulumi.get(self, "network")
1503
1548
 
1549
+ @property
1550
+ @pulumi.getter
1551
+ def params(self) -> pulumi.Output[Optional['outputs.FirewallParams']]:
1552
+ """
1553
+ Additional params passed with the request, but not persisted as part of resource payload
1554
+ Structure is documented below.
1555
+ """
1556
+ return pulumi.get(self, "params")
1557
+
1504
1558
  @property
1505
1559
  @pulumi.getter
1506
1560
  def priority(self) -> pulumi.Output[Optional[builtins.int]]:
@@ -23,6 +23,7 @@ __all__ = ['FutureReservationArgs', 'FutureReservation']
23
23
  class FutureReservationArgs:
24
24
  def __init__(__self__, *,
25
25
  time_window: pulumi.Input['FutureReservationTimeWindowArgs'],
26
+ aggregate_reservation: Optional[pulumi.Input['FutureReservationAggregateReservationArgs']] = None,
26
27
  auto_created_reservations_delete_time: Optional[pulumi.Input[builtins.str]] = None,
27
28
  auto_created_reservations_duration: Optional[pulumi.Input['FutureReservationAutoCreatedReservationsDurationArgs']] = None,
28
29
  auto_delete_auto_created_reservations: Optional[pulumi.Input[builtins.bool]] = None,
@@ -43,6 +44,8 @@ class FutureReservationArgs:
43
44
  The set of arguments for constructing a FutureReservation resource.
44
45
  :param pulumi.Input['FutureReservationTimeWindowArgs'] time_window: Time window for this Future Reservation.
45
46
  Structure is documented below.
47
+ :param pulumi.Input['FutureReservationAggregateReservationArgs'] aggregate_reservation: Aggregate reservation details for the future reservation.
48
+ Structure is documented below.
46
49
  :param pulumi.Input[builtins.str] auto_created_reservations_delete_time: Future timestamp when the FR auto-created reservations will be deleted by Compute Engine.
47
50
  :param pulumi.Input['FutureReservationAutoCreatedReservationsDurationArgs'] auto_created_reservations_duration: Specifies the duration of auto-created reservations. It represents relative time to future reservation startTime when auto-created reservations will be automatically deleted by Compute Engine. Duration time unit is represented as a count of seconds and fractions of seconds at nanosecond resolution.
48
51
  Structure is documented below.
@@ -76,6 +79,8 @@ class FutureReservationArgs:
76
79
  Structure is documented below.
77
80
  """
78
81
  pulumi.set(__self__, "time_window", time_window)
82
+ if aggregate_reservation is not None:
83
+ pulumi.set(__self__, "aggregate_reservation", aggregate_reservation)
79
84
  if auto_created_reservations_delete_time is not None:
80
85
  pulumi.set(__self__, "auto_created_reservations_delete_time", auto_created_reservations_delete_time)
81
86
  if auto_created_reservations_duration is not None:
@@ -122,6 +127,19 @@ class FutureReservationArgs:
122
127
  def time_window(self, value: pulumi.Input['FutureReservationTimeWindowArgs']):
123
128
  pulumi.set(self, "time_window", value)
124
129
 
130
+ @property
131
+ @pulumi.getter(name="aggregateReservation")
132
+ def aggregate_reservation(self) -> Optional[pulumi.Input['FutureReservationAggregateReservationArgs']]:
133
+ """
134
+ Aggregate reservation details for the future reservation.
135
+ Structure is documented below.
136
+ """
137
+ return pulumi.get(self, "aggregate_reservation")
138
+
139
+ @aggregate_reservation.setter
140
+ def aggregate_reservation(self, value: Optional[pulumi.Input['FutureReservationAggregateReservationArgs']]):
141
+ pulumi.set(self, "aggregate_reservation", value)
142
+
125
143
  @property
126
144
  @pulumi.getter(name="autoCreatedReservationsDeleteTime")
127
145
  def auto_created_reservations_delete_time(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -333,6 +351,7 @@ class FutureReservationArgs:
333
351
  @pulumi.input_type
334
352
  class _FutureReservationState:
335
353
  def __init__(__self__, *,
354
+ aggregate_reservation: Optional[pulumi.Input['FutureReservationAggregateReservationArgs']] = None,
336
355
  auto_created_reservations_delete_time: Optional[pulumi.Input[builtins.str]] = None,
337
356
  auto_created_reservations_duration: Optional[pulumi.Input['FutureReservationAutoCreatedReservationsDurationArgs']] = None,
338
357
  auto_delete_auto_created_reservations: Optional[pulumi.Input[builtins.bool]] = None,
@@ -357,6 +376,8 @@ class _FutureReservationState:
357
376
  zone: Optional[pulumi.Input[builtins.str]] = None):
358
377
  """
359
378
  Input properties used for looking up and filtering FutureReservation resources.
379
+ :param pulumi.Input['FutureReservationAggregateReservationArgs'] aggregate_reservation: Aggregate reservation details for the future reservation.
380
+ Structure is documented below.
360
381
  :param pulumi.Input[builtins.str] auto_created_reservations_delete_time: Future timestamp when the FR auto-created reservations will be deleted by Compute Engine.
361
382
  :param pulumi.Input['FutureReservationAutoCreatedReservationsDurationArgs'] auto_created_reservations_duration: Specifies the duration of auto-created reservations. It represents relative time to future reservation startTime when auto-created reservations will be automatically deleted by Compute Engine. Duration time unit is represented as a count of seconds and fractions of seconds at nanosecond resolution.
362
383
  Structure is documented below.
@@ -397,6 +418,8 @@ class _FutureReservationState:
397
418
  Structure is documented below.
398
419
  :param pulumi.Input[builtins.str] zone: URL of the Zone where this future reservation resides.
399
420
  """
421
+ if aggregate_reservation is not None:
422
+ pulumi.set(__self__, "aggregate_reservation", aggregate_reservation)
400
423
  if auto_created_reservations_delete_time is not None:
401
424
  pulumi.set(__self__, "auto_created_reservations_delete_time", auto_created_reservations_delete_time)
402
425
  if auto_created_reservations_duration is not None:
@@ -442,6 +465,19 @@ class _FutureReservationState:
442
465
  if zone is not None:
443
466
  pulumi.set(__self__, "zone", zone)
444
467
 
468
+ @property
469
+ @pulumi.getter(name="aggregateReservation")
470
+ def aggregate_reservation(self) -> Optional[pulumi.Input['FutureReservationAggregateReservationArgs']]:
471
+ """
472
+ Aggregate reservation details for the future reservation.
473
+ Structure is documented below.
474
+ """
475
+ return pulumi.get(self, "aggregate_reservation")
476
+
477
+ @aggregate_reservation.setter
478
+ def aggregate_reservation(self, value: Optional[pulumi.Input['FutureReservationAggregateReservationArgs']]):
479
+ pulumi.set(self, "aggregate_reservation", value)
480
+
445
481
  @property
446
482
  @pulumi.getter(name="autoCreatedReservationsDeleteTime")
447
483
  def auto_created_reservations_delete_time(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -730,6 +766,7 @@ class FutureReservation(pulumi.CustomResource):
730
766
  def __init__(__self__,
731
767
  resource_name: str,
732
768
  opts: Optional[pulumi.ResourceOptions] = None,
769
+ aggregate_reservation: Optional[pulumi.Input[Union['FutureReservationAggregateReservationArgs', 'FutureReservationAggregateReservationArgsDict']]] = None,
733
770
  auto_created_reservations_delete_time: Optional[pulumi.Input[builtins.str]] = None,
734
771
  auto_created_reservations_duration: Optional[pulumi.Input[Union['FutureReservationAutoCreatedReservationsDurationArgs', 'FutureReservationAutoCreatedReservationsDurationArgsDict']]] = None,
735
772
  auto_delete_auto_created_reservations: Optional[pulumi.Input[builtins.bool]] = None,
@@ -774,6 +811,41 @@ class FutureReservation(pulumi.CustomResource):
774
811
  },
775
812
  })
776
813
  ```
814
+ ### Future Reservation Aggregate Reservation
815
+
816
+ ```python
817
+ import pulumi
818
+ import pulumi_gcp as gcp
819
+
820
+ gce_future_reservation = gcp.compute.FutureReservation("gce_future_reservation",
821
+ name="gce-future-reservation-aggregate-reservation",
822
+ project="my-project-name",
823
+ auto_delete_auto_created_reservations=True,
824
+ planning_status="DRAFT",
825
+ name_prefix="fr-basic",
826
+ time_window={
827
+ "start_time": "2025-11-01T00:00:00Z",
828
+ "end_time": "2025-11-02T00:00:00Z",
829
+ },
830
+ aggregate_reservation={
831
+ "vm_family": "VM_FAMILY_CLOUD_TPU_DEVICE_CT3",
832
+ "workload_type": "UNSPECIFIED",
833
+ "reserved_resources": [
834
+ {
835
+ "accelerator": {
836
+ "accelerator_count": 32,
837
+ "accelerator_type": "projects/my-project-name/zones/us-central1-a/acceleratorTypes/ct3",
838
+ },
839
+ },
840
+ {
841
+ "accelerator": {
842
+ "accelerator_count": 2,
843
+ "accelerator_type": "projects/my-project-name/zones/us-central1-a/acceleratorTypes/ct3",
844
+ },
845
+ },
846
+ ],
847
+ })
848
+ ```
777
849
 
778
850
  ## Import
779
851
 
@@ -807,6 +879,8 @@ class FutureReservation(pulumi.CustomResource):
807
879
 
808
880
  :param str resource_name: The name of the resource.
809
881
  :param pulumi.ResourceOptions opts: Options for the resource.
882
+ :param pulumi.Input[Union['FutureReservationAggregateReservationArgs', 'FutureReservationAggregateReservationArgsDict']] aggregate_reservation: Aggregate reservation details for the future reservation.
883
+ Structure is documented below.
810
884
  :param pulumi.Input[builtins.str] auto_created_reservations_delete_time: Future timestamp when the FR auto-created reservations will be deleted by Compute Engine.
811
885
  :param pulumi.Input[Union['FutureReservationAutoCreatedReservationsDurationArgs', 'FutureReservationAutoCreatedReservationsDurationArgsDict']] auto_created_reservations_duration: Specifies the duration of auto-created reservations. It represents relative time to future reservation startTime when auto-created reservations will be automatically deleted by Compute Engine. Duration time unit is represented as a count of seconds and fractions of seconds at nanosecond resolution.
812
886
  Structure is documented below.
@@ -873,6 +947,41 @@ class FutureReservation(pulumi.CustomResource):
873
947
  },
874
948
  })
875
949
  ```
950
+ ### Future Reservation Aggregate Reservation
951
+
952
+ ```python
953
+ import pulumi
954
+ import pulumi_gcp as gcp
955
+
956
+ gce_future_reservation = gcp.compute.FutureReservation("gce_future_reservation",
957
+ name="gce-future-reservation-aggregate-reservation",
958
+ project="my-project-name",
959
+ auto_delete_auto_created_reservations=True,
960
+ planning_status="DRAFT",
961
+ name_prefix="fr-basic",
962
+ time_window={
963
+ "start_time": "2025-11-01T00:00:00Z",
964
+ "end_time": "2025-11-02T00:00:00Z",
965
+ },
966
+ aggregate_reservation={
967
+ "vm_family": "VM_FAMILY_CLOUD_TPU_DEVICE_CT3",
968
+ "workload_type": "UNSPECIFIED",
969
+ "reserved_resources": [
970
+ {
971
+ "accelerator": {
972
+ "accelerator_count": 32,
973
+ "accelerator_type": "projects/my-project-name/zones/us-central1-a/acceleratorTypes/ct3",
974
+ },
975
+ },
976
+ {
977
+ "accelerator": {
978
+ "accelerator_count": 2,
979
+ "accelerator_type": "projects/my-project-name/zones/us-central1-a/acceleratorTypes/ct3",
980
+ },
981
+ },
982
+ ],
983
+ })
984
+ ```
876
985
 
877
986
  ## Import
878
987
 
@@ -919,6 +1028,7 @@ class FutureReservation(pulumi.CustomResource):
919
1028
  def _internal_init(__self__,
920
1029
  resource_name: str,
921
1030
  opts: Optional[pulumi.ResourceOptions] = None,
1031
+ aggregate_reservation: Optional[pulumi.Input[Union['FutureReservationAggregateReservationArgs', 'FutureReservationAggregateReservationArgsDict']]] = None,
922
1032
  auto_created_reservations_delete_time: Optional[pulumi.Input[builtins.str]] = None,
923
1033
  auto_created_reservations_duration: Optional[pulumi.Input[Union['FutureReservationAutoCreatedReservationsDurationArgs', 'FutureReservationAutoCreatedReservationsDurationArgsDict']]] = None,
924
1034
  auto_delete_auto_created_reservations: Optional[pulumi.Input[builtins.bool]] = None,
@@ -945,6 +1055,7 @@ class FutureReservation(pulumi.CustomResource):
945
1055
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
946
1056
  __props__ = FutureReservationArgs.__new__(FutureReservationArgs)
947
1057
 
1058
+ __props__.__dict__["aggregate_reservation"] = aggregate_reservation
948
1059
  __props__.__dict__["auto_created_reservations_delete_time"] = auto_created_reservations_delete_time
949
1060
  __props__.__dict__["auto_created_reservations_duration"] = auto_created_reservations_duration
950
1061
  __props__.__dict__["auto_delete_auto_created_reservations"] = auto_delete_auto_created_reservations
@@ -979,6 +1090,7 @@ class FutureReservation(pulumi.CustomResource):
979
1090
  def get(resource_name: str,
980
1091
  id: pulumi.Input[str],
981
1092
  opts: Optional[pulumi.ResourceOptions] = None,
1093
+ aggregate_reservation: Optional[pulumi.Input[Union['FutureReservationAggregateReservationArgs', 'FutureReservationAggregateReservationArgsDict']]] = None,
982
1094
  auto_created_reservations_delete_time: Optional[pulumi.Input[builtins.str]] = None,
983
1095
  auto_created_reservations_duration: Optional[pulumi.Input[Union['FutureReservationAutoCreatedReservationsDurationArgs', 'FutureReservationAutoCreatedReservationsDurationArgsDict']]] = None,
984
1096
  auto_delete_auto_created_reservations: Optional[pulumi.Input[builtins.bool]] = None,
@@ -1008,6 +1120,8 @@ class FutureReservation(pulumi.CustomResource):
1008
1120
  :param str resource_name: The unique name of the resulting resource.
1009
1121
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1010
1122
  :param pulumi.ResourceOptions opts: Options for the resource.
1123
+ :param pulumi.Input[Union['FutureReservationAggregateReservationArgs', 'FutureReservationAggregateReservationArgsDict']] aggregate_reservation: Aggregate reservation details for the future reservation.
1124
+ Structure is documented below.
1011
1125
  :param pulumi.Input[builtins.str] auto_created_reservations_delete_time: Future timestamp when the FR auto-created reservations will be deleted by Compute Engine.
1012
1126
  :param pulumi.Input[Union['FutureReservationAutoCreatedReservationsDurationArgs', 'FutureReservationAutoCreatedReservationsDurationArgsDict']] auto_created_reservations_duration: Specifies the duration of auto-created reservations. It represents relative time to future reservation startTime when auto-created reservations will be automatically deleted by Compute Engine. Duration time unit is represented as a count of seconds and fractions of seconds at nanosecond resolution.
1013
1127
  Structure is documented below.
@@ -1052,6 +1166,7 @@ class FutureReservation(pulumi.CustomResource):
1052
1166
 
1053
1167
  __props__ = _FutureReservationState.__new__(_FutureReservationState)
1054
1168
 
1169
+ __props__.__dict__["aggregate_reservation"] = aggregate_reservation
1055
1170
  __props__.__dict__["auto_created_reservations_delete_time"] = auto_created_reservations_delete_time
1056
1171
  __props__.__dict__["auto_created_reservations_duration"] = auto_created_reservations_duration
1057
1172
  __props__.__dict__["auto_delete_auto_created_reservations"] = auto_delete_auto_created_reservations
@@ -1076,6 +1191,15 @@ class FutureReservation(pulumi.CustomResource):
1076
1191
  __props__.__dict__["zone"] = zone
1077
1192
  return FutureReservation(resource_name, opts=opts, __props__=__props__)
1078
1193
 
1194
+ @property
1195
+ @pulumi.getter(name="aggregateReservation")
1196
+ def aggregate_reservation(self) -> pulumi.Output[Optional['outputs.FutureReservationAggregateReservation']]:
1197
+ """
1198
+ Aggregate reservation details for the future reservation.
1199
+ Structure is documented below.
1200
+ """
1201
+ return pulumi.get(self, "aggregate_reservation")
1202
+
1079
1203
  @property
1080
1204
  @pulumi.getter(name="autoCreatedReservationsDeleteTime")
1081
1205
  def auto_created_reservations_delete_time(self) -> pulumi.Output[Optional[builtins.str]]: