<reponame>rhysmdnz/pulumi-alicloud-rhys-hacks<filename>sdk/dotnet/Slb/Outputs/GetApplicationLoadBalancersBalancerResult.cs// *** 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.Slb.Outputs
{

    [OutputType]
    public sealed class GetApplicationLoadBalancersBalancerResult
    {
        /// <summary>
        /// Service address of the SLBs.
        /// </summary>
        public readonly string Address;
        /// <summary>
        /// The address ip version. Valid values `ipv4` and `ipv6`.
        /// </summary>
        public readonly string AddressIpVersion;
        /// <summary>
        /// The address type of the SLB. Valid values `internet` and `intranet`.
        /// </summary>
        public readonly string AddressType;
        /// <summary>
        /// The auto release time.
        /// </summary>
        public readonly int AutoReleaseTime;
        /// <summary>
        /// The backend servers of the SLB.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetApplicationLoadBalancersBalancerBackendServerResult> BackendServers;
        /// <summary>
        /// The bandwidth of the SLB.
        /// </summary>
        public readonly int Bandwidth;
        /// <summary>
        /// The create time stamp of the SLB.
        /// </summary>
        public readonly int CreateTimeStamp;
        /// <summary>
        /// Whether the SLB should delete protection.
        /// </summary>
        public readonly string DeleteProtection;
        /// <summary>
        /// The end time of the SLB.
        /// </summary>
        public readonly string EndTime;
        /// <summary>
        /// The end time stamp of the SLB.
        /// </summary>
        public readonly int EndTimeStamp;
        /// <summary>
        /// ID of the SLB.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The internet charge type. Valid values `PayByBandwidth` and `PayByTraffic`.
        /// </summary>
        public readonly string InternetChargeType;
        /// <summary>
        /// The listener ports and protocal of the SLB.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetApplicationLoadBalancersBalancerListenerPortsAndProtocalResult> ListenerPortsAndProtocals;
        /// <summary>
        /// The listener ports and protocol of the SLB.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetApplicationLoadBalancersBalancerListenerPortsAndProtocolResult> ListenerPortsAndProtocols;
        /// <summary>
        /// Thd ID of the SLB.
        /// </summary>
        public readonly string LoadBalancerId;
        /// <summary>
        /// The name of the SLB.
        /// </summary>
        public readonly string LoadBalancerName;
        /// <summary>
        /// The specification of the SLB.
        /// </summary>
        public readonly string LoadBalancerSpec;
        /// <summary>
        /// The master zone id of the SLB.
        /// </summary>
        public readonly string MasterZoneId;
        /// <summary>
        /// The reason of modification protection.
        /// </summary>
        public readonly string ModificationProtectionReason;
        /// <summary>
        /// The status of modification protection.
        /// </summary>
        public readonly string ModificationProtectionStatus;
        /// <summary>
        /// Network type of the SLBs. Valid values: `vpc` and `classic`.
        /// </summary>
        public readonly string NetworkType;
        /// <summary>
        /// The payment type of SLB. Valid values `PayAsYouGo` and `Subscription`.
        /// </summary>
        public readonly string PaymentType;
        /// <summary>
        /// Region ID the SLB belongs to.
        /// </summary>
        public readonly string RegionIdAlias;
        /// <summary>
        /// The renewal cyc unit of the SLB.
        /// </summary>
        public readonly string RenewalCycUnit;
        /// <summary>
        /// The renewal duration of the SLB.
        /// </summary>
        public readonly int RenewalDuration;
        /// <summary>
        /// The renewal status of the SLB.
        /// </summary>
        public readonly string RenewalStatus;
        /// <summary>
        /// The Id of resource group which SLB belongs.
        /// </summary>
        public readonly string ResourceGroupId;
        /// <summary>
        /// The slave zone id of the SLB.
        /// </summary>
        public readonly string SlaveZoneId;
        /// <summary>
        /// SLB current status. Possible values: `inactive`, `active` and `locked`.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// A map of tags assigned to the SLB instances. The `tags` can have a maximum of 5 tag. It must be in the format:
        /// </summary>
        public readonly ImmutableDictionary<string, object> Tags;
        /// <summary>
        /// ID of the VPC linked to the SLBs.
        /// </summary>
        public readonly string VpcId;
        /// <summary>
        /// ID of the VSwitch linked to the SLBs.
        /// </summary>
        public readonly string VswitchId;

        [OutputConstructor]
        private GetApplicationLoadBalancersBalancerResult(
            string address,

            string addressIpVersion,

            string addressType,

            int autoReleaseTime,

            ImmutableArray<Outputs.GetApplicationLoadBalancersBalancerBackendServerResult> backendServers,

            int bandwidth,

            int createTimeStamp,

            string deleteProtection,

            string endTime,

            int endTimeStamp,

            string id,

            string internetChargeType,

            ImmutableArray<Outputs.GetApplicationLoadBalancersBalancerListenerPortsAndProtocalResult> listenerPortsAndProtocals,

            ImmutableArray<Outputs.GetApplicationLoadBalancersBalancerListenerPortsAndProtocolResult> listenerPortsAndProtocols,

            string loadBalancerId,

            string loadBalancerName,

            string loadBalancerSpec,

            string masterZoneId,

            string modificationProtectionReason,

            string modificationProtectionStatus,

            string networkType,

            string paymentType,

            string regionIdAlias,

            string renewalCycUnit,

            int renewalDuration,

            string renewalStatus,

            string resourceGroupId,

            string slaveZoneId,

            string status,

            ImmutableDictionary<string, object> tags,

            string vpcId,

            string vswitchId)
        {
            Address = address;
            AddressIpVersion = addressIpVersion;
            AddressType = addressType;
            AutoReleaseTime = autoReleaseTime;
            BackendServers = backendServers;
            Bandwidth = bandwidth;
            CreateTimeStamp = createTimeStamp;
            DeleteProtection = deleteProtection;
            EndTime = endTime;
            EndTimeStamp = endTimeStamp;
            Id = id;
            InternetChargeType = internetChargeType;
            ListenerPortsAndProtocals = listenerPortsAndProtocals;
            ListenerPortsAndProtocols = listenerPortsAndProtocols;
            LoadBalancerId = loadBalancerId;
            LoadBalancerName = loadBalancerName;
            LoadBalancerSpec = loadBalancerSpec;
            MasterZoneId = masterZoneId;
            ModificationProtectionReason = modificationProtectionReason;
            ModificationProtectionStatus = modificationProtectionStatus;
            NetworkType = networkType;
            PaymentType = paymentType;
            RegionIdAlias = regionIdAlias;
            RenewalCycUnit = renewalCycUnit;
            RenewalDuration = renewalDuration;
            RenewalStatus = renewalStatus;
            ResourceGroupId = resourceGroupId;
            SlaveZoneId = slaveZoneId;
            Status = status;
            Tags = tags;
            VpcId = vpcId;
            VswitchId = vswitchId;
        }
    }
}
