// *** 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.AliCloud.CS.Outputs
{

    [OutputType]
    public sealed class NodePoolScalingConfig
    {
        /// <summary>
        /// Peak EIP bandwidth. Its valid value range [1~500] in Mbps. Default to `5`.
        /// </summary>
        public readonly int? EipBandwidth;
        /// <summary>
        /// EIP billing type. `PayByBandwidth`: Charged at fixed bandwidth. `PayByTraffic`: Billed as used traffic. Default: `PayByBandwidth`. Conflict with `internet_charge_type`, EIP and public network IP can only choose one.
        /// </summary>
        public readonly string? EipInternetChargeType;
        /// <summary>
        /// Whether to bind EIP for an instance. Default: `false`.
        /// </summary>
        public readonly bool? IsBondEip;
        /// <summary>
        /// Max number of instances in a auto scaling group, its valid value range [0~1000]. `max_size` has to be greater than `min_size`.
        /// </summary>
        public readonly int MaxSize;
        /// <summary>
        /// Min number of instances in a auto scaling group, its valid value range [0~1000].
        /// </summary>
        public readonly int MinSize;
        /// <summary>
        /// Instance classification, not required. Vaild value: `cpu`, `gpu`, `gpushare` and `spot`. Default: `cpu`. The actual instance type is determined by `instance_types`.
        /// </summary>
        public readonly string? Type;

        [OutputConstructor]
        private NodePoolScalingConfig(
            int? eipBandwidth,

            string? eipInternetChargeType,

            bool? isBondEip,

            int maxSize,

            int minSize,

            string? type)
        {
            EipBandwidth = eipBandwidth;
            EipInternetChargeType = eipInternetChargeType;
            IsBondEip = isBondEip;
            MaxSize = maxSize;
            MinSize = minSize;
            Type = type;
        }
    }
}
