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

    [OutputType]
    public sealed class GetEcsBackupPlansPlanResult
    {
        /// <summary>
        /// Backup type. Valid values: `COMPLETE`.
        /// </summary>
        public readonly string BackupType;
        public readonly string CreateTime;
        /// <summary>
        /// The creation time of the backup plan. UNIX time in seconds.
        /// </summary>
        public readonly string CreatedTime;
        public readonly string Detail;
        /// <summary>
        /// Whether to be suspended. Valid values: `true`, `false`.
        /// </summary>
        public readonly bool Disabled;
        /// <summary>
        /// The ID of ecs backup plan.
        /// </summary>
        public readonly string EcsBackupPlanId;
        /// <summary>
        /// The name of the backup plan.
        /// </summary>
        public readonly string EcsBackupPlanName;
        /// <summary>
        /// Exclude path. String of Json list. Up to 255 characters. e.g. `"[\"/home/work\"]"`
        /// </summary>
        public readonly string Exclude;
        /// <summary>
        /// The ID of ecs backup plan.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Include path. String of Json list. Up to 255 characters. e.g. `"[\"/var\"]"`
        /// </summary>
        public readonly string Include;
        /// <summary>
        /// The ID of ECS instance.
        /// </summary>
        public readonly string InstanceId;
        /// <summary>
        /// Windows operating system with application consistency using VSS. eg: {`UseVSS`:false}.
        /// </summary>
        public readonly string Options;
        /// <summary>
        /// Backup path. e.g. `["/home", "/var"]`
        /// </summary>
        public readonly ImmutableArray<string> Paths;
        /// <summary>
        /// Backup retention days, the minimum is 1.
        /// </summary>
        public readonly string Retention;
        /// <summary>
        /// Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.
        /// </summary>
        public readonly string Schedule;
        /// <summary>
        /// The type of backup source.
        /// </summary>
        public readonly string SourceType;
        /// <summary>
        /// Flow control. The format is: {start}|{end}|{bandwidth}. Use `|` to separate multiple flow control configurations, multiple flow control configurations not allowed to have overlapping times.
        /// </summary>
        public readonly string SpeedLimit;
        /// <summary>
        /// The update time of the backup plan. UNIX time in seconds.
        /// </summary>
        public readonly string UpdatedTime;
        /// <summary>
        /// The ID of Backup vault.
        /// </summary>
        public readonly string VaultId;

        [OutputConstructor]
        private GetEcsBackupPlansPlanResult(
            string backupType,

            string createTime,

            string createdTime,

            string detail,

            bool disabled,

            string ecsBackupPlanId,

            string ecsBackupPlanName,

            string exclude,

            string id,

            string include,

            string instanceId,

            string options,

            ImmutableArray<string> paths,

            string retention,

            string schedule,

            string sourceType,

            string speedLimit,

            string updatedTime,

            string vaultId)
        {
            BackupType = backupType;
            CreateTime = createTime;
            CreatedTime = createdTime;
            Detail = detail;
            Disabled = disabled;
            EcsBackupPlanId = ecsBackupPlanId;
            EcsBackupPlanName = ecsBackupPlanName;
            Exclude = exclude;
            Id = id;
            Include = include;
            InstanceId = instanceId;
            Options = options;
            Paths = paths;
            Retention = retention;
            Schedule = schedule;
            SourceType = sourceType;
            SpeedLimit = speedLimit;
            UpdatedTime = updatedTime;
            VaultId = vaultId;
        }
    }
}
