def __init__(__self__, *, automatic_restart: Optional[pulumi.Input[bool]]=None, availability_domain: Optional[pulumi.Input[int]]=None, current_cpus: Optional[pulumi.Input[int]]=None, current_memory_mb: Optional[pulumi.Input[str]]=None, host_error_timeout_seconds: Optional[pulumi.Input[int]]=None, instance_termination_action: Optional[pulumi.Input['SchedulingInstanceTerminationAction']]=None, latency_tolerant: Optional[pulumi.Input[bool]]=None, location_hint: Optional[pulumi.Input[str]]=None, maintenance_freeze_duration_hours: Optional[pulumi.Input[int]]=None, maintenance_interval: Optional[pulumi.Input['SchedulingMaintenanceInterval']]=None, max_run_duration: Optional[pulumi.Input['DurationArgs']]=None, min_node_cpus: Optional[pulumi.Input[int]]=None, node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['SchedulingNodeAffinityArgs']]]]=None, on_host_maintenance: Optional[pulumi.Input['SchedulingOnHostMaintenance']]=None, preemptible: Optional[pulumi.Input[bool]]=None, provisioning_model: Optional[pulumi.Input['SchedulingProvisioningModel']]=None, termination_time: Optional[pulumi.Input[str]]=None):
    "\n        Sets the scheduling options for an Instance. NextID: 21\n        :param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.\n        :param pulumi.Input[int] availability_domain: Specifies the availability domain (AD), which this instance should be scheduled on. The AD belongs to the spread GroupPlacementPolicy resource policy that has been assigned to the instance. Specify a value between 1-max count of availability domains in your GroupPlacementPolicy. See go/placement-policy-extension for more details.\n        :param pulumi.Input[int] current_cpus: Current number of vCPUs available for VM. 0 or unset means default vCPUs of the current machine type.\n        :param pulumi.Input[str] current_memory_mb: Current amount of memory (in MB) available for VM. 0 or unset means default amount of memory of the current machine type.\n        :param pulumi.Input[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.\n        :param pulumi.Input['SchedulingInstanceTerminationAction'] instance_termination_action: Specifies the termination action for the instance.\n        :param pulumi.Input[bool] latency_tolerant: Defines whether the instance is tolerant of higher cpu latency. This can only be set during instance creation, or when the instance is not currently running. It must not be set if the preemptible option is also set.\n        :param pulumi.Input[str] location_hint: An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.\n        :param pulumi.Input[int] maintenance_freeze_duration_hours: Specifies the number of hours after VM instance creation where the VM won't be scheduled for maintenance.\n        :param pulumi.Input['SchedulingMaintenanceInterval'] maintenance_interval: For more information about maintenance intervals, see Setting maintenance intervals.\n        :param pulumi.Input['DurationArgs'] max_run_duration: Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration.\n        :param pulumi.Input[int] min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.\n        :param pulumi.Input[Sequence[pulumi.Input['SchedulingNodeAffinityArgs']]] node_affinities: A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.\n        :param pulumi.Input['SchedulingOnHostMaintenance'] on_host_maintenance: Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.\n        :param pulumi.Input[bool] preemptible: Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.\n        :param pulumi.Input['SchedulingProvisioningModel'] provisioning_model: Specifies the provisioning model of the instance.\n        :param pulumi.Input[str] termination_time: Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.\n        "
    if (automatic_restart is not None):
        pulumi.set(__self__, 'automatic_restart', automatic_restart)
    if (availability_domain is not None):
        pulumi.set(__self__, 'availability_domain', availability_domain)
    if (current_cpus is not None):
        pulumi.set(__self__, 'current_cpus', current_cpus)
    if (current_memory_mb is not None):
        pulumi.set(__self__, 'current_memory_mb', current_memory_mb)
    if (host_error_timeout_seconds is not None):
        pulumi.set(__self__, 'host_error_timeout_seconds', host_error_timeout_seconds)
    if (instance_termination_action is not None):
        pulumi.set(__self__, 'instance_termination_action', instance_termination_action)
    if (latency_tolerant is not None):
        pulumi.set(__self__, 'latency_tolerant', latency_tolerant)
    if (location_hint is not None):
        pulumi.set(__self__, 'location_hint', location_hint)
    if (maintenance_freeze_duration_hours is not None):
        pulumi.set(__self__, 'maintenance_freeze_duration_hours', maintenance_freeze_duration_hours)
    if (maintenance_interval is not None):
        pulumi.set(__self__, 'maintenance_interval', maintenance_interval)
    if (max_run_duration is not None):
        pulumi.set(__self__, 'max_run_duration', max_run_duration)
    if (min_node_cpus is not None):
        pulumi.set(__self__, 'min_node_cpus', min_node_cpus)
    if (node_affinities is not None):
        pulumi.set(__self__, 'node_affinities', node_affinities)
    if (on_host_maintenance is not None):
        pulumi.set(__self__, 'on_host_maintenance', on_host_maintenance)
    if (preemptible is not None):
        pulumi.set(__self__, 'preemptible', preemptible)
    if (provisioning_model is not None):
        pulumi.set(__self__, 'provisioning_model', provisioning_model)
    if (termination_time is not None):
        pulumi.set(__self__, 'termination_time', termination_time)
Sets the scheduling options for an Instance. NextID: 21
:param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.
:param pulumi.Input[int] availability_domain: Specifies the availability domain (AD), which this instance should be scheduled on. The AD belongs to the spread GroupPlacementPolicy resource policy that has been assigned to the instance. Specify a value between 1-max count of availability domains in your GroupPlacementPolicy. See go/placement-policy-extension for more details.
:param pulumi.Input[int] current_cpus: Current number of vCPUs available for VM. 0 or unset means default vCPUs of the current machine type.
:param pulumi.Input[str] current_memory_mb: Current amount of memory (in MB) available for VM. 0 or unset means default amount of memory of the current machine type.
:param pulumi.Input[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.
:param pulumi.Input['SchedulingInstanceTerminationAction'] instance_termination_action: Specifies the termination action for the instance.
:param pulumi.Input[bool] latency_tolerant: Defines whether the instance is tolerant of higher cpu latency. This can only be set during instance creation, or when the instance is not currently running. It must not be set if the preemptible option is also set.
:param pulumi.Input[str] location_hint: An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.
:param pulumi.Input[int] maintenance_freeze_duration_hours: Specifies the number of hours after VM instance creation where the VM won't be scheduled for maintenance.
:param pulumi.Input['SchedulingMaintenanceInterval'] maintenance_interval: For more information about maintenance intervals, see Setting maintenance intervals.
:param pulumi.Input['DurationArgs'] max_run_duration: Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration.
:param pulumi.Input[int] min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.
:param pulumi.Input[Sequence[pulumi.Input['SchedulingNodeAffinityArgs']]] node_affinities: A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.
:param pulumi.Input['SchedulingOnHostMaintenance'] on_host_maintenance: Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.
:param pulumi.Input[bool] preemptible: Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.
:param pulumi.Input['SchedulingProvisioningModel'] provisioning_model: Specifies the provisioning model of the instance.
:param pulumi.Input[str] termination_time: Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
def __init__(__self__, *, automatic_restart: Optional[pulumi.Input[bool]]=None, availability_domain: Optional[pulumi.Input[int]]=None, current_cpus: Optional[pulumi.Input[int]]=None, current_memory_mb: Optional[pulumi.Input[str]]=None, host_error_timeout_seconds: Optional[pulumi.Input[int]]=None, instance_termination_action: Optional[pulumi.Input['SchedulingInstanceTerminationAction']]=None, latency_tolerant: Optional[pulumi.Input[bool]]=None, location_hint: Optional[pulumi.Input[str]]=None, maintenance_freeze_duration_hours: Optional[pulumi.Input[int]]=None, maintenance_interval: Optional[pulumi.Input['SchedulingMaintenanceInterval']]=None, max_run_duration: Optional[pulumi.Input['DurationArgs']]=None, min_node_cpus: Optional[pulumi.Input[int]]=None, node_affinities: Optional[pulumi.Input[Sequence[pulumi.Input['SchedulingNodeAffinityArgs']]]]=None, on_host_maintenance: Optional[pulumi.Input['SchedulingOnHostMaintenance']]=None, preemptible: Optional[pulumi.Input[bool]]=None, provisioning_model: Optional[pulumi.Input['SchedulingProvisioningModel']]=None, termination_time: Optional[pulumi.Input[str]]=None):
    "\n        Sets the scheduling options for an Instance. NextID: 21\n        :param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.\n        :param pulumi.Input[int] availability_domain: Specifies the availability domain (AD), which this instance should be scheduled on. The AD belongs to the spread GroupPlacementPolicy resource policy that has been assigned to the instance. Specify a value between 1-max count of availability domains in your GroupPlacementPolicy. See go/placement-policy-extension for more details.\n        :param pulumi.Input[int] current_cpus: Current number of vCPUs available for VM. 0 or unset means default vCPUs of the current machine type.\n        :param pulumi.Input[str] current_memory_mb: Current amount of memory (in MB) available for VM. 0 or unset means default amount of memory of the current machine type.\n        :param pulumi.Input[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.\n        :param pulumi.Input['SchedulingInstanceTerminationAction'] instance_termination_action: Specifies the termination action for the instance.\n        :param pulumi.Input[bool] latency_tolerant: Defines whether the instance is tolerant of higher cpu latency. This can only be set during instance creation, or when the instance is not currently running. It must not be set if the preemptible option is also set.\n        :param pulumi.Input[str] location_hint: An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.\n        :param pulumi.Input[int] maintenance_freeze_duration_hours: Specifies the number of hours after VM instance creation where the VM won't be scheduled for maintenance.\n        :param pulumi.Input['SchedulingMaintenanceInterval'] maintenance_interval: For more information about maintenance intervals, see Setting maintenance intervals.\n        :param pulumi.Input['DurationArgs'] max_run_duration: Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration.\n        :param pulumi.Input[int] min_node_cpus: The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.\n        :param pulumi.Input[Sequence[pulumi.Input['SchedulingNodeAffinityArgs']]] node_affinities: A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.\n        :param pulumi.Input['SchedulingOnHostMaintenance'] on_host_maintenance: Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Setting Instance Scheduling Options.\n        :param pulumi.Input[bool] preemptible: Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.\n        :param pulumi.Input['SchedulingProvisioningModel'] provisioning_model: Specifies the provisioning model of the instance.\n        :param pulumi.Input[str] termination_time: Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.\n        "
    if (automatic_restart is not None):
        pulumi.set(__self__, 'automatic_restart', automatic_restart)
    if (availability_domain is not None):
        pulumi.set(__self__, 'availability_domain', availability_domain)
    if (current_cpus is not None):
        pulumi.set(__self__, 'current_cpus', current_cpus)
    if (current_memory_mb is not None):
        pulumi.set(__self__, 'current_memory_mb', current_memory_mb)
    if (host_error_timeout_seconds is not None):
        pulumi.set(__self__, 'host_error_timeout_seconds', host_error_timeout_seconds)
    if (instance_termination_action is not None):
        pulumi.set(__self__, 'instance_termination_action', instance_termination_action)
    if (latency_tolerant is not None):
        pulumi.set(__self__, 'latency_tolerant', latency_tolerant)
    if (location_hint is not None):
        pulumi.set(__self__, 'location_hint', location_hint)
    if (maintenance_freeze_duration_hours is not None):
        pulumi.set(__self__, 'maintenance_freeze_duration_hours', maintenance_freeze_duration_hours)
    if (maintenance_interval is not None):
        pulumi.set(__self__, 'maintenance_interval', maintenance_interval)
    if (max_run_duration is not None):
        pulumi.set(__self__, 'max_run_duration', max_run_duration)
    if (min_node_cpus is not None):
        pulumi.set(__self__, 'min_node_cpus', min_node_cpus)
    if (node_affinities is not None):
        pulumi.set(__self__, 'node_affinities', node_affinities)
    if (on_host_maintenance is not None):
        pulumi.set(__self__, 'on_host_maintenance', on_host_maintenance)
    if (preemptible is not None):
        pulumi.set(__self__, 'preemptible', preemptible)
    if (provisioning_model is not None):
        pulumi.set(__self__, 'provisioning_model', provisioning_model)
    if (termination_time is not None):
        pulumi.set(__self__, 'termination_time', termination_time)