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

    [OutputType]
    public sealed class GetContainerGroupsGroupResult
    {
        /// <summary>
        /// The id if ContainerGroup.
        /// </summary>
        public readonly string ContainerGroupId;
        /// <summary>
        /// The name of ContainerGroup.
        /// </summary>
        public readonly string ContainerGroupName;
        /// <summary>
        /// A list of containers. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupContainerResult> Containers;
        /// <summary>
        /// The amount of CPU resources allocated to the container.
        /// </summary>
        public readonly double Cpu;
        public readonly int Discount;
        /// <summary>
        /// The DNS settings.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupDnsConfigResult> DnsConfigs;
        /// <summary>
        /// The security context of the container group.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupEciSecurityContextResult> EciSecurityContexts;
        /// <summary>
        /// The ID of the ENI instance.
        /// </summary>
        public readonly string EniInstanceId;
        /// <summary>
        /// The events of the container group. Maximum: `50`.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupEventResult> Events;
        /// <summary>
        /// The time when the container group failed to run due to overdue payments. The timestamp follows the UTC and RFC3339 formats.
        /// </summary>
        public readonly string ExpiredTime;
        /// <summary>
        /// The time when the container failed to run tasks. The timestamp follows the UTC and RFC3339 formats.
        /// </summary>
        public readonly string FailedTime;
        /// <summary>
        /// The mapping between host names and IP addresses for a container in the container group.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupHostAliasResult> HostAliases;
        /// <summary>
        /// The ID of the Container Group.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// A list of init containers. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupInitContainerResult> InitContainers;
        /// <summary>
        /// The type of the ECS instance.
        /// </summary>
        public readonly string InstanceType;
        /// <summary>
        /// The public IP address of the container group.
        /// </summary>
        public readonly string InternetIp;
        /// <summary>
        /// The internal IP address of the container group.
        /// </summary>
        public readonly string IntranetIp;
        /// <summary>
        /// The IPv6 address.
        /// </summary>
        public readonly string Ipv6Address;
        /// <summary>
        /// The amount of memory resources allocated to the container group.
        /// </summary>
        public readonly double Memory;
        /// <summary>
        /// The RAM role that the container group assumes. ECI and ECS share the same RAM role.
        /// </summary>
        public readonly string RamRoleName;
        /// <summary>
        /// The ID of the resource group to which the container group belongs. If you have not specified a resource group for the container group, it is added to the default resource group.
        /// </summary>
        public readonly string ResourceGroupId;
        /// <summary>
        /// The restart policy of the container group.
        /// </summary>
        public readonly string RestartPolicy;
        /// <summary>
        /// The ID of the security group.
        /// </summary>
        public readonly string SecurityGroupId;
        /// <summary>
        /// The status of container.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// The time when all containers in the container group completed running the specified tasks. The timestamp follows the UTC and RFC 3339 formats. For example, 2018-08-02T15:00:00Z.
        /// </summary>
        public readonly string SucceededTime;
        /// <summary>
        /// The tags attached to the container group. Each tag is a key-value pair. You can attach up to 20 tags to a container group.
        /// </summary>
        public readonly ImmutableDictionary<string, object> Tags;
        /// <summary>
        /// The information about the mounted volume. You can mount up to 20 volumes.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetContainerGroupsGroupVolumeResult> Volumes;
        /// <summary>
        /// The if of vpc.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// The vswitch id.
        /// </summary>
        public readonly string VswitchId;
        /// <summary>
        /// The IDs of the zones where the container groups are deployed. If this parameter is not set, the system automatically selects the zones. By default, no value is specified.
        /// </summary>
        public readonly string ZoneId;

        [OutputConstructor]
        private GetContainerGroupsGroupResult(
            string containerGroupId,

            string containerGroupName,

            ImmutableArray<Outputs.GetContainerGroupsGroupContainerResult> containers,

            double cpu,

            int discount,

            ImmutableArray<Outputs.GetContainerGroupsGroupDnsConfigResult> dnsConfigs,

            ImmutableArray<Outputs.GetContainerGroupsGroupEciSecurityContextResult> eciSecurityContexts,

            string eniInstanceId,

            ImmutableArray<Outputs.GetContainerGroupsGroupEventResult> events,

            string expiredTime,

            string failedTime,

            ImmutableArray<Outputs.GetContainerGroupsGroupHostAliasResult> hostAliases,

            string id,

            ImmutableArray<Outputs.GetContainerGroupsGroupInitContainerResult> initContainers,

            string instanceType,

            string internetIp,

            string intranetIp,

            string ipv6Address,

            double memory,

            string ramRoleName,

            string resourceGroupId,

            string restartPolicy,

            string securityGroupId,

            string status,

            string succeededTime,

            ImmutableDictionary<string, object> tags,

            ImmutableArray<Outputs.GetContainerGroupsGroupVolumeResult> volumes,

            string vpcId,

            string vswitchId,

            string zoneId)
        {
            ContainerGroupId = containerGroupId;
            ContainerGroupName = containerGroupName;
            Containers = containers;
            Cpu = cpu;
            Discount = discount;
            DnsConfigs = dnsConfigs;
            EciSecurityContexts = eciSecurityContexts;
            EniInstanceId = eniInstanceId;
            Events = events;
            ExpiredTime = expiredTime;
            FailedTime = failedTime;
            HostAliases = hostAliases;
            Id = id;
            InitContainers = initContainers;
            InstanceType = instanceType;
            InternetIp = internetIp;
            IntranetIp = intranetIp;
            Ipv6Address = ipv6Address;
            Memory = memory;
            RamRoleName = ramRoleName;
            ResourceGroupId = resourceGroupId;
            RestartPolicy = restartPolicy;
            SecurityGroupId = securityGroupId;
            Status = status;
            SucceededTime = succeededTime;
            Tags = tags;
            Volumes = volumes;
            VpcId = vpcId;
            VswitchId = vswitchId;
            ZoneId = zoneId;
        }
    }
}
