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

    [OutputType]
    public sealed class GetSwitchesVswitchResult
    {
        /// <summary>
        /// The available ip address count of the VSwitch.
        /// </summary>
        public readonly int AvailableIpAddressCount;
        /// <summary>
        /// Filter results by a specific CIDR block. For example: "172.16.0.0/12".
        /// </summary>
        public readonly string CidrBlock;
        /// <summary>
        /// Time of creation.
        /// </summary>
        public readonly string CreationTime;
        /// <summary>
        /// Description of the VSwitch.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// ID of the VSwitch.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The IPv6 CIDR block of the switch.
        /// </summary>
        public readonly string Ipv6CidrBlock;
        /// <summary>
        /// Indicate whether the VSwitch is created by the system.
        /// </summary>
        public readonly bool IsDefault;
        /// <summary>
        /// Name of the VSwitch.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The Id of resource group which VSWitch belongs.
        /// </summary>
        public readonly string ResourceGroupId;
        /// <summary>
        /// The route table ID of the VSwitch.
        /// </summary>
        public readonly string RouteTableId;
        /// <summary>
        /// The status of the VSwitch. Valid values: `Available` and `Pending`.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// A mapping of tags to assign to the resource.
        /// </summary>
        public readonly ImmutableDictionary<string, object> Tags;
        /// <summary>
        /// ID of the VPC that owns the VSwitch.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// ID of the VSwitch.
        /// </summary>
        public readonly string VswitchId;
        /// <summary>
        /// The name of the VSwitch.
        /// </summary>
        public readonly string VswitchName;
        /// <summary>
        /// The availability zone of the VSwitch.
        /// </summary>
        public readonly string ZoneId;

        [OutputConstructor]
        private GetSwitchesVswitchResult(
            int availableIpAddressCount,

            string cidrBlock,

            string creationTime,

            string description,

            string id,

            string ipv6CidrBlock,

            bool isDefault,

            string name,

            string resourceGroupId,

            string routeTableId,

            string status,

            ImmutableDictionary<string, object> tags,

            string vpcId,

            string vswitchId,

            string vswitchName,

            string zoneId)
        {
            AvailableIpAddressCount = availableIpAddressCount;
            CidrBlock = cidrBlock;
            CreationTime = creationTime;
            Description = description;
            Id = id;
            Ipv6CidrBlock = ipv6CidrBlock;
            IsDefault = isDefault;
            Name = name;
            ResourceGroupId = resourceGroupId;
            RouteTableId = routeTableId;
            Status = status;
            Tags = tags;
            VpcId = vpcId;
            VswitchId = vswitchId;
            VswitchName = vswitchName;
            ZoneId = zoneId;
        }
    }
}
