<filename>sdk/dotnet/Inputs/DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs.cs// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.Yandex.Inputs
{

    public sealed class DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Defines an autoscaling rule based on the average CPU utilization of the instance group. If not set default autoscaling metric will be used.
        /// </summary>
        [Input("cpuUtilizationTarget")]
        public Input<double>? CpuUtilizationTarget { get; set; }

        /// <summary>
        /// Timeout to gracefully decommission nodes during downscaling. In seconds.
        /// </summary>
        [Input("decommissionTimeout")]
        public Input<int>? DecommissionTimeout { get; set; }

        /// <summary>
        /// Maximum number of nodes in autoscaling subclusters.
        /// </summary>
        [Input("maxHostsCount", required: true)]
        public Input<int> MaxHostsCount { get; set; } = null!;

        /// <summary>
        /// Time in seconds allotted for averaging metrics.
        /// </summary>
        [Input("measurementDuration")]
        public Input<int>? MeasurementDuration { get; set; }

        /// <summary>
        /// Bool flag -- whether to use preemptible compute instances. Preemptible instances are stopped at least once every 24 hours, and can be stopped at any time if their resources are needed by Compute. For more information, see [Preemptible Virtual Machines](https://cloud.yandex.com/docs/compute/concepts/preemptible-vm).
        /// </summary>
        [Input("preemptible")]
        public Input<bool>? Preemptible { get; set; }

        /// <summary>
        /// Minimum amount of time in seconds allotted for monitoring before Instance Groups can reduce the number of instances in the group. During this time, the group size doesn't decrease, even if the new metric values indicate that it should.
        /// </summary>
        [Input("stabilizationDuration")]
        public Input<int>? StabilizationDuration { get; set; }

        /// <summary>
        /// The warmup time of the instance in seconds. During this time, traffic is sent to the instance, but instance metrics are not collected.
        /// </summary>
        [Input("warmupDuration")]
        public Input<int>? WarmupDuration { get; set; }

        public DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs()
        {
        }
        public static new DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs Empty => new DataprocClusterClusterConfigSubclusterSpecAutoscalingConfigArgs();
    }
}
