<gh_stars>0// *** 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.Dns.Outputs
{

    [OutputType]
    public sealed class GetAccessStrategiesStrategyResult
    {
        /// <summary>
        /// The primary/secondary switchover policy for address pool groups.
        /// </summary>
        public readonly string AccessMode;
        /// <summary>
        /// The first ID of the resource.
        /// </summary>
        public readonly string AccessStrategyId;
        /// <summary>
        /// The time when the access policy was created.
        /// </summary>
        public readonly string CreateTime;
        /// <summary>
        /// The timestamp that indicates when the access policy was created.
        /// </summary>
        public readonly string CreateTimestamp;
        /// <summary>
        /// The type of the primary address pool.
        /// </summary>
        public readonly string DefaultAddrPoolType;
        /// <summary>
        /// The address pools in the primary address pool group.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetAccessStrategiesStrategyDefaultAddrPoolResult> DefaultAddrPools;
        /// <summary>
        /// The number of addresses currently available in the primary address pool.
        /// </summary>
        public readonly int DefaultAvailableAddrNum;
        /// <summary>
        /// Indicates whether scheduling optimization for latency resolution was enabled for the primary address pool group.
        /// </summary>
        public readonly string DefaultLatencyOptimization;
        /// <summary>
        /// The load balancing policy of the primary address pool group.
        /// </summary>
        public readonly string DefaultLbaStrategy;
        /// <summary>
        /// The maximum number of addresses returned by the primary address pool set.
        /// </summary>
        public readonly int DefaultMaxReturnAddrNum;
        /// <summary>
        /// The minimum number of available addresses for the primary address pool set.
        /// </summary>
        public readonly int DefaultMinAvailableAddrNum;
        /// <summary>
        /// The type of the active address pool group.
        /// </summary>
        public readonly string EffectiveAddrPoolGroupType;
        /// <summary>
        /// The type of the secondary address pool.
        /// </summary>
        public readonly string FailoverAddrPoolType;
        /// <summary>
        /// The address pools in the secondary address pool group.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetAccessStrategiesStrategyFailoverAddrPoolResult> FailoverAddrPools;
        /// <summary>
        /// The number of available addresses in the standby address pool.
        /// </summary>
        public readonly int FailoverAvailableAddrNum;
        /// <summary>
        /// Indicates whether scheduling optimization for latency resolution was enabled for the secondary address pool group.
        /// </summary>
        public readonly string FailoverLatencyOptimization;
        /// <summary>
        /// The load balancing policy of the secondary address pool group.
        /// </summary>
        public readonly string FailoverLbaStrategy;
        /// <summary>
        /// The maximum number of returned addresses in the standby address pool.
        /// </summary>
        public readonly int FailoverMaxReturnAddrNum;
        /// <summary>
        /// The minimum number of available addresses in the standby address pool.
        /// </summary>
        public readonly int FailoverMinAvailableAddrNum;
        /// <summary>
        /// The ID of the Access Strategy.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The Id of the associated instance.
        /// </summary>
        public readonly string InstanceId;
        /// <summary>
        /// List of source regions.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetAccessStrategiesStrategyLineResult> Lines;
        /// <summary>
        /// The type of the access policy.
        /// </summary>
        public readonly string StrategyMode;
        /// <summary>
        /// The name of the access policy.
        /// </summary>
        public readonly string StrategyName;

        [OutputConstructor]
        private GetAccessStrategiesStrategyResult(
            string accessMode,

            string accessStrategyId,

            string createTime,

            string createTimestamp,

            string defaultAddrPoolType,

            ImmutableArray<Outputs.GetAccessStrategiesStrategyDefaultAddrPoolResult> defaultAddrPools,

            int defaultAvailableAddrNum,

            string defaultLatencyOptimization,

            string defaultLbaStrategy,

            int defaultMaxReturnAddrNum,

            int defaultMinAvailableAddrNum,

            string effectiveAddrPoolGroupType,

            string failoverAddrPoolType,

            ImmutableArray<Outputs.GetAccessStrategiesStrategyFailoverAddrPoolResult> failoverAddrPools,

            int failoverAvailableAddrNum,

            string failoverLatencyOptimization,

            string failoverLbaStrategy,

            int failoverMaxReturnAddrNum,

            int failoverMinAvailableAddrNum,

            string id,

            string instanceId,

            ImmutableArray<Outputs.GetAccessStrategiesStrategyLineResult> lines,

            string strategyMode,

            string strategyName)
        {
            AccessMode = accessMode;
            AccessStrategyId = accessStrategyId;
            CreateTime = createTime;
            CreateTimestamp = createTimestamp;
            DefaultAddrPoolType = defaultAddrPoolType;
            DefaultAddrPools = defaultAddrPools;
            DefaultAvailableAddrNum = defaultAvailableAddrNum;
            DefaultLatencyOptimization = defaultLatencyOptimization;
            DefaultLbaStrategy = defaultLbaStrategy;
            DefaultMaxReturnAddrNum = defaultMaxReturnAddrNum;
            DefaultMinAvailableAddrNum = defaultMinAvailableAddrNum;
            EffectiveAddrPoolGroupType = effectiveAddrPoolGroupType;
            FailoverAddrPoolType = failoverAddrPoolType;
            FailoverAddrPools = failoverAddrPools;
            FailoverAvailableAddrNum = failoverAvailableAddrNum;
            FailoverLatencyOptimization = failoverLatencyOptimization;
            FailoverLbaStrategy = failoverLbaStrategy;
            FailoverMaxReturnAddrNum = failoverMaxReturnAddrNum;
            FailoverMinAvailableAddrNum = failoverMinAvailableAddrNum;
            Id = id;
            InstanceId = instanceId;
            Lines = lines;
            StrategyMode = strategyMode;
            StrategyName = strategyName;
        }
    }
}
