// *** 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 GetScalingGroupsGroupResult
    {
        /// <summary>
        /// Number of active instances in scaling group.
        /// </summary>
        public readonly int ActiveCapacity;
        public readonly string ActiveScalingConfiguration;
        /// <summary>
        /// Default cooldown time of scaling group.
        /// </summary>
        public readonly int CooldownTime;
        /// <summary>
        /// Creation time of scaling group.
        /// </summary>
        public readonly string CreationTime;
        /// <summary>
        /// Db instances id which the ECS instance attached to.
        /// </summary>
        public readonly ImmutableArray<string> DbInstanceIds;
        /// <summary>
        /// Whether the scaling group deletion protection is enabled.
        /// </summary>
        public readonly bool GroupDeletionProtection;
        /// <summary>
        /// The health check method of the scaling group.
        /// </summary>
        public readonly string HealthCheckType;
        /// <summary>
        /// ID of the scaling group.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Active launch template ID for scaling group.
        /// </summary>
        public readonly string LaunchTemplateId;
        /// <summary>
        /// Version of active launch template.
        /// </summary>
        public readonly string LaunchTemplateVersion;
        /// <summary>
        /// Lifecycle state of scaling group.
        /// </summary>
        public readonly string LifecycleState;
        /// <summary>
        /// Slb instances id which the ECS instance attached to.
        /// </summary>
        public readonly ImmutableArray<string> LoadBalancerIds;
        /// <summary>
        /// The maximum number of ECS instances.
        /// </summary>
        public readonly int MaxSize;
        /// <summary>
        /// The minimum number of ECS instances.
        /// </summary>
        public readonly int MinSize;
        /// <summary>
        /// The modification time.
        /// </summary>
        public readonly string ModificationTime;
        /// <summary>
        /// Name of the scaling group.
        /// * `active_scaling_configuration` -Active scaling configuration for scaling group.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Number of pending instances in scaling group.
        /// </summary>
        public readonly int PendingCapacity;
        /// <summary>
        /// Region ID the scaling group belongs to.
        /// </summary>
        public readonly string RegionId;
        /// <summary>
        /// Removal policy used to select the ECS instance to remove from the scaling group.
        /// </summary>
        public readonly ImmutableArray<string> RemovalPolicies;
        /// <summary>
        /// Number of removing instances in scaling group.
        /// </summary>
        public readonly int RemovingCapacity;
        /// <summary>
        /// The Process in suspension.
        /// </summary>
        public readonly ImmutableArray<string> SuspendedProcesses;
        /// <summary>
        /// A mapping of tags to assign to the resource.
        /// </summary>
        public readonly ImmutableDictionary<string, object>? Tags;
        /// <summary>
        /// Number of instances in scaling group.
        /// </summary>
        public readonly int TotalCapacity;
        /// <summary>
        /// The number of all ECS instances in the scaling group.
        /// </summary>
        public readonly int TotalInstanceCount;
        /// <summary>
        /// The ID of the VPC to which the scaling group belongs.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// The ID of the vSwitch to which the scaling group belongs.
        /// </summary>
        public readonly string VswitchId;
        /// <summary>
        /// Vswitches id in which the ECS instance launched.
        /// </summary>
        public readonly ImmutableArray<string> VswitchIds;

        [OutputConstructor]
        private GetScalingGroupsGroupResult(
            int activeCapacity,

            string activeScalingConfiguration,

            int cooldownTime,

            string creationTime,

            ImmutableArray<string> dbInstanceIds,

            bool groupDeletionProtection,

            string healthCheckType,

            string id,

            string launchTemplateId,

            string launchTemplateVersion,

            string lifecycleState,

            ImmutableArray<string> loadBalancerIds,

            int maxSize,

            int minSize,

            string modificationTime,

            string name,

            int pendingCapacity,

            string regionId,

            ImmutableArray<string> removalPolicies,

            int removingCapacity,

            ImmutableArray<string> suspendedProcesses,

            ImmutableDictionary<string, object>? tags,

            int totalCapacity,

            int totalInstanceCount,

            string vpcId,

            string vswitchId,

            ImmutableArray<string> vswitchIds)
        {
            ActiveCapacity = activeCapacity;
            ActiveScalingConfiguration = activeScalingConfiguration;
            CooldownTime = cooldownTime;
            CreationTime = creationTime;
            DbInstanceIds = dbInstanceIds;
            GroupDeletionProtection = groupDeletionProtection;
            HealthCheckType = healthCheckType;
            Id = id;
            LaunchTemplateId = launchTemplateId;
            LaunchTemplateVersion = launchTemplateVersion;
            LifecycleState = lifecycleState;
            LoadBalancerIds = loadBalancerIds;
            MaxSize = maxSize;
            MinSize = minSize;
            ModificationTime = modificationTime;
            Name = name;
            PendingCapacity = pendingCapacity;
            RegionId = regionId;
            RemovalPolicies = removalPolicies;
            RemovingCapacity = removingCapacity;
            SuspendedProcesses = suspendedProcesses;
            Tags = tags;
            TotalCapacity = totalCapacity;
            TotalInstanceCount = totalInstanceCount;
            VpcId = vpcId;
            VswitchId = vswitchId;
            VswitchIds = vswitchIds;
        }
    }
}
