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

    [OutputType]
    public sealed class GetScalingConfigurationsConfigurationResult
    {
        /// <summary>
        /// Creation time of the scaling configuration.
        /// </summary>
        public readonly string CreationTime;
        /// <summary>
        /// Performance mode of the t5 burstable instance.
        /// </summary>
        public readonly string CreditSpecification;
        /// <summary>
        /// Data disks of the scaling configuration.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetScalingConfigurationsConfigurationDataDiskResult> DataDisks;
        /// <summary>
        /// (Optional,Available in 1.143.0+) Hostname of an ECS instance.
        /// </summary>
        public readonly string HostName;
        /// <summary>
        /// ID of the scaling rule.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Image ID of the scaling configuration.
        /// </summary>
        public readonly string ImageId;
        /// <summary>
        /// (Optional,Available in 1.143.0+) InstanceName of an ECS instance.
        /// </summary>
        public readonly string InstanceName;
        /// <summary>
        /// Resource type of an ECS instance.
        /// </summary>
        public readonly string InstanceType;
        /// <summary>
        /// Internet charge type of the scaling configuration.
        /// </summary>
        public readonly string InternetChargeType;
        /// <summary>
        /// Internet max bandwidth in of the scaling configuration.
        /// </summary>
        public readonly int InternetMaxBandwidthIn;
        /// <summary>
        /// Internet max bandwidth of the scaling configuration.
        /// </summary>
        public readonly int InternetMaxBandwidthOut;
        /// <summary>
        /// Lifecycle state of the scaling configuration.
        /// </summary>
        public readonly string LifecycleState;
        /// <summary>
        /// Name of the scaling configuration.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Scaling group id the scaling configurations belong to.
        /// </summary>
        public readonly string ScalingGroupId;
        /// <summary>
        /// Security group ID of the scaling configuration.
        /// </summary>
        public readonly string SecurityGroupId;
        /// <summary>
        /// (Optional, Available in 1.151.0+) The maximum price hourly for instance types.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetScalingConfigurationsConfigurationSpotPriceLimitResult> SpotPriceLimits;
        /// <summary>
        /// (Optional, Available in 1.151.0+) The spot strategy for a Pay-As-You-Go instance.
        /// </summary>
        public readonly string SpotStrategy;
        /// <summary>
        /// System disk category of the scaling configuration.
        /// </summary>
        public readonly string SystemDiskCategory;
        /// <summary>
        /// The performance level of the ESSD used as the system disk.
        /// </summary>
        public readonly string SystemDiskPerformanceLevel;
        /// <summary>
        /// System disk size of the scaling configuration.
        /// </summary>
        public readonly int SystemDiskSize;

        [OutputConstructor]
        private GetScalingConfigurationsConfigurationResult(
            string creationTime,

            string creditSpecification,

            ImmutableArray<Outputs.GetScalingConfigurationsConfigurationDataDiskResult> dataDisks,

            string hostName,

            string id,

            string imageId,

            string instanceName,

            string instanceType,

            string internetChargeType,

            int internetMaxBandwidthIn,

            int internetMaxBandwidthOut,

            string lifecycleState,

            string name,

            string scalingGroupId,

            string securityGroupId,

            ImmutableArray<Outputs.GetScalingConfigurationsConfigurationSpotPriceLimitResult> spotPriceLimits,

            string spotStrategy,

            string systemDiskCategory,

            string systemDiskPerformanceLevel,

            int systemDiskSize)
        {
            CreationTime = creationTime;
            CreditSpecification = creditSpecification;
            DataDisks = dataDisks;
            HostName = hostName;
            Id = id;
            ImageId = imageId;
            InstanceName = instanceName;
            InstanceType = instanceType;
            InternetChargeType = internetChargeType;
            InternetMaxBandwidthIn = internetMaxBandwidthIn;
            InternetMaxBandwidthOut = internetMaxBandwidthOut;
            LifecycleState = lifecycleState;
            Name = name;
            ScalingGroupId = scalingGroupId;
            SecurityGroupId = securityGroupId;
            SpotPriceLimits = spotPriceLimits;
            SpotStrategy = spotStrategy;
            SystemDiskCategory = systemDiskCategory;
            SystemDiskPerformanceLevel = systemDiskPerformanceLevel;
            SystemDiskSize = systemDiskSize;
        }
    }
}
