pulumi-gcp 8.20.0a1739946722__py3-none-any.whl → 8.21.0a1740033009__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 (189) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +168 -8
  3. pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +2 -2
  4. pulumi_gcp/accesscontextmanager/outputs.py +104 -8
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +78 -3
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +78 -3
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +78 -3
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +78 -3
  9. pulumi_gcp/alloydb/__init__.py +1 -0
  10. pulumi_gcp/alloydb/get_instance.py +466 -0
  11. pulumi_gcp/alloydb/outputs.py +352 -0
  12. pulumi_gcp/apigateway/get_api_config_iam_policy.py +20 -2
  13. pulumi_gcp/apigateway/get_api_iam_policy.py +20 -2
  14. pulumi_gcp/apigateway/get_gateway_iam_policy.py +22 -2
  15. pulumi_gcp/apigee/get_environment_iam_policy.py +2 -2
  16. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +2 -2
  17. pulumi_gcp/beyondcorp/get_application_iam_policy.py +2 -2
  18. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -2
  19. pulumi_gcp/bigquery/connection.py +2 -14
  20. pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -2
  21. pulumi_gcp/bigquery/get_table_iam_policy.py +2 -2
  22. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +8 -8
  23. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +8 -8
  24. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +8 -8
  25. pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
  26. pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
  27. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +8 -8
  28. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +8 -8
  29. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +8 -8
  30. pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -2
  31. pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +2 -2
  32. pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +2 -2
  33. pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +2 -2
  34. pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +2 -2
  35. pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py +2 -2
  36. pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +2 -2
  37. pulumi_gcp/clouddeploy/get_target_iam_policy.py +2 -2
  38. pulumi_gcp/cloudfunctions/get_function_iam_policy.py +2 -2
  39. pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +2 -2
  40. pulumi_gcp/cloudrun/_inputs.py +6 -3
  41. pulumi_gcp/cloudrun/get_service_iam_policy.py +2 -2
  42. pulumi_gcp/cloudrun/outputs.py +4 -2
  43. pulumi_gcp/cloudrunv2/get_job_iam_policy.py +2 -2
  44. pulumi_gcp/cloudrunv2/get_service_iam_policy.py +2 -2
  45. pulumi_gcp/cloudtasks/get_queue_iam_policy.py +2 -2
  46. pulumi_gcp/colab/get_runtime_template_iam_policy.py +2 -2
  47. pulumi_gcp/composer/_inputs.py +6 -6
  48. pulumi_gcp/composer/outputs.py +8 -8
  49. pulumi_gcp/compute/_inputs.py +756 -30
  50. pulumi_gcp/compute/firewall_policy_rule.py +0 -2
  51. pulumi_gcp/compute/get_backend_bucket_iam_policy.py +20 -2
  52. pulumi_gcp/compute/get_backend_service_iam_policy.py +20 -2
  53. pulumi_gcp/compute/get_disk_iam_policy.py +2 -2
  54. pulumi_gcp/compute/get_hc_vpn_gateway.py +45 -1
  55. pulumi_gcp/compute/get_image_iam_policy.py +2 -2
  56. pulumi_gcp/compute/get_instance_iam_policy.py +2 -2
  57. pulumi_gcp/compute/get_instance_template_iam_policy.py +2 -2
  58. pulumi_gcp/compute/get_machine_image_iam_policy.py +20 -2
  59. pulumi_gcp/compute/get_region_backend_service_iam_policy.py +22 -2
  60. pulumi_gcp/compute/get_region_disk_iam_policy.py +2 -2
  61. pulumi_gcp/compute/get_snapshot_iam_policy.py +2 -2
  62. pulumi_gcp/compute/get_subnetwork_iam_policy.py +2 -2
  63. pulumi_gcp/compute/ha_vpn_gateway.py +189 -2
  64. pulumi_gcp/compute/instance_template.py +14 -35
  65. pulumi_gcp/compute/outputs.py +796 -18
  66. pulumi_gcp/config/__init__.pyi +2 -0
  67. pulumi_gcp/config/vars.py +4 -0
  68. pulumi_gcp/container/_inputs.py +447 -3
  69. pulumi_gcp/container/outputs.py +469 -5
  70. pulumi_gcp/containeranalysis/get_note_iam_policy.py +2 -2
  71. pulumi_gcp/datacatalog/entry_group_iam_binding.py +8 -8
  72. pulumi_gcp/datacatalog/entry_group_iam_member.py +8 -8
  73. pulumi_gcp/datacatalog/entry_group_iam_policy.py +8 -8
  74. pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +2 -2
  75. pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +2 -2
  76. pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +2 -2
  77. pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +2 -2
  78. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +8 -8
  79. pulumi_gcp/datacatalog/policy_tag_iam_member.py +8 -8
  80. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +8 -8
  81. pulumi_gcp/datacatalog/tag_template_iam_binding.py +8 -8
  82. pulumi_gcp/datacatalog/tag_template_iam_member.py +8 -8
  83. pulumi_gcp/datacatalog/tag_template_iam_policy.py +8 -8
  84. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +8 -8
  85. pulumi_gcp/datacatalog/taxonomy_iam_member.py +8 -8
  86. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +8 -8
  87. pulumi_gcp/dataform/get_repository_iam_policy.py +22 -2
  88. pulumi_gcp/datafusion/get_instance_iam_policy.py +2 -2
  89. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -2
  90. pulumi_gcp/dataplex/get_asset_iam_policy.py +2 -2
  91. pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -2
  92. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -2
  93. pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -2
  94. pulumi_gcp/dataplex/get_lake_iam_policy.py +2 -2
  95. pulumi_gcp/dataplex/get_task_iam_policy.py +2 -2
  96. pulumi_gcp/dataplex/get_zone_iam_policy.py +2 -2
  97. pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -2
  98. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -2
  99. pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -2
  100. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +8 -8
  101. pulumi_gcp/dataproc/metastore_federation_iam_member.py +8 -8
  102. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +8 -8
  103. pulumi_gcp/dataproc/metastore_service_iam_binding.py +8 -8
  104. pulumi_gcp/dataproc/metastore_service_iam_member.py +8 -8
  105. pulumi_gcp/dataproc/metastore_service_iam_policy.py +8 -8
  106. pulumi_gcp/dns/get_managed_zone_iam_policy.py +2 -2
  107. pulumi_gcp/endpoints/get_service_iam_policy.py +2 -2
  108. pulumi_gcp/eventarc/_inputs.py +29 -8
  109. pulumi_gcp/eventarc/google_channel_config.py +58 -46
  110. pulumi_gcp/eventarc/outputs.py +20 -6
  111. pulumi_gcp/eventarc/trigger.py +95 -72
  112. pulumi_gcp/filestore/backup.py +4 -4
  113. pulumi_gcp/firebase/__init__.py +1 -0
  114. pulumi_gcp/firebase/data_connect_service.py +937 -0
  115. pulumi_gcp/gemini/__init__.py +4 -0
  116. pulumi_gcp/gemini/data_sharing_with_google_setting.py +607 -0
  117. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +608 -0
  118. pulumi_gcp/gemini/get_repository_group_iam_policy.py +2 -2
  119. pulumi_gcp/gemini/logging_setting.py +42 -54
  120. pulumi_gcp/gemini/logging_setting_binding.py +722 -0
  121. pulumi_gcp/gemini/release_channel_setting.py +39 -43
  122. pulumi_gcp/gemini/release_channel_setting_binding.py +734 -0
  123. pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +2 -2
  124. pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +2 -2
  125. pulumi_gcp/gkehub/get_feature_iam_policy.py +2 -2
  126. pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -2
  127. pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -2
  128. pulumi_gcp/healthcare/get_consent_store_iam_policy.py +2 -2
  129. pulumi_gcp/iap/get_app_engine_service_iam_policy.py +2 -2
  130. pulumi_gcp/iap/get_app_engine_version_iam_policy.py +2 -2
  131. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -2
  132. pulumi_gcp/iap/get_tunnel_iam_policy.py +2 -2
  133. pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +2 -2
  134. pulumi_gcp/iap/get_web_backend_service_iam_policy.py +2 -2
  135. pulumi_gcp/iap/get_web_iam_policy.py +2 -2
  136. pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +2 -2
  137. pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
  138. pulumi_gcp/iap/get_web_type_compute_iam_policy.py +2 -2
  139. pulumi_gcp/kms/get_ekm_connection_iam_policy.py +2 -2
  140. pulumi_gcp/logging/get_log_view_iam_policy.py +2 -2
  141. pulumi_gcp/monitoring/_inputs.py +588 -0
  142. pulumi_gcp/monitoring/outputs.py +410 -0
  143. pulumi_gcp/netapp/__init__.py +1 -0
  144. pulumi_gcp/netapp/volume_quota_rule.py +895 -0
  145. pulumi_gcp/networksecurity/address_group_iam_binding.py +4 -4
  146. pulumi_gcp/networksecurity/address_group_iam_member.py +4 -4
  147. pulumi_gcp/networksecurity/address_group_iam_policy.py +4 -4
  148. pulumi_gcp/networkservices/authz_extension.py +8 -15
  149. pulumi_gcp/networkservices/mesh.py +79 -12
  150. pulumi_gcp/notebooks/get_instance_iam_policy.py +2 -2
  151. pulumi_gcp/notebooks/get_runtime_iam_policy.py +2 -2
  152. pulumi_gcp/provider.py +20 -0
  153. pulumi_gcp/pubsub/get_schema_iam_policy.py +2 -2
  154. pulumi_gcp/pubsub/get_topic_iam_policy.py +2 -2
  155. pulumi_gcp/pulumi-plugin.json +1 -1
  156. pulumi_gcp/runtimeconfig/get_config_iam_policy.py +20 -2
  157. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -2
  158. pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -2
  159. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -2
  160. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -2
  161. pulumi_gcp/securitycenter/get_source_iam_policy.py +2 -2
  162. pulumi_gcp/securitycenter/get_v2_organization_source_iam_policy.py +2 -2
  163. pulumi_gcp/securitycenter/mute_config.py +136 -3
  164. pulumi_gcp/securitycenter/v2_folder_notification_config.py +2 -14
  165. pulumi_gcp/securitycenter/v2_organization_notification_config.py +2 -14
  166. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +8 -8
  167. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +8 -8
  168. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +8 -8
  169. pulumi_gcp/securitycenter/v2_project_notification_config.py +2 -14
  170. pulumi_gcp/servicedirectory/get_namespace_iam_policy.py +18 -2
  171. pulumi_gcp/servicedirectory/get_service_iam_policy.py +18 -2
  172. pulumi_gcp/sourcerepo/get_repository_iam_policy.py +2 -2
  173. pulumi_gcp/spanner/instance.py +0 -46
  174. pulumi_gcp/sql/_inputs.py +6 -6
  175. pulumi_gcp/sql/outputs.py +4 -4
  176. pulumi_gcp/storage/bucket.py +30 -0
  177. pulumi_gcp/storage/get_bucket_iam_policy.py +2 -2
  178. pulumi_gcp/tags/get_tag_key_iam_policy.py +2 -2
  179. pulumi_gcp/tags/get_tag_value_iam_policy.py +2 -2
  180. pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +22 -2
  181. pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py +20 -2
  182. pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py +22 -2
  183. pulumi_gcp/workbench/get_instance_iam_policy.py +2 -2
  184. pulumi_gcp/workstations/get_workstation_config_iam_policy.py +24 -2
  185. pulumi_gcp/workstations/get_workstation_iam_policy.py +26 -2
  186. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/METADATA +1 -1
  187. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/RECORD +189 -182
  188. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/WHEEL +0 -0
  189. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/top_level.txt +0 -0
