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

    [OutputType]
    public sealed class GetQueuesQueueResult
    {
        /// <summary>
        /// This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued.
        /// </summary>
        public readonly int DelaySeconds;
        /// <summary>
        /// The id of the queue, The value is set to `name`.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// This indicates the maximum length, in bytes, of any message body sent to the queue.
        /// </summary>
        public readonly int MaximumMessageSize;
        /// <summary>
        /// Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue.
        /// </summary>
        public readonly int MessageRetentionPeriod;
        /// <summary>
        /// The name of the queue
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out.
        /// </summary>
        public readonly int PollingWaitSeconds;
        /// <summary>
        /// Dequeued messages change from active (visible) status to inactive (invisible) status. This attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period.
        /// </summary>
        public readonly int VisibilityTimeouts;

        [OutputConstructor]
        private GetQueuesQueueResult(
            int delaySeconds,

            string id,

            int maximumMessageSize,

            int messageRetentionPeriod,

            string name,

            int pollingWaitSeconds,

            int visibilityTimeouts)
        {
            DelaySeconds = delaySeconds;
            Id = id;
            MaximumMessageSize = maximumMessageSize;
            MessageRetentionPeriod = messageRetentionPeriod;
            Name = name;
            PollingWaitSeconds = pollingWaitSeconds;
            VisibilityTimeouts = visibilityTimeouts;
        }
    }
}
