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

    [OutputType]
    public sealed class GetChangeSetsSetResult
    {
        /// <summary>
        /// The ID of the change set.
        /// </summary>
        public readonly string ChangeSetId;
        /// <summary>
        /// The name of the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.
        /// </summary>
        public readonly string ChangeSetName;
        /// <summary>
        /// The type of the change set. Valid values:  CREATE: creates a change set for a new stack. UPDATE: creates a change set for an existing stack. IMPORT: creates a change set for a new stack or an existing stack to import non-ROS-managed resources. If you create a change set for a new stack, ROS creates a stack that has a unique stack ID. The stack is in the REVIEW_IN_PROGRESS state until you execute the change set.  You cannot use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack.
        /// </summary>
        public readonly string ChangeSetType;
        /// <summary>
        /// The description of the change set. The description can be up to 1,024 bytes in length.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// Specifies whether to disable rollback on stack creation failure. Default value: false.  Valid values:  true: disables rollback on stack creation failure. false: enables rollback on stack creation failure. Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.
        /// </summary>
        public readonly bool DisableRollback;
        /// <summary>
        /// The execution status of change set N. Maximum value of N: 5. Valid values:  UNAVAILABLE AVAILABLE EXECUTE_IN_PROGRESS EXECUTE_COMPLETE EXECUTE_FAILED OBSOLETE.
        /// </summary>
        public readonly string ExecutionStatus;
        /// <summary>
        /// The ID of the Change Set.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Parameters.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetChangeSetsSetParameterResult> Parameters;
        /// <summary>
        /// The ID of the stack for which you want to create the change set. ROS generates the change set by comparing the stack information with the information that you submit, such as a modified template or different inputs.
        /// </summary>
        public readonly string StackId;
        /// <summary>
        /// The name of the stack for which you want to create the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.  Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.
        /// </summary>
        public readonly string StackName;
        /// <summary>
        /// The status of the change set.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You can specify one of TemplateBody or TemplateURL parameters, but you cannot specify both of them.
        /// </summary>
        public readonly string TemplateBody;
        /// <summary>
        /// Timeout In Minutes.
        /// </summary>
        public readonly int TimeoutInMinutes;

        [OutputConstructor]
        private GetChangeSetsSetResult(
            string changeSetId,

            string changeSetName,

            string changeSetType,

            string description,

            bool disableRollback,

            string executionStatus,

            string id,

            ImmutableArray<Outputs.GetChangeSetsSetParameterResult> parameters,

            string stackId,

            string stackName,

            string status,

            string templateBody,

            int timeoutInMinutes)
        {
            ChangeSetId = changeSetId;
            ChangeSetName = changeSetName;
            ChangeSetType = changeSetType;
            Description = description;
            DisableRollback = disableRollback;
            ExecutionStatus = executionStatus;
            Id = id;
            Parameters = parameters;
            StackId = stackId;
            StackName = stackName;
            Status = status;
            TemplateBody = templateBody;
            TimeoutInMinutes = timeoutInMinutes;
        }
    }
}