@@ -112,6 +112,8 @@ __all__ = [
112
112
  'InstanceFromMachineImageReservationAffinity',
113
113
  'InstanceFromMachineImageReservationAffinitySpecificReservation',
114
114
  'InstanceFromMachineImageScheduling',
115
+ 'InstanceFromMachineImageSchedulingGracefulShutdown',
116
+ 'InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration',
115
117
  'InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout',
116
118
  'InstanceFromMachineImageSchedulingMaxRunDuration',
117
119
  'InstanceFromMachineImageSchedulingNodeAffinity',
@@ -134,6 +136,8 @@ __all__ = [
134
136
  'InstanceFromTemplateReservationAffinity',
135
137
  'InstanceFromTemplateReservationAffinitySpecificReservation',
136
138
  'InstanceFromTemplateScheduling',
139
+ 'InstanceFromTemplateSchedulingGracefulShutdown',
140
+ 'InstanceFromTemplateSchedulingGracefulShutdownMaxDuration',
137
141
  'InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout',
138
142
  'InstanceFromTemplateSchedulingMaxRunDuration',
139
143
  'InstanceFromTemplateSchedulingNodeAffinity',
@@ -171,6 +175,8 @@ __all__ = [
171
175
  'InstanceReservationAffinity',
172
176
  'InstanceReservationAffinitySpecificReservation',
173
177
  'InstanceScheduling',
178
+ 'InstanceSchedulingGracefulShutdown',
179
+ 'InstanceSchedulingGracefulShutdownMaxDuration',
174
180
  'InstanceSchedulingLocalSsdRecoveryTimeout',
175
181
  'InstanceSchedulingMaxRunDuration',
176
182
  'InstanceSchedulingNodeAffinity',
@@ -196,6 +202,8 @@ __all__ = [
196
202
  'InstanceTemplateReservationAffinity',
197
203
  'InstanceTemplateReservationAffinitySpecificReservation',
198
204
  'InstanceTemplateScheduling',
205
+ 'InstanceTemplateSchedulingGracefulShutdown',
206
+ 'InstanceTemplateSchedulingGracefulShutdownMaxDuration',
199
207
  'InstanceTemplateSchedulingLocalSsdRecoveryTimeout',
200
208
  'InstanceTemplateSchedulingMaxRunDuration',
201
209
  'InstanceTemplateSchedulingNodeAffinity',
@@ -333,6 +341,8 @@ __all__ = [
333
341
  'RegionInstanceTemplateReservationAffinity',
334
342
  'RegionInstanceTemplateReservationAffinitySpecificReservation',
335
343
  'RegionInstanceTemplateScheduling',
344
+ 'RegionInstanceTemplateSchedulingGracefulShutdown',
345
+ 'RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration',
336
346
  'RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout',
337
347
  'RegionInstanceTemplateSchedulingMaxRunDuration',
338
348
  'RegionInstanceTemplateSchedulingNodeAffinity',
@@ -729,6 +739,8 @@ __all__ = [
729
739
  'GetInstanceReservationAffinityResult',
730
740
  'GetInstanceReservationAffinitySpecificReservationResult',
731
741
  'GetInstanceSchedulingResult',
742
+ 'GetInstanceSchedulingGracefulShutdownResult',
743
+ 'GetInstanceSchedulingGracefulShutdownMaxDurationResult',
732
744
  'GetInstanceSchedulingLocalSsdRecoveryTimeoutResult',
733
745
  'GetInstanceSchedulingMaxRunDurationResult',
734
746
  'GetInstanceSchedulingNodeAffinityResult',
@@ -751,6 +763,8 @@ __all__ = [
751
763
  'GetInstanceTemplateReservationAffinityResult',
752
764
  'GetInstanceTemplateReservationAffinitySpecificReservationResult',
753
765
  'GetInstanceTemplateSchedulingResult',
766
+ 'GetInstanceTemplateSchedulingGracefulShutdownResult',
767
+ 'GetInstanceTemplateSchedulingGracefulShutdownMaxDurationResult',
754
768
  'GetInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult',
755
769
  'GetInstanceTemplateSchedulingMaxRunDurationResult',
756
770
  'GetInstanceTemplateSchedulingNodeAffinityResult',
@@ -801,6 +815,8 @@ __all__ = [
801
815
  'GetRegionInstanceTemplateReservationAffinityResult',
802
816
  'GetRegionInstanceTemplateReservationAffinitySpecificReservationResult',
803
817
  'GetRegionInstanceTemplateSchedulingResult',
818
+ 'GetRegionInstanceTemplateSchedulingGracefulShutdownResult',
819
+ 'GetRegionInstanceTemplateSchedulingGracefulShutdownMaxDurationResult',
804
820
  'GetRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult',
805
821
  'GetRegionInstanceTemplateSchedulingMaxRunDurationResult',
806
822
  'GetRegionInstanceTemplateSchedulingNodeAffinityResult',
@@ -9182,6 +9198,8 @@ class InstanceFromMachineImageScheduling(dict):
9182
9198
  suggest = "automatic_restart"
9183
9199
  elif key == "availabilityDomain":
9184
9200
  suggest = "availability_domain"
9201
+ elif key == "gracefulShutdown":
9202
+ suggest = "graceful_shutdown"
9185
9203
  elif key == "hostErrorTimeoutSeconds":
9186
9204
  suggest = "host_error_timeout_seconds"
9187
9205
  elif key == "instanceTerminationAction":
@@ -9217,6 +9235,7 @@ class InstanceFromMachineImageScheduling(dict):
9217
9235
  def __init__(__self__, *,
9218
9236
  automatic_restart: Optional[bool] = None,
9219
9237
  availability_domain: Optional[int] = None,
9238
+ graceful_shutdown: Optional['outputs.InstanceFromMachineImageSchedulingGracefulShutdown'] = None,
9220
9239
  host_error_timeout_seconds: Optional[int] = None,
9221
9240
  instance_termination_action: Optional[str] = None,
9222
9241
  local_ssd_recovery_timeout: Optional['outputs.InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout'] = None,
@@ -9231,6 +9250,7 @@ class InstanceFromMachineImageScheduling(dict):
9231
9250
  """
9232
9251
  :param bool automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
9233
9252
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
9253
+ :param 'InstanceFromMachineImageSchedulingGracefulShutdownArgs' graceful_shutdown: Settings for the instance to perform a graceful shutdown.
9234
9254
  :param int host_error_timeout_seconds: Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
9235
9255
  :param str instance_termination_action: Specifies the action GCE should take when SPOT VM is preempted.
9236
9256
  :param 'InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeoutArgs' local_ssd_recovery_timeout: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -9249,6 +9269,8 @@ class InstanceFromMachineImageScheduling(dict):
9249
9269
  pulumi.set(__self__, "automatic_restart", automatic_restart)
9250
9270
  if availability_domain is not None:
9251
9271
  pulumi.set(__self__, "availability_domain", availability_domain)
9272
+ if graceful_shutdown is not None:
9273
+ pulumi.set(__self__, "graceful_shutdown", graceful_shutdown)
9252
9274
  if host_error_timeout_seconds is not None:
9253
9275
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
9254
9276
  if instance_termination_action is not None:
@@ -9288,6 +9310,14 @@ class InstanceFromMachineImageScheduling(dict):
9288
9310
  """
9289
9311
  return pulumi.get(self, "availability_domain")
9290
9312
 
9313
+ @property
9314
+ @pulumi.getter(name="gracefulShutdown")
9315
+ def graceful_shutdown(self) -> Optional['outputs.InstanceFromMachineImageSchedulingGracefulShutdown']:
9316
+ """
9317
+ Settings for the instance to perform a graceful shutdown.
9318
+ """
9319
+ return pulumi.get(self, "graceful_shutdown")
9320
+
9291
9321
  @property
9292
9322
  @pulumi.getter(name="hostErrorTimeoutSeconds")
9293
9323
  def host_error_timeout_seconds(self) -> Optional[int]:
@@ -9377,6 +9407,95 @@ class InstanceFromMachineImageScheduling(dict):
9377
9407
  return pulumi.get(self, "provisioning_model")
9378
9408
 
9379
9409
 
9410
+ @pulumi.output_type
9411
+ class InstanceFromMachineImageSchedulingGracefulShutdown(dict):
9412
+ @staticmethod
9413
+ def __key_warning(key: str):
9414
+ suggest = None
9415
+ if key == "maxDuration":
9416
+ suggest = "max_duration"
9417
+
9418
+ if suggest:
9419
+ pulumi.log.warn(f"Key '{key}' not found in InstanceFromMachineImageSchedulingGracefulShutdown. Access the value via the '{suggest}' property getter instead.")
9420
+
9421
+ def __getitem__(self, key: str) -> Any:
9422
+ InstanceFromMachineImageSchedulingGracefulShutdown.__key_warning(key)
9423
+ return super().__getitem__(key)
9424
+
9425
+ def get(self, key: str, default = None) -> Any:
9426
+ InstanceFromMachineImageSchedulingGracefulShutdown.__key_warning(key)
9427
+ return super().get(key, default)
9428
+
9429
+ def __init__(__self__, *,
9430
+ enabled: bool,
9431
+ max_duration: Optional['outputs.InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration'] = None):
9432
+ """
9433
+ :param bool enabled: Opts-in for graceful shutdown.
9434
+ :param 'InstanceFromMachineImageSchedulingGracefulShutdownMaxDurationArgs' max_duration: The time allotted for the instance to gracefully shut down.
9435
+ If the graceful shutdown isn't complete after this time, then the instance
9436
+ transitions to the STOPPING state.
9437
+ """
9438
+ pulumi.set(__self__, "enabled", enabled)
9439
+ if max_duration is not None:
9440
+ pulumi.set(__self__, "max_duration", max_duration)
9441
+
9442
+ @property
9443
+ @pulumi.getter
9444
+ def enabled(self) -> bool:
9445
+ """
9446
+ Opts-in for graceful shutdown.
9447
+ """
9448
+ return pulumi.get(self, "enabled")
9449
+
9450
+ @property
9451
+ @pulumi.getter(name="maxDuration")
9452
+ def max_duration(self) -> Optional['outputs.InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration']:
9453
+ """
9454
+ The time allotted for the instance to gracefully shut down.
9455
+ If the graceful shutdown isn't complete after this time, then the instance
9456
+ transitions to the STOPPING state.
9457
+ """
9458
+ return pulumi.get(self, "max_duration")
9459
+
9460
+
9461
+ @pulumi.output_type
9462
+ class InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration(dict):
9463
+ def __init__(__self__, *,
9464
+ seconds: int,
9465
+ nanos: Optional[int] = None):
9466
+ """
9467
+ :param int seconds: Span of time at a resolution of a second.
9468
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
9469
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
9470
+ resolution. Durations less than one second are represented
9471
+ with a 0 seconds field and a positive nanos field. Must
9472
+ be from 0 to 999,999,999 inclusive.
9473
+ """
9474
+ pulumi.set(__self__, "seconds", seconds)
9475
+ if nanos is not None:
9476
+ pulumi.set(__self__, "nanos", nanos)
9477
+
9478
+ @property
9479
+ @pulumi.getter
9480
+ def seconds(self) -> int:
9481
+ """
9482
+ Span of time at a resolution of a second.
9483
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
9484
+ """
9485
+ return pulumi.get(self, "seconds")
9486
+
9487
+ @property
9488
+ @pulumi.getter
9489
+ def nanos(self) -> Optional[int]:
9490
+ """
9491
+ Span of time that's a fraction of a second at nanosecond
9492
+ resolution. Durations less than one second are represented
9493
+ with a 0 seconds field and a positive nanos field. Must
9494
+ be from 0 to 999,999,999 inclusive.
9495
+ """
9496
+ return pulumi.get(self, "nanos")
9497
+
9498
+
9380
9499
  @pulumi.output_type
9381
9500
  class InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout(dict):
9382
9501
  def __init__(__self__, *,
@@ -10886,6 +11005,8 @@ class InstanceFromTemplateScheduling(dict):
10886
11005
  suggest = "automatic_restart"
10887
11006
  elif key == "availabilityDomain":
10888
11007
  suggest = "availability_domain"
11008
+ elif key == "gracefulShutdown":
11009
+ suggest = "graceful_shutdown"
10889
11010
  elif key == "hostErrorTimeoutSeconds":
10890
11011
  suggest = "host_error_timeout_seconds"
10891
11012
  elif key == "instanceTerminationAction":
@@ -10921,6 +11042,7 @@ class InstanceFromTemplateScheduling(dict):
10921
11042
  def __init__(__self__, *,
10922
11043
  automatic_restart: Optional[bool] = None,
10923
11044
  availability_domain: Optional[int] = None,
11045
+ graceful_shutdown: Optional['outputs.InstanceFromTemplateSchedulingGracefulShutdown'] = None,
10924
11046
  host_error_timeout_seconds: Optional[int] = None,
10925
11047
  instance_termination_action: Optional[str] = None,
10926
11048
  local_ssd_recovery_timeout: Optional['outputs.InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout'] = None,
@@ -10935,6 +11057,7 @@ class InstanceFromTemplateScheduling(dict):
10935
11057
  """
10936
11058
  :param bool automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
10937
11059
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
11060
+ :param 'InstanceFromTemplateSchedulingGracefulShutdownArgs' graceful_shutdown: Settings for the instance to perform a graceful shutdown.
10938
11061
  :param int host_error_timeout_seconds: Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
10939
11062
  :param str instance_termination_action: Specifies the action GCE should take when SPOT VM is preempted.
10940
11063
  :param 'InstanceFromTemplateSchedulingLocalSsdRecoveryTimeoutArgs' local_ssd_recovery_timeout: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -10953,6 +11076,8 @@ class InstanceFromTemplateScheduling(dict):
10953
11076
  pulumi.set(__self__, "automatic_restart", automatic_restart)
10954
11077
  if availability_domain is not None:
10955
11078
  pulumi.set(__self__, "availability_domain", availability_domain)
11079
+ if graceful_shutdown is not None:
11080
+ pulumi.set(__self__, "graceful_shutdown", graceful_shutdown)
10956
11081
  if host_error_timeout_seconds is not None:
10957
11082
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
10958
11083
  if instance_termination_action is not None:
@@ -10992,6 +11117,14 @@ class InstanceFromTemplateScheduling(dict):
10992
11117
  """
10993
11118
  return pulumi.get(self, "availability_domain")
10994
11119
 
11120
+ @property
11121
+ @pulumi.getter(name="gracefulShutdown")
11122
+ def graceful_shutdown(self) -> Optional['outputs.InstanceFromTemplateSchedulingGracefulShutdown']:
11123
+ """
11124
+ Settings for the instance to perform a graceful shutdown.
11125
+ """
11126
+ return pulumi.get(self, "graceful_shutdown")
11127
+
10995
11128
  @property
10996
11129
  @pulumi.getter(name="hostErrorTimeoutSeconds")
10997
11130
  def host_error_timeout_seconds(self) -> Optional[int]:
@@ -11081,6 +11214,95 @@ class InstanceFromTemplateScheduling(dict):
11081
11214
  return pulumi.get(self, "provisioning_model")
11082
11215
 
11083
11216
 
11217
+ @pulumi.output_type
11218
+ class InstanceFromTemplateSchedulingGracefulShutdown(dict):
11219
+ @staticmethod
11220
+ def __key_warning(key: str):
11221
+ suggest = None
11222
+ if key == "maxDuration":
11223
+ suggest = "max_duration"
11224
+
11225
+ if suggest:
11226
+ pulumi.log.warn(f"Key '{key}' not found in InstanceFromTemplateSchedulingGracefulShutdown. Access the value via the '{suggest}' property getter instead.")
11227
+
11228
+ def __getitem__(self, key: str) -> Any:
11229
+ InstanceFromTemplateSchedulingGracefulShutdown.__key_warning(key)
11230
+ return super().__getitem__(key)
11231
+
11232
+ def get(self, key: str, default = None) -> Any:
11233
+ InstanceFromTemplateSchedulingGracefulShutdown.__key_warning(key)
11234
+ return super().get(key, default)
11235
+
11236
+ def __init__(__self__, *,
11237
+ enabled: bool,
11238
+ max_duration: Optional['outputs.InstanceFromTemplateSchedulingGracefulShutdownMaxDuration'] = None):
11239
+ """
11240
+ :param bool enabled: Opts-in for graceful shutdown.
11241
+ :param 'InstanceFromTemplateSchedulingGracefulShutdownMaxDurationArgs' max_duration: The time allotted for the instance to gracefully shut down.
11242
+ If the graceful shutdown isn't complete after this time, then the instance
11243
+ transitions to the STOPPING state.
11244
+ """
11245
+ pulumi.set(__self__, "enabled", enabled)
11246
+ if max_duration is not None:
11247
+ pulumi.set(__self__, "max_duration", max_duration)
11248
+
11249
+ @property
11250
+ @pulumi.getter
11251
+ def enabled(self) -> bool:
11252
+ """
11253
+ Opts-in for graceful shutdown.
11254
+ """
11255
+ return pulumi.get(self, "enabled")
11256
+
11257
+ @property
11258
+ @pulumi.getter(name="maxDuration")
11259
+ def max_duration(self) -> Optional['outputs.InstanceFromTemplateSchedulingGracefulShutdownMaxDuration']:
11260
+ """
11261
+ The time allotted for the instance to gracefully shut down.
11262
+ If the graceful shutdown isn't complete after this time, then the instance
11263
+ transitions to the STOPPING state.
11264
+ """
11265
+ return pulumi.get(self, "max_duration")
11266
+
11267
+
11268
+ @pulumi.output_type
11269
+ class InstanceFromTemplateSchedulingGracefulShutdownMaxDuration(dict):
11270
+ def __init__(__self__, *,
11271
+ seconds: int,
11272
+ nanos: Optional[int] = None):
11273
+ """
11274
+ :param int seconds: Span of time at a resolution of a second.
11275
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
11276
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
11277
+ resolution. Durations less than one second are represented
11278
+ with a 0 seconds field and a positive nanos field. Must
11279
+ be from 0 to 999,999,999 inclusive.
11280
+ """
11281
+ pulumi.set(__self__, "seconds", seconds)
11282
+ if nanos is not None:
11283
+ pulumi.set(__self__, "nanos", nanos)
11284
+
11285
+ @property
11286
+ @pulumi.getter
11287
+ def seconds(self) -> int:
11288
+ """
11289
+ Span of time at a resolution of a second.
11290
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
11291
+ """
11292
+ return pulumi.get(self, "seconds")
11293
+
11294
+ @property
11295
+ @pulumi.getter
11296
+ def nanos(self) -> Optional[int]:
11297
+ """
11298
+ Span of time that's a fraction of a second at nanosecond
11299
+ resolution. Durations less than one second are represented
11300
+ with a 0 seconds field and a positive nanos field. Must
11301
+ be from 0 to 999,999,999 inclusive.
11302
+ """
11303
+ return pulumi.get(self, "nanos")
11304
+
11305
+
11084
11306
  @pulumi.output_type
11085
11307
  class InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout(dict):
11086
11308
  def __init__(__self__, *,
@@ -13113,6 +13335,8 @@ class InstanceScheduling(dict):
13113
13335
  suggest = "automatic_restart"
13114
13336
  elif key == "availabilityDomain":
13115
13337
  suggest = "availability_domain"
13338
+ elif key == "gracefulShutdown":
13339
+ suggest = "graceful_shutdown"
13116
13340
  elif key == "hostErrorTimeoutSeconds":
13117
13341
  suggest = "host_error_timeout_seconds"
13118
13342
  elif key == "instanceTerminationAction":
@@ -13148,6 +13372,7 @@ class InstanceScheduling(dict):
13148
13372
  def __init__(__self__, *,
13149
13373
  automatic_restart: Optional[bool] = None,
13150
13374
  availability_domain: Optional[int] = None,
13375
+ graceful_shutdown: Optional['outputs.InstanceSchedulingGracefulShutdown'] = None,
13151
13376
  host_error_timeout_seconds: Optional[int] = None,
13152
13377
  instance_termination_action: Optional[str] = None,
13153
13378
  local_ssd_recovery_timeout: Optional['outputs.InstanceSchedulingLocalSsdRecoveryTimeout'] = None,
@@ -13164,6 +13389,7 @@ class InstanceScheduling(dict):
13164
13389
  restarted if it was terminated by Compute Engine (not a user).
13165
13390
  Defaults to true.
13166
13391
  :param int availability_domain: Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
13392
+ :param 'InstanceSchedulingGracefulShutdownArgs' graceful_shutdown: Settings for the instance to perform a graceful shutdown. Structure is documented below.
13167
13393
  :param int host_error_timeout_seconds: Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
13168
13394
  :param str instance_termination_action: Describe the type of termination action for VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
13169
13395
  :param 'InstanceSchedulingLocalSsdRecoveryTimeoutArgs' local_ssd_recovery_timeout: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -13194,6 +13420,8 @@ class InstanceScheduling(dict):
13194
13420
  pulumi.set(__self__, "automatic_restart", automatic_restart)
13195
13421
  if availability_domain is not None:
13196
13422
  pulumi.set(__self__, "availability_domain", availability_domain)
13423
+ if graceful_shutdown is not None:
13424
+ pulumi.set(__self__, "graceful_shutdown", graceful_shutdown)
13197
13425
  if host_error_timeout_seconds is not None:
13198
13426
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
13199
13427
  if instance_termination_action is not None:
@@ -13235,6 +13463,14 @@ class InstanceScheduling(dict):
13235
13463
  """
13236
13464
  return pulumi.get(self, "availability_domain")
13237
13465
 
13466
+ @property
13467
+ @pulumi.getter(name="gracefulShutdown")
13468
+ def graceful_shutdown(self) -> Optional['outputs.InstanceSchedulingGracefulShutdown']:
13469
+ """
13470
+ Settings for the instance to perform a graceful shutdown. Structure is documented below.
13471
+ """
13472
+ return pulumi.get(self, "graceful_shutdown")
13473
+
13238
13474
  @property
13239
13475
  @pulumi.getter(name="hostErrorTimeoutSeconds")
13240
13476
  def host_error_timeout_seconds(self) -> Optional[int]:
@@ -13339,17 +13575,68 @@ class InstanceScheduling(dict):
13339
13575
 
13340
13576
 
13341
13577
  @pulumi.output_type
13342
- class InstanceSchedulingLocalSsdRecoveryTimeout(dict):
13578
+ class InstanceSchedulingGracefulShutdown(dict):
13579
+ @staticmethod
13580
+ def __key_warning(key: str):
13581
+ suggest = None
13582
+ if key == "maxDuration":
13583
+ suggest = "max_duration"
13584
+
13585
+ if suggest:
13586
+ pulumi.log.warn(f"Key '{key}' not found in InstanceSchedulingGracefulShutdown. Access the value via the '{suggest}' property getter instead.")
13587
+
13588
+ def __getitem__(self, key: str) -> Any:
13589
+ InstanceSchedulingGracefulShutdown.__key_warning(key)
13590
+ return super().__getitem__(key)
13591
+
13592
+ def get(self, key: str, default = None) -> Any:
13593
+ InstanceSchedulingGracefulShutdown.__key_warning(key)
13594
+ return super().get(key, default)
13595
+
13596
+ def __init__(__self__, *,
13597
+ enabled: bool,
13598
+ max_duration: Optional['outputs.InstanceSchedulingGracefulShutdownMaxDuration'] = None):
13599
+ """
13600
+ :param bool enabled: Opts-in for graceful shutdown.
13601
+ :param 'InstanceSchedulingGracefulShutdownMaxDurationArgs' max_duration: The time allotted for the instance to gracefully shut down.
13602
+ If the graceful shutdown isn't complete after this time, then the instance
13603
+ transitions to the STOPPING state. Structure is documented below:
13604
+ """
13605
+ pulumi.set(__self__, "enabled", enabled)
13606
+ if max_duration is not None:
13607
+ pulumi.set(__self__, "max_duration", max_duration)
13608
+
13609
+ @property
13610
+ @pulumi.getter
13611
+ def enabled(self) -> bool:
13612
+ """
13613
+ Opts-in for graceful shutdown.
13614
+ """
13615
+ return pulumi.get(self, "enabled")
13616
+
13617
+ @property
13618
+ @pulumi.getter(name="maxDuration")
13619
+ def max_duration(self) -> Optional['outputs.InstanceSchedulingGracefulShutdownMaxDuration']:
13620
+ """
13621
+ The time allotted for the instance to gracefully shut down.
13622
+ If the graceful shutdown isn't complete after this time, then the instance
13623
+ transitions to the STOPPING state. Structure is documented below:
13624
+ """
13625
+ return pulumi.get(self, "max_duration")
13626
+
13627
+
13628
+ @pulumi.output_type
13629
+ class InstanceSchedulingGracefulShutdownMaxDuration(dict):
13343
13630
  def __init__(__self__, *,
13344
13631
  seconds: int,
13345
13632
  nanos: Optional[int] = None):
13346
13633
  """
13347
13634
  :param int seconds: Span of time at a resolution of a second.
13348
- Must be from 0 to 315,576,000,000 inclusive.
13635
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
13349
13636
  :param int nanos: Span of time that's a fraction of a second at nanosecond
13350
- resolution. Durations less than one second are represented
13351
- with a 0 seconds field and a positive nanos field. Must
13352
- be from 0 to 999,999,999 inclusive.
13637
+ resolution. Durations less than one second are represented with a 0
13638
+ `seconds` field and a positive `nanos` field. Must be from 0 to
13639
+ 999,999,999 inclusive.
13353
13640
  """
13354
13641
  pulumi.set(__self__, "seconds", seconds)
13355
13642
  if nanos is not None:
@@ -13360,7 +13647,7 @@ class InstanceSchedulingLocalSsdRecoveryTimeout(dict):
13360
13647
  def seconds(self) -> int:
13361
13648
  """
13362
13649
  Span of time at a resolution of a second.
13363
- Must be from 0 to 315,576,000,000 inclusive.
13650
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
13364
13651
  """
13365
13652
  return pulumi.get(self, "seconds")
13366
13653
 
@@ -13369,9 +13656,49 @@ class InstanceSchedulingLocalSsdRecoveryTimeout(dict):
13369
13656
  def nanos(self) -> Optional[int]:
13370
13657
  """
13371
13658
  Span of time that's a fraction of a second at nanosecond
13372
- resolution. Durations less than one second are represented
13373
- with a 0 seconds field and a positive nanos field. Must
13374
- be from 0 to 999,999,999 inclusive.
13659
+ resolution. Durations less than one second are represented with a 0
13660
+ `seconds` field and a positive `nanos` field. Must be from 0 to
13661
+ 999,999,999 inclusive.
13662
+ """
13663
+ return pulumi.get(self, "nanos")
13664
+
13665
+
13666
+ @pulumi.output_type
13667
+ class InstanceSchedulingLocalSsdRecoveryTimeout(dict):
13668
+ def __init__(__self__, *,
13669
+ seconds: int,
13670
+ nanos: Optional[int] = None):
13671
+ """
13672
+ :param int seconds: Span of time at a resolution of a second. Must be from 0 to
13673
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
13674
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
13675
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
13676
+ resolution. Durations less than one second are represented with a 0
13677
+ `seconds` field and a positive `nanos` field. Must be from 0 to
13678
+ 999,999,999 inclusive.
13679
+ """
13680
+ pulumi.set(__self__, "seconds", seconds)
13681
+ if nanos is not None:
13682
+ pulumi.set(__self__, "nanos", nanos)
13683
+
13684
+ @property
13685
+ @pulumi.getter
13686
+ def seconds(self) -> int:
13687
+ """
13688
+ Span of time at a resolution of a second. Must be from 0 to
13689
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
13690
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
13691
+ """
13692
+ return pulumi.get(self, "seconds")
13693
+
13694
+ @property
13695
+ @pulumi.getter
13696
+ def nanos(self) -> Optional[int]:
13697
+ """
13698
+ Span of time that's a fraction of a second at nanosecond
13699
+ resolution. Durations less than one second are represented with a 0
13700
+ `seconds` field and a positive `nanos` field. Must be from 0 to
13701
+ 999,999,999 inclusive.
13375
13702
  """
13376
13703
  return pulumi.get(self, "nanos")
13377
13704
 
@@ -15060,6 +15387,8 @@ class InstanceTemplateScheduling(dict):
15060
15387
  suggest = "automatic_restart"
15061
15388
  elif key == "availabilityDomain":
15062
15389
  suggest = "availability_domain"
15390
+ elif key == "gracefulShutdown":
15391
+ suggest = "graceful_shutdown"
15063
15392
  elif key == "hostErrorTimeoutSeconds":
15064
15393
  suggest = "host_error_timeout_seconds"
15065
15394
  elif key == "instanceTerminationAction":
@@ -15095,6 +15424,7 @@ class InstanceTemplateScheduling(dict):
15095
15424
  def __init__(__self__, *,
15096
15425
  automatic_restart: Optional[bool] = None,
15097
15426
  availability_domain: Optional[int] = None,
15427
+ graceful_shutdown: Optional['outputs.InstanceTemplateSchedulingGracefulShutdown'] = None,
15098
15428
  host_error_timeout_seconds: Optional[int] = None,
15099
15429
  instance_termination_action: Optional[str] = None,
15100
15430
  local_ssd_recovery_timeouts: Optional[Sequence['outputs.InstanceTemplateSchedulingLocalSsdRecoveryTimeout']] = None,
@@ -15111,6 +15441,7 @@ class InstanceTemplateScheduling(dict):
15111
15441
  automatically restarted if it is terminated by Compute Engine (not
15112
15442
  terminated by a user). This defaults to true.
15113
15443
  :param int availability_domain: Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
15444
+ :param 'InstanceTemplateSchedulingGracefulShutdownArgs' graceful_shutdown: Settings for the instance to perform a graceful shutdown. Structure is documented below.
15114
15445
  :param int host_error_timeout_seconds: Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
15115
15446
  :param str instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
15116
15447
  :param Sequence['InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -15140,6 +15471,8 @@ class InstanceTemplateScheduling(dict):
15140
15471
  pulumi.set(__self__, "automatic_restart", automatic_restart)
15141
15472
  if availability_domain is not None:
15142
15473
  pulumi.set(__self__, "availability_domain", availability_domain)
15474
+ if graceful_shutdown is not None:
15475
+ pulumi.set(__self__, "graceful_shutdown", graceful_shutdown)
15143
15476
  if host_error_timeout_seconds is not None:
15144
15477
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
15145
15478
  if instance_termination_action is not None:
@@ -15181,6 +15514,14 @@ class InstanceTemplateScheduling(dict):
15181
15514
  """
15182
15515
  return pulumi.get(self, "availability_domain")
15183
15516
 
15517
+ @property
15518
+ @pulumi.getter(name="gracefulShutdown")
15519
+ def graceful_shutdown(self) -> Optional['outputs.InstanceTemplateSchedulingGracefulShutdown']:
15520
+ """
15521
+ Settings for the instance to perform a graceful shutdown. Structure is documented below.
15522
+ """
15523
+ return pulumi.get(self, "graceful_shutdown")
15524
+
15184
15525
  @property
15185
15526
  @pulumi.getter(name="hostErrorTimeoutSeconds")
15186
15527
  def host_error_timeout_seconds(self) -> Optional[int]:
@@ -15284,17 +15625,68 @@ class InstanceTemplateScheduling(dict):
15284
15625
 
15285
15626
 
15286
15627
  @pulumi.output_type
15287
- class InstanceTemplateSchedulingLocalSsdRecoveryTimeout(dict):
15628
+ class InstanceTemplateSchedulingGracefulShutdown(dict):
15629
+ @staticmethod
15630
+ def __key_warning(key: str):
15631
+ suggest = None
15632
+ if key == "maxDuration":
15633
+ suggest = "max_duration"
15634
+
15635
+ if suggest:
15636
+ pulumi.log.warn(f"Key '{key}' not found in InstanceTemplateSchedulingGracefulShutdown. Access the value via the '{suggest}' property getter instead.")
15637
+
15638
+ def __getitem__(self, key: str) -> Any:
15639
+ InstanceTemplateSchedulingGracefulShutdown.__key_warning(key)
15640
+ return super().__getitem__(key)
15641
+
15642
+ def get(self, key: str, default = None) -> Any:
15643
+ InstanceTemplateSchedulingGracefulShutdown.__key_warning(key)
15644
+ return super().get(key, default)
15645
+
15646
+ def __init__(__self__, *,
15647
+ enabled: bool,
15648
+ max_duration: Optional['outputs.InstanceTemplateSchedulingGracefulShutdownMaxDuration'] = None):
15649
+ """
15650
+ :param bool enabled: Opts-in for graceful shutdown.
15651
+ :param 'InstanceTemplateSchedulingGracefulShutdownMaxDurationArgs' max_duration: The time allotted for the instance to gracefully shut down.
15652
+ If the graceful shutdown isn't complete after this time, then the instance
15653
+ transitions to the STOPPING state. Structure is documented below:
15654
+ """
15655
+ pulumi.set(__self__, "enabled", enabled)
15656
+ if max_duration is not None:
15657
+ pulumi.set(__self__, "max_duration", max_duration)
15658
+
15659
+ @property
15660
+ @pulumi.getter
15661
+ def enabled(self) -> bool:
15662
+ """
15663
+ Opts-in for graceful shutdown.
15664
+ """
15665
+ return pulumi.get(self, "enabled")
15666
+
15667
+ @property
15668
+ @pulumi.getter(name="maxDuration")
15669
+ def max_duration(self) -> Optional['outputs.InstanceTemplateSchedulingGracefulShutdownMaxDuration']:
15670
+ """
15671
+ The time allotted for the instance to gracefully shut down.
15672
+ If the graceful shutdown isn't complete after this time, then the instance
15673
+ transitions to the STOPPING state. Structure is documented below:
15674
+ """
15675
+ return pulumi.get(self, "max_duration")
15676
+
15677
+
15678
+ @pulumi.output_type
15679
+ class InstanceTemplateSchedulingGracefulShutdownMaxDuration(dict):
15288
15680
  def __init__(__self__, *,
15289
15681
  seconds: int,
15290
15682
  nanos: Optional[int] = None):
15291
15683
  """
15292
15684
  :param int seconds: Span of time at a resolution of a second.
15293
- Must be from 0 to 315,576,000,000 inclusive.
15685
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
15294
15686
  :param int nanos: Span of time that's a fraction of a second at nanosecond
15295
- resolution. Durations less than one second are represented
15296
- with a 0 seconds field and a positive nanos field. Must
15297
- be from 0 to 999,999,999 inclusive.
15687
+ resolution. Durations less than one second are represented with a 0
15688
+ `seconds` field and a positive `nanos` field. Must be from 0 to
15689
+ 999,999,999 inclusive.
15298
15690
  """
15299
15691
  pulumi.set(__self__, "seconds", seconds)
15300
15692
  if nanos is not None:
@@ -15305,7 +15697,7 @@ class InstanceTemplateSchedulingLocalSsdRecoveryTimeout(dict):
15305
15697
  def seconds(self) -> int:
15306
15698
  """
15307
15699
  Span of time at a resolution of a second.
15308
- Must be from 0 to 315,576,000,000 inclusive.
15700
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
15309
15701
  """
15310
15702
  return pulumi.get(self, "seconds")
15311
15703
 
@@ -15314,9 +15706,49 @@ class InstanceTemplateSchedulingLocalSsdRecoveryTimeout(dict):
15314
15706
  def nanos(self) -> Optional[int]:
15315
15707
  """
15316
15708
  Span of time that's a fraction of a second at nanosecond
15317
- resolution. Durations less than one second are represented
15318
- with a 0 seconds field and a positive nanos field. Must
15319
- be from 0 to 999,999,999 inclusive.
15709
+ resolution. Durations less than one second are represented with a 0
15710
+ `seconds` field and a positive `nanos` field. Must be from 0 to
15711
+ 999,999,999 inclusive.
15712
+ """
15713
+ return pulumi.get(self, "nanos")
15714
+
15715
+
15716
+ @pulumi.output_type
15717
+ class InstanceTemplateSchedulingLocalSsdRecoveryTimeout(dict):
15718
+ def __init__(__self__, *,
15719
+ seconds: int,
15720
+ nanos: Optional[int] = None):
15721
+ """
15722
+ :param int seconds: Span of time at a resolution of a second. Must be from 0 to
15723
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
15724
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
15725
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
15726
+ resolution. Durations less than one second are represented with a 0
15727
+ `seconds` field and a positive `nanos` field. Must be from 0 to
15728
+ 999,999,999 inclusive.
15729
+ """
15730
+ pulumi.set(__self__, "seconds", seconds)
15731
+ if nanos is not None:
15732
+ pulumi.set(__self__, "nanos", nanos)
15733
+
15734
+ @property
15735
+ @pulumi.getter
15736
+ def seconds(self) -> int:
15737
+ """
15738
+ Span of time at a resolution of a second. Must be from 0 to
15739
+ 315,576,000,000 inclusive. Note: these bounds are computed from: 60
15740
+ sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
15741
+ """
15742
+ return pulumi.get(self, "seconds")
15743
+
15744
+ @property
15745
+ @pulumi.getter
15746
+ def nanos(self) -> Optional[int]:
15747
+ """
15748
+ Span of time that's a fraction of a second at nanosecond
15749
+ resolution. Durations less than one second are represented with a 0
15750
+ `seconds` field and a positive `nanos` field. Must be from 0 to
15751
+ 999,999,999 inclusive.
15320
15752
  """
15321
15753
  return pulumi.get(self, "nanos")
15322
15754
 
@@ -25456,6 +25888,8 @@ class RegionInstanceTemplateScheduling(dict):
25456
25888
  suggest = "automatic_restart"
25457
25889
  elif key == "availabilityDomain":
25458
25890
  suggest = "availability_domain"
25891
+ elif key == "gracefulShutdown":
25892
+ suggest = "graceful_shutdown"
25459
25893
  elif key == "hostErrorTimeoutSeconds":
25460
25894
  suggest = "host_error_timeout_seconds"
25461
25895
  elif key == "instanceTerminationAction":
@@ -25491,6 +25925,7 @@ class RegionInstanceTemplateScheduling(dict):
25491
25925
  def __init__(__self__, *,
25492
25926
  automatic_restart: Optional[bool] = None,
25493
25927
  availability_domain: Optional[int] = None,
25928
+ graceful_shutdown: Optional['outputs.RegionInstanceTemplateSchedulingGracefulShutdown'] = None,
25494
25929
  host_error_timeout_seconds: Optional[int] = None,
25495
25930
  instance_termination_action: Optional[str] = None,
25496
25931
  local_ssd_recovery_timeouts: Optional[Sequence['outputs.RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout']] = None,
@@ -25507,6 +25942,7 @@ class RegionInstanceTemplateScheduling(dict):
25507
25942
  automatically restarted if it is terminated by Compute Engine (not
25508
25943
  terminated by a user). This defaults to true.
25509
25944
  :param int availability_domain: Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.
25945
+ :param 'RegionInstanceTemplateSchedulingGracefulShutdownArgs' graceful_shutdown: Settings for the instance to perform a graceful shutdown.
25510
25946
  :param int host_error_timeout_seconds: Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.
25511
25947
  :param str instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
25512
25948
  :param Sequence['RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -25536,6 +25972,8 @@ class RegionInstanceTemplateScheduling(dict):
25536
25972
  pulumi.set(__self__, "automatic_restart", automatic_restart)
25537
25973
  if availability_domain is not None:
25538
25974
  pulumi.set(__self__, "availability_domain", availability_domain)
25975
+ if graceful_shutdown is not None:
25976
+ pulumi.set(__self__, "graceful_shutdown", graceful_shutdown)
25539
25977
  if host_error_timeout_seconds is not None:
25540
25978
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
25541
25979
  if instance_termination_action is not None:
@@ -25577,6 +26015,14 @@ class RegionInstanceTemplateScheduling(dict):
25577
26015
  """
25578
26016
  return pulumi.get(self, "availability_domain")
25579
26017
 
26018
+ @property
26019
+ @pulumi.getter(name="gracefulShutdown")
26020
+ def graceful_shutdown(self) -> Optional['outputs.RegionInstanceTemplateSchedulingGracefulShutdown']:
26021
+ """
26022
+ Settings for the instance to perform a graceful shutdown.
26023
+ """
26024
+ return pulumi.get(self, "graceful_shutdown")
26025
+
25580
26026
  @property
25581
26027
  @pulumi.getter(name="hostErrorTimeoutSeconds")
25582
26028
  def host_error_timeout_seconds(self) -> Optional[int]:
@@ -25679,6 +26125,95 @@ class RegionInstanceTemplateScheduling(dict):
25679
26125
  return pulumi.get(self, "provisioning_model")
25680
26126
 
25681
26127
 
26128
+ @pulumi.output_type
26129
+ class RegionInstanceTemplateSchedulingGracefulShutdown(dict):
26130
+ @staticmethod
26131
+ def __key_warning(key: str):
26132
+ suggest = None
26133
+ if key == "maxDuration":
26134
+ suggest = "max_duration"
26135
+
26136
+ if suggest:
26137
+ pulumi.log.warn(f"Key '{key}' not found in RegionInstanceTemplateSchedulingGracefulShutdown. Access the value via the '{suggest}' property getter instead.")
26138
+
26139
+ def __getitem__(self, key: str) -> Any:
26140
+ RegionInstanceTemplateSchedulingGracefulShutdown.__key_warning(key)
26141
+ return super().__getitem__(key)
26142
+
26143
+ def get(self, key: str, default = None) -> Any:
26144
+ RegionInstanceTemplateSchedulingGracefulShutdown.__key_warning(key)
26145
+ return super().get(key, default)
26146
+
26147
+ def __init__(__self__, *,
26148
+ enabled: bool,
26149
+ max_duration: Optional['outputs.RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration'] = None):
26150
+ """
26151
+ :param bool enabled: Opts-in for graceful shutdown.
26152
+ :param 'RegionInstanceTemplateSchedulingGracefulShutdownMaxDurationArgs' max_duration: The time allotted for the instance to gracefully shut down.
26153
+ If the graceful shutdown isn't complete after this time, then the instance
26154
+ transitions to the STOPPING state. Structure is documented below:
26155
+ """
26156
+ pulumi.set(__self__, "enabled", enabled)
26157
+ if max_duration is not None:
26158
+ pulumi.set(__self__, "max_duration", max_duration)
26159
+
26160
+ @property
26161
+ @pulumi.getter
26162
+ def enabled(self) -> bool:
26163
+ """
26164
+ Opts-in for graceful shutdown.
26165
+ """
26166
+ return pulumi.get(self, "enabled")
26167
+
26168
+ @property
26169
+ @pulumi.getter(name="maxDuration")
26170
+ def max_duration(self) -> Optional['outputs.RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration']:
26171
+ """
26172
+ The time allotted for the instance to gracefully shut down.
26173
+ If the graceful shutdown isn't complete after this time, then the instance
26174
+ transitions to the STOPPING state. Structure is documented below:
26175
+ """
26176
+ return pulumi.get(self, "max_duration")
26177
+
26178
+
26179
+ @pulumi.output_type
26180
+ class RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration(dict):
26181
+ def __init__(__self__, *,
26182
+ seconds: int,
26183
+ nanos: Optional[int] = None):
26184
+ """
26185
+ :param int seconds: Span of time at a resolution of a second.
26186
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
26187
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
26188
+ resolution. Durations less than one second are represented with a 0
26189
+ `seconds` field and a positive `nanos` field. Must be from 0 to
26190
+ 999,999,999 inclusive.
26191
+ """
26192
+ pulumi.set(__self__, "seconds", seconds)
26193
+ if nanos is not None:
26194
+ pulumi.set(__self__, "nanos", nanos)
26195
+
26196
+ @property
26197
+ @pulumi.getter
26198
+ def seconds(self) -> int:
26199
+ """
26200
+ Span of time at a resolution of a second.
26201
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).`
26202
+ """
26203
+ return pulumi.get(self, "seconds")
26204
+
26205
+ @property
26206
+ @pulumi.getter
26207
+ def nanos(self) -> Optional[int]:
26208
+ """
26209
+ Span of time that's a fraction of a second at nanosecond
26210
+ resolution. Durations less than one second are represented with a 0
26211
+ `seconds` field and a positive `nanos` field. Must be from 0 to
26212
+ 999,999,999 inclusive.
26213
+ """
26214
+ return pulumi.get(self, "nanos")
26215
+
26216
+
25682
26217
  @pulumi.output_type
25683
26218
  class RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout(dict):
25684
26219
  def __init__(__self__, *,
@@ -54039,6 +54574,7 @@ class GetInstanceSchedulingResult(dict):
54039
54574
  def __init__(__self__, *,
54040
54575
  automatic_restart: bool,
54041
54576
  availability_domain: int,
54577
+ graceful_shutdowns: Sequence['outputs.GetInstanceSchedulingGracefulShutdownResult'],
54042
54578
  host_error_timeout_seconds: int,
54043
54579
  instance_termination_action: str,
54044
54580
  local_ssd_recovery_timeouts: Sequence['outputs.GetInstanceSchedulingLocalSsdRecoveryTimeoutResult'],
@@ -54054,6 +54590,7 @@ class GetInstanceSchedulingResult(dict):
54054
54590
  :param bool automatic_restart: Specifies if the instance should be
54055
54591
  restarted if it was terminated by Compute Engine (not a user).
54056
54592
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
54593
+ :param Sequence['GetInstanceSchedulingGracefulShutdownArgs'] graceful_shutdowns: Settings for the instance to perform a graceful shutdown.
54057
54594
  :param int host_error_timeout_seconds: Beta Time in seconds for host error detection.
54058
54595
  :param str instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
54059
54596
  :param Sequence['GetInstanceSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -54072,6 +54609,7 @@ class GetInstanceSchedulingResult(dict):
54072
54609
  """
54073
54610
  pulumi.set(__self__, "automatic_restart", automatic_restart)
54074
54611
  pulumi.set(__self__, "availability_domain", availability_domain)
54612
+ pulumi.set(__self__, "graceful_shutdowns", graceful_shutdowns)
54075
54613
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
54076
54614
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
54077
54615
  pulumi.set(__self__, "local_ssd_recovery_timeouts", local_ssd_recovery_timeouts)
@@ -54101,6 +54639,14 @@ class GetInstanceSchedulingResult(dict):
54101
54639
  """
54102
54640
  return pulumi.get(self, "availability_domain")
54103
54641
 
54642
+ @property
54643
+ @pulumi.getter(name="gracefulShutdowns")
54644
+ def graceful_shutdowns(self) -> Sequence['outputs.GetInstanceSchedulingGracefulShutdownResult']:
54645
+ """
54646
+ Settings for the instance to perform a graceful shutdown.
54647
+ """
54648
+ return pulumi.get(self, "graceful_shutdowns")
54649
+
54104
54650
  @property
54105
54651
  @pulumi.getter(name="hostErrorTimeoutSeconds")
54106
54652
  def host_error_timeout_seconds(self) -> int:
@@ -54192,6 +54738,76 @@ class GetInstanceSchedulingResult(dict):
54192
54738
  return pulumi.get(self, "provisioning_model")
54193
54739
 
54194
54740
 
54741
+ @pulumi.output_type
54742
+ class GetInstanceSchedulingGracefulShutdownResult(dict):
54743
+ def __init__(__self__, *,
54744
+ enabled: bool,
54745
+ max_durations: Sequence['outputs.GetInstanceSchedulingGracefulShutdownMaxDurationResult']):
54746
+ """
54747
+ :param bool enabled: Opts-in for graceful shutdown.
54748
+ :param Sequence['GetInstanceSchedulingGracefulShutdownMaxDurationArgs'] max_durations: The time allotted for the instance to gracefully shut down.
54749
+ If the graceful shutdown isn't complete after this time, then the instance
54750
+ transitions to the STOPPING state.
54751
+ """
54752
+ pulumi.set(__self__, "enabled", enabled)
54753
+ pulumi.set(__self__, "max_durations", max_durations)
54754
+
54755
+ @property
54756
+ @pulumi.getter
54757
+ def enabled(self) -> bool:
54758
+ """
54759
+ Opts-in for graceful shutdown.
54760
+ """
54761
+ return pulumi.get(self, "enabled")
54762
+
54763
+ @property
54764
+ @pulumi.getter(name="maxDurations")
54765
+ def max_durations(self) -> Sequence['outputs.GetInstanceSchedulingGracefulShutdownMaxDurationResult']:
54766
+ """
54767
+ The time allotted for the instance to gracefully shut down.
54768
+ If the graceful shutdown isn't complete after this time, then the instance
54769
+ transitions to the STOPPING state.
54770
+ """
54771
+ return pulumi.get(self, "max_durations")
54772
+
54773
+
54774
+ @pulumi.output_type
54775
+ class GetInstanceSchedulingGracefulShutdownMaxDurationResult(dict):
54776
+ def __init__(__self__, *,
54777
+ nanos: int,
54778
+ seconds: int):
54779
+ """
54780
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
54781
+ resolution. Durations less than one second are represented
54782
+ with a 0 seconds field and a positive nanos field. Must
54783
+ be from 0 to 999,999,999 inclusive.
54784
+ :param int seconds: Span of time at a resolution of a second.
54785
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
54786
+ """
54787
+ pulumi.set(__self__, "nanos", nanos)
54788
+ pulumi.set(__self__, "seconds", seconds)
54789
+
54790
+ @property
54791
+ @pulumi.getter
54792
+ def nanos(self) -> int:
54793
+ """
54794
+ Span of time that's a fraction of a second at nanosecond
54795
+ resolution. Durations less than one second are represented
54796
+ with a 0 seconds field and a positive nanos field. Must
54797
+ be from 0 to 999,999,999 inclusive.
54798
+ """
54799
+ return pulumi.get(self, "nanos")
54800
+
54801
+ @property
54802
+ @pulumi.getter
54803
+ def seconds(self) -> int:
54804
+ """
54805
+ Span of time at a resolution of a second.
54806
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
54807
+ """
54808
+ return pulumi.get(self, "seconds")
54809
+
54810
+
54195
54811
  @pulumi.output_type
54196
54812
  class GetInstanceSchedulingLocalSsdRecoveryTimeoutResult(dict):
54197
54813
  def __init__(__self__, *,
@@ -55369,6 +55985,7 @@ class GetInstanceTemplateSchedulingResult(dict):
55369
55985
  def __init__(__self__, *,
55370
55986
  automatic_restart: bool,
55371
55987
  availability_domain: int,
55988
+ graceful_shutdowns: Sequence['outputs.GetInstanceTemplateSchedulingGracefulShutdownResult'],
55372
55989
  host_error_timeout_seconds: int,
55373
55990
  instance_termination_action: str,
55374
55991
  local_ssd_recovery_timeouts: Sequence['outputs.GetInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult'],
@@ -55385,6 +56002,7 @@ class GetInstanceTemplateSchedulingResult(dict):
55385
56002
  automatically restarted if it is terminated by Compute Engine (not
55386
56003
  terminated by a user). This defaults to true.
55387
56004
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
56005
+ :param Sequence['GetInstanceTemplateSchedulingGracefulShutdownArgs'] graceful_shutdowns: Settings for the instance to perform a graceful shutdown.
55388
56006
  :param int host_error_timeout_seconds: Beta Time in seconds for host error detection.
55389
56007
  :param str instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
55390
56008
  :param Sequence['GetInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -55409,6 +56027,7 @@ class GetInstanceTemplateSchedulingResult(dict):
55409
56027
  """
55410
56028
  pulumi.set(__self__, "automatic_restart", automatic_restart)
55411
56029
  pulumi.set(__self__, "availability_domain", availability_domain)
56030
+ pulumi.set(__self__, "graceful_shutdowns", graceful_shutdowns)
55412
56031
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
55413
56032
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
55414
56033
  pulumi.set(__self__, "local_ssd_recovery_timeouts", local_ssd_recovery_timeouts)
@@ -55439,6 +56058,14 @@ class GetInstanceTemplateSchedulingResult(dict):
55439
56058
  """
55440
56059
  return pulumi.get(self, "availability_domain")
55441
56060
 
56061
+ @property
56062
+ @pulumi.getter(name="gracefulShutdowns")
56063
+ def graceful_shutdowns(self) -> Sequence['outputs.GetInstanceTemplateSchedulingGracefulShutdownResult']:
56064
+ """
56065
+ Settings for the instance to perform a graceful shutdown.
56066
+ """
56067
+ return pulumi.get(self, "graceful_shutdowns")
56068
+
55442
56069
  @property
55443
56070
  @pulumi.getter(name="hostErrorTimeoutSeconds")
55444
56071
  def host_error_timeout_seconds(self) -> int:
@@ -55538,6 +56165,76 @@ class GetInstanceTemplateSchedulingResult(dict):
55538
56165
  return pulumi.get(self, "provisioning_model")
55539
56166
 
55540
56167
 
56168
+ @pulumi.output_type
56169
+ class GetInstanceTemplateSchedulingGracefulShutdownResult(dict):
56170
+ def __init__(__self__, *,
56171
+ enabled: bool,
56172
+ max_durations: Sequence['outputs.GetInstanceTemplateSchedulingGracefulShutdownMaxDurationResult']):
56173
+ """
56174
+ :param bool enabled: Opts-in for graceful shutdown.
56175
+ :param Sequence['GetInstanceTemplateSchedulingGracefulShutdownMaxDurationArgs'] max_durations: The time allotted for the instance to gracefully shut down.
56176
+ If the graceful shutdown isn't complete after this time, then the instance
56177
+ transitions to the STOPPING state.
56178
+ """
56179
+ pulumi.set(__self__, "enabled", enabled)
56180
+ pulumi.set(__self__, "max_durations", max_durations)
56181
+
56182
+ @property
56183
+ @pulumi.getter
56184
+ def enabled(self) -> bool:
56185
+ """
56186
+ Opts-in for graceful shutdown.
56187
+ """
56188
+ return pulumi.get(self, "enabled")
56189
+
56190
+ @property
56191
+ @pulumi.getter(name="maxDurations")
56192
+ def max_durations(self) -> Sequence['outputs.GetInstanceTemplateSchedulingGracefulShutdownMaxDurationResult']:
56193
+ """
56194
+ The time allotted for the instance to gracefully shut down.
56195
+ If the graceful shutdown isn't complete after this time, then the instance
56196
+ transitions to the STOPPING state.
56197
+ """
56198
+ return pulumi.get(self, "max_durations")
56199
+
56200
+
56201
+ @pulumi.output_type
56202
+ class GetInstanceTemplateSchedulingGracefulShutdownMaxDurationResult(dict):
56203
+ def __init__(__self__, *,
56204
+ nanos: int,
56205
+ seconds: int):
56206
+ """
56207
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
56208
+ resolution. Durations less than one second are represented
56209
+ with a 0 seconds field and a positive nanos field. Must
56210
+ be from 0 to 999,999,999 inclusive.
56211
+ :param int seconds: Span of time at a resolution of a second.
56212
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
56213
+ """
56214
+ pulumi.set(__self__, "nanos", nanos)
56215
+ pulumi.set(__self__, "seconds", seconds)
56216
+
56217
+ @property
56218
+ @pulumi.getter
56219
+ def nanos(self) -> int:
56220
+ """
56221
+ Span of time that's a fraction of a second at nanosecond
56222
+ resolution. Durations less than one second are represented
56223
+ with a 0 seconds field and a positive nanos field. Must
56224
+ be from 0 to 999,999,999 inclusive.
56225
+ """
56226
+ return pulumi.get(self, "nanos")
56227
+
56228
+ @property
56229
+ @pulumi.getter
56230
+ def seconds(self) -> int:
56231
+ """
56232
+ Span of time at a resolution of a second.
56233
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
56234
+ """
56235
+ return pulumi.get(self, "seconds")
56236
+
56237
+
55541
56238
  @pulumi.output_type
55542
56239
  class GetInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult(dict):
55543
56240
  def __init__(__self__, *,
@@ -57713,6 +58410,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
57713
58410
  def __init__(__self__, *,
57714
58411
  automatic_restart: bool,
57715
58412
  availability_domain: int,
58413
+ graceful_shutdowns: Sequence['outputs.GetRegionInstanceTemplateSchedulingGracefulShutdownResult'],
57716
58414
  host_error_timeout_seconds: int,
57717
58415
  instance_termination_action: str,
57718
58416
  local_ssd_recovery_timeouts: Sequence['outputs.GetRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult'],
@@ -57729,6 +58427,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
57729
58427
  automatically restarted if it is terminated by Compute Engine (not
57730
58428
  terminated by a user). This defaults to true.
57731
58429
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
58430
+ :param Sequence['GetRegionInstanceTemplateSchedulingGracefulShutdownArgs'] graceful_shutdowns: Settings for the instance to perform a graceful shutdown.
57732
58431
  :param int host_error_timeout_seconds: Beta Time in seconds for host error detection.
57733
58432
  :param str instance_termination_action: Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)
57734
58433
  :param Sequence['GetRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs'] local_ssd_recovery_timeouts: Specifies the maximum amount of time a Local Ssd Vm should wait while
@@ -57753,6 +58452,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
57753
58452
  """
57754
58453
  pulumi.set(__self__, "automatic_restart", automatic_restart)
57755
58454
  pulumi.set(__self__, "availability_domain", availability_domain)
58455
+ pulumi.set(__self__, "graceful_shutdowns", graceful_shutdowns)
57756
58456
  pulumi.set(__self__, "host_error_timeout_seconds", host_error_timeout_seconds)
57757
58457
  pulumi.set(__self__, "instance_termination_action", instance_termination_action)
57758
58458
  pulumi.set(__self__, "local_ssd_recovery_timeouts", local_ssd_recovery_timeouts)
@@ -57783,6 +58483,14 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
57783
58483
  """
57784
58484
  return pulumi.get(self, "availability_domain")
57785
58485
 
58486
+ @property
58487
+ @pulumi.getter(name="gracefulShutdowns")
58488
+ def graceful_shutdowns(self) -> Sequence['outputs.GetRegionInstanceTemplateSchedulingGracefulShutdownResult']:
58489
+ """
58490
+ Settings for the instance to perform a graceful shutdown.
58491
+ """
58492
+ return pulumi.get(self, "graceful_shutdowns")
58493
+
57786
58494
  @property
57787
58495
  @pulumi.getter(name="hostErrorTimeoutSeconds")
57788
58496
  def host_error_timeout_seconds(self) -> int:
@@ -57882,6 +58590,76 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
57882
58590
  return pulumi.get(self, "provisioning_model")
57883
58591
 
57884
58592
 
58593
+ @pulumi.output_type
58594
+ class GetRegionInstanceTemplateSchedulingGracefulShutdownResult(dict):
58595
+ def __init__(__self__, *,
58596
+ enabled: bool,
58597
+ max_durations: Sequence['outputs.GetRegionInstanceTemplateSchedulingGracefulShutdownMaxDurationResult']):
58598
+ """
58599
+ :param bool enabled: Opts-in for graceful shutdown.
58600
+ :param Sequence['GetRegionInstanceTemplateSchedulingGracefulShutdownMaxDurationArgs'] max_durations: The time allotted for the instance to gracefully shut down.
58601
+ If the graceful shutdown isn't complete after this time, then the instance
58602
+ transitions to the STOPPING state.
58603
+ """
58604
+ pulumi.set(__self__, "enabled", enabled)
58605
+ pulumi.set(__self__, "max_durations", max_durations)
58606
+
58607
+ @property
58608
+ @pulumi.getter
58609
+ def enabled(self) -> bool:
58610
+ """
58611
+ Opts-in for graceful shutdown.
58612
+ """
58613
+ return pulumi.get(self, "enabled")
58614
+
58615
+ @property
58616
+ @pulumi.getter(name="maxDurations")
58617
+ def max_durations(self) -> Sequence['outputs.GetRegionInstanceTemplateSchedulingGracefulShutdownMaxDurationResult']:
58618
+ """
58619
+ The time allotted for the instance to gracefully shut down.
58620
+ If the graceful shutdown isn't complete after this time, then the instance
58621
+ transitions to the STOPPING state.
58622
+ """
58623
+ return pulumi.get(self, "max_durations")
58624
+
58625
+
58626
+ @pulumi.output_type
58627
+ class GetRegionInstanceTemplateSchedulingGracefulShutdownMaxDurationResult(dict):
58628
+ def __init__(__self__, *,
58629
+ nanos: int,
58630
+ seconds: int):
58631
+ """
58632
+ :param int nanos: Span of time that's a fraction of a second at nanosecond
58633
+ resolution. Durations less than one second are represented
58634
+ with a 0 seconds field and a positive nanos field. Must
58635
+ be from 0 to 999,999,999 inclusive.
58636
+ :param int seconds: Span of time at a resolution of a second.
58637
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
58638
+ """
58639
+ pulumi.set(__self__, "nanos", nanos)
58640
+ pulumi.set(__self__, "seconds", seconds)
58641
+
58642
+ @property
58643
+ @pulumi.getter
58644
+ def nanos(self) -> int:
58645
+ """
58646
+ Span of time that's a fraction of a second at nanosecond
58647
+ resolution. Durations less than one second are represented
58648
+ with a 0 seconds field and a positive nanos field. Must
58649
+ be from 0 to 999,999,999 inclusive.
58650
+ """
58651
+ return pulumi.get(self, "nanos")
58652
+
58653
+ @property
58654
+ @pulumi.getter
58655
+ def seconds(self) -> int:
58656
+ """
58657
+ Span of time at a resolution of a second.
58658
+ The value must be between 1 and 3600, which is 3,600 seconds (one hour).
58659
+ """
58660
+ return pulumi.get(self, "seconds")
58661
+
58662
+
57885
58663
  @pulumi.output_type
57886
58664
  class GetRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutResult(dict):
57887
58665
  def __init__(__self__, *,