<reponame>rhysmdnz/pulumi-alicloud-rhys-hacks// *** 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 GetImagesImageResult
    {
        /// <summary>
        /// The image architecture. Valid values: `i386` and `x86_64`.
        /// </summary>
        public readonly string Architecture;
        /// <summary>
        /// Time of creation.
        /// </summary>
        public readonly string CreationTime;
        /// <summary>
        /// Description of the image.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// Description of the system with disks and snapshots under the image.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetImagesImageDiskDeviceMappingResult> DiskDeviceMappings;
        /// <summary>
        /// ID of the image.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The ID of the image.
        /// </summary>
        public readonly string ImageId;
        /// <summary>
        /// Alias of the image owner.
        /// </summary>
        public readonly string ImageOwnerAlias;
        /// <summary>
        /// Version of the image.
        /// </summary>
        public readonly string ImageVersion;
        public readonly bool IsCopied;
        public readonly string IsSelfShared;
        /// <summary>
        /// Whether the user has subscribed to the terms of service for the image product corresponding to the ProductCode.
        /// </summary>
        public readonly bool IsSubscribed;
        /// <summary>
        /// Specifies whether the image can be used on I/O optimized instances.
        /// </summary>
        public readonly bool IsSupportIoOptimized;
        public readonly string Name;
        /// <summary>
        /// Display Chinese name of the OS.
        /// </summary>
        public readonly string OsName;
        /// <summary>
        /// Display English name of the OS.
        /// </summary>
        public readonly string OsNameEn;
        /// <summary>
        /// The operating system type of the image. Valid values: `windows` and `linux`.
        /// </summary>
        public readonly string OsType;
        public readonly string Platform;
        /// <summary>
        /// Product code of the image on the image market.
        /// </summary>
        public readonly string ProductCode;
        /// <summary>
        /// Progress of image creation, presented in percentages.
        /// </summary>
        public readonly string Progress;
        /// <summary>
        /// Size of the created disk.
        /// </summary>
        public readonly int Size;
        public readonly string State;
        /// <summary>
        /// The status of the image. The following values are available, Separate multiple parameter values by using commas (,). Default value: `Available`. Valid values: 
        /// * `Creating`: The image is being created.
        /// * `Waiting`: The image is waiting to be processed.
        /// * `Available`: The image is available.
        /// * `UnAvailable`: The image is unavailable.
        /// * `CreateFailed`: The image failed to be created.
        /// * `Deprecated`: The image is discontinued.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// A mapping of tags to assign to the resource.
        /// </summary>
        public readonly ImmutableDictionary<string, object>? Tags;
        /// <summary>
        /// Specifies whether to check the validity of the request without actually making the request. Valid values:                                           
        /// * `instance`: The image is already in use and running on an ECS instance.
        /// * `none`: The image is not in use.
        /// </summary>
        public readonly string Usage;

        [OutputConstructor]
        private GetImagesImageResult(
            string architecture,

            string creationTime,

            string description,

            ImmutableArray<Outputs.GetImagesImageDiskDeviceMappingResult> diskDeviceMappings,

            string id,

            string imageId,

            string imageOwnerAlias,

            string imageVersion,

            bool isCopied,

            string isSelfShared,

            bool isSubscribed,

            bool isSupportIoOptimized,

            string name,

            string osName,

            string osNameEn,

            string osType,

            string platform,

            string productCode,

            string progress,

            int size,

            string state,

            string status,

            ImmutableDictionary<string, object>? tags,

            string usage)
        {
            Architecture = architecture;
            CreationTime = creationTime;
            Description = description;
            DiskDeviceMappings = diskDeviceMappings;
            Id = id;
            ImageId = imageId;
            ImageOwnerAlias = imageOwnerAlias;
            ImageVersion = imageVersion;
            IsCopied = isCopied;
            IsSelfShared = isSelfShared;
            IsSubscribed = isSubscribed;
            IsSupportIoOptimized = isSupportIoOptimized;
            Name = name;
            OsName = osName;
            OsNameEn = osNameEn;
            OsType = osType;
            Platform = platform;
            ProductCode = productCode;
            Progress = progress;
            Size = size;
            State = state;
            Status = status;
            Tags = tags;
            Usage = usage;
        }
    }
}
