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

    [OutputType]
    public sealed class GetEcsLaunchTemplatesTemplateResult
    {
        /// <summary>
        /// Instance auto release time.
        /// </summary>
        public readonly string AutoReleaseTime;
        /// <summary>
        /// CreatedBy.
        /// </summary>
        public readonly string CreatedBy;
        /// <summary>
        /// The list of data disks created with instance.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetEcsLaunchTemplatesTemplateDataDiskResult> DataDisks;
        /// <summary>
        /// The Default Version Number.
        /// </summary>
        public readonly int DefaultVersionNumber;
        /// <summary>
        /// The Deployment Set Id.
        /// </summary>
        public readonly string DeploymentSetId;
        /// <summary>
        /// System disk description.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// Whether to enable the instance operating system configuration.
        /// </summary>
        public readonly bool EnableVmOsConfig;
        /// <summary>
        /// Instance host name.
        /// </summary>
        public readonly string HostName;
        /// <summary>
        /// The ID of the Launch Template.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The Image Id.
        /// </summary>
        public readonly string ImageId;
        /// <summary>
        /// Mirror source.
        /// </summary>
        public readonly string ImageOwnerAlias;
        /// <summary>
        /// Internet bandwidth billing method.
        /// </summary>
        public readonly string InstanceChargeType;
        /// <summary>
        /// The Instance Name.
        /// </summary>
        public readonly string InstanceName;
        /// <summary>
        /// Instance type.
        /// </summary>
        public readonly string InstanceType;
        /// <summary>
        /// Internet bandwidth billing method.
        /// </summary>
        public readonly string InternetChargeType;
        /// <summary>
        /// The maximum inbound bandwidth from the Internet network, measured in Mbit/s.
        /// </summary>
        public readonly int InternetMaxBandwidthIn;
        /// <summary>
        /// Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s.
        /// </summary>
        public readonly int InternetMaxBandwidthOut;
        /// <summary>
        /// Whether it is an I/O-optimized instance or not.
        /// </summary>
        public readonly string IoOptimized;
        /// <summary>
        /// The name of the key pair.
        /// </summary>
        public readonly string KeyPairName;
        /// <summary>
        /// The Latest Version Number.
        /// </summary>
        public readonly int LatestVersionNumber;
        /// <summary>
        /// The ID of the Launch Template.
        /// </summary>
        public readonly string LaunchTemplateId;
        /// <summary>
        /// The Launch Template Name.
        /// </summary>
        public readonly string LaunchTemplateName;
        /// <summary>
        /// The Modified Time.
        /// </summary>
        public readonly string ModifiedTime;
        /// <summary>
        /// The list of network interfaces created with instance.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetEcsLaunchTemplatesTemplateNetworkInterfaceResult> NetworkInterfaces;
        /// <summary>
        /// Network type of the instance.
        /// </summary>
        public readonly string NetworkType;
        /// <summary>
        /// Whether to use the password preset by the mirror.
        /// </summary>
        public readonly bool PasswordInherit;
        /// <summary>
        /// The subscription period of the instance.
        /// </summary>
        public readonly int Period;
        /// <summary>
        /// The private IP address of the instance.
        /// </summary>
        public readonly string PrivateIpAddress;
        /// <summary>
        /// The RAM role name of the instance.
        /// </summary>
        public readonly string RamRoleName;
        /// <summary>
        /// The ID of the resource group to which to assign the instance, Elastic Block Storage (EBS) device, and ENI.
        /// </summary>
        public readonly string ResourceGroupId;
        /// <summary>
        /// Whether or not to activate the security enhancement feature and install network security software free of charge.
        /// </summary>
        public readonly string SecurityEnhancementStrategy;
        /// <summary>
        /// The security group ID.
        /// </summary>
        public readonly string SecurityGroupId;
        /// <summary>
        /// The security group IDs.
        /// </summary>
        public readonly ImmutableArray<string> SecurityGroupIds;
        /// <summary>
        /// The protection period of the preemptible instance.
        /// </summary>
        public readonly string SpotDuration;
        /// <summary>
        /// Sets the maximum hourly instance price.
        /// </summary>
        public readonly double SpotPriceLimit;
        /// <summary>
        /// The spot strategy for a Pay-As-You-Go instance.
        /// </summary>
        public readonly string SpotStrategy;
        /// <summary>
        /// The System Disk.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetEcsLaunchTemplatesTemplateSystemDiskResult> SystemDisks;
        /// <summary>
        /// The template tags.
        /// </summary>
        public readonly ImmutableDictionary<string, object> TemplateTags;
        /// <summary>
        /// The User Data.
        /// </summary>
        public readonly string UserData;
        /// <summary>
        /// The Version Description.
        /// </summary>
        public readonly string VersionDescription;
        /// <summary>
        /// VpcId.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// The vswitch id.
        /// </summary>
        public readonly string VswitchId;
        /// <summary>
        /// The Zone Id.
        /// </summary>
        public readonly string ZoneId;

        [OutputConstructor]
        private GetEcsLaunchTemplatesTemplateResult(
            string autoReleaseTime,

            string createdBy,

            ImmutableArray<Outputs.GetEcsLaunchTemplatesTemplateDataDiskResult> dataDisks,

            int defaultVersionNumber,

            string deploymentSetId,

            string description,

            bool enableVmOsConfig,

            string hostName,

            string id,

            string imageId,

            string imageOwnerAlias,

            string instanceChargeType,

            string instanceName,

            string instanceType,

            string internetChargeType,

            int internetMaxBandwidthIn,

            int internetMaxBandwidthOut,

            string ioOptimized,

            string keyPairName,

            int latestVersionNumber,

            string launchTemplateId,

            string launchTemplateName,

            string modifiedTime,

            ImmutableArray<Outputs.GetEcsLaunchTemplatesTemplateNetworkInterfaceResult> networkInterfaces,

            string networkType,

            bool passwordInherit,

            int period,

            string privateIpAddress,

            string ramRoleName,

            string resourceGroupId,

            string securityEnhancementStrategy,

            string securityGroupId,

            ImmutableArray<string> securityGroupIds,

            string spotDuration,

            double spotPriceLimit,

            string spotStrategy,

            ImmutableArray<Outputs.GetEcsLaunchTemplatesTemplateSystemDiskResult> systemDisks,

            ImmutableDictionary<string, object> templateTags,

            string userData,

            string versionDescription,

            string vpcId,

            string vswitchId,

            string zoneId)
        {
            AutoReleaseTime = autoReleaseTime;
            CreatedBy = createdBy;
            DataDisks = dataDisks;
            DefaultVersionNumber = defaultVersionNumber;
            DeploymentSetId = deploymentSetId;
            Description = description;
            EnableVmOsConfig = enableVmOsConfig;
            HostName = hostName;
            Id = id;
            ImageId = imageId;
            ImageOwnerAlias = imageOwnerAlias;
            InstanceChargeType = instanceChargeType;
            InstanceName = instanceName;
            InstanceType = instanceType;
            InternetChargeType = internetChargeType;
            InternetMaxBandwidthIn = internetMaxBandwidthIn;
            InternetMaxBandwidthOut = internetMaxBandwidthOut;
            IoOptimized = ioOptimized;
            KeyPairName = keyPairName;
            LatestVersionNumber = latestVersionNumber;
            LaunchTemplateId = launchTemplateId;
            LaunchTemplateName = launchTemplateName;
            ModifiedTime = modifiedTime;
            NetworkInterfaces = networkInterfaces;
            NetworkType = networkType;
            PasswordInherit = passwordInherit;
            Period = period;
            PrivateIpAddress = privateIpAddress;
            RamRoleName = ramRoleName;
            ResourceGroupId = resourceGroupId;
            SecurityEnhancementStrategy = securityEnhancementStrategy;
            SecurityGroupId = securityGroupId;
            SecurityGroupIds = securityGroupIds;
            SpotDuration = spotDuration;
            SpotPriceLimit = spotPriceLimit;
            SpotStrategy = spotStrategy;
            SystemDisks = systemDisks;
            TemplateTags = templateTags;
            UserData = userData;
            VersionDescription = versionDescription;
            VpcId = vpcId;
            VswitchId = vswitchId;
            ZoneId = zoneId;
        }
    }
}
