// *** 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;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Kubernetes.Outputs
{

    [OutputType]
    public sealed class ClusterNodePoolGlobalConfig
    {
        /// <summary>
        /// Indicates which scale-out method will be used when there are multiple scaling groups. Valid values: `random` - select a random scaling group, `most-pods` - select the scaling group that can schedule the most pods, `least-waste` - select the scaling group that can ensure the fewest remaining resources after Pod scheduling.
        /// </summary>
        public readonly string? Expander;
        /// <summary>
        /// Whether to ignore DaemonSet pods by default when calculating resource usage.
        /// </summary>
        public readonly bool? IgnoreDaemonSetsUtilization;
        /// <summary>
        /// Indicates whether to enable scale-in.
        /// </summary>
        public readonly bool? IsScaleInEnabled;
        /// <summary>
        /// Max concurrent scale-in volume.
        /// </summary>
        public readonly int? MaxConcurrentScaleIn;
        /// <summary>
        /// Number of minutes after cluster scale-out when the system starts judging whether to perform scale-in.
        /// </summary>
        public readonly int? ScaleInDelay;
        /// <summary>
        /// Number of consecutive minutes of idleness after which the node is subject to scale-in.
        /// </summary>
        public readonly int? ScaleInUnneededTime;
        /// <summary>
        /// Percentage of node resource usage below which the node is considered to be idle.
        /// </summary>
        public readonly int? ScaleInUtilizationThreshold;
        /// <summary>
        /// During scale-in, ignore nodes with local storage pods.
        /// </summary>
        public readonly bool? SkipNodesWithLocalStorage;
        /// <summary>
        /// During scale-in, ignore nodes with pods in the kube-system namespace that are not managed by DaemonSet.
        /// </summary>
        public readonly bool? SkipNodesWithSystemPods;

        [OutputConstructor]
        private ClusterNodePoolGlobalConfig(
            string? expander,

            bool? ignoreDaemonSetsUtilization,

            bool? isScaleInEnabled,

            int? maxConcurrentScaleIn,

            int? scaleInDelay,

            int? scaleInUnneededTime,

            int? scaleInUtilizationThreshold,

            bool? skipNodesWithLocalStorage,

            bool? skipNodesWithSystemPods)
        {
            Expander = expander;
            IgnoreDaemonSetsUtilization = ignoreDaemonSetsUtilization;
            IsScaleInEnabled = isScaleInEnabled;
            MaxConcurrentScaleIn = maxConcurrentScaleIn;
            ScaleInDelay = scaleInDelay;
            ScaleInUnneededTime = scaleInUnneededTime;
            ScaleInUtilizationThreshold = scaleInUtilizationThreshold;
            SkipNodesWithLocalStorage = skipNodesWithLocalStorage;
            SkipNodesWithSystemPods = skipNodesWithSystemPods;
        }
    }
}
