<filename>sdk/dotnet/Tencentcloud/Dts/GetMigrateJobs.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;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Dts
{
    public static class GetMigrateJobs
    {
        /// <summary>
        /// Use this data source to query detailed information of dts migrateJobs
        /// </summary>
        public static Task<GetMigrateJobsResult> InvokeAsync(GetMigrateJobsArgs? args = null, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetMigrateJobsResult>("tencentcloud:Dts/getMigrateJobs:getMigrateJobs", args ?? new GetMigrateJobsArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to query detailed information of dts migrateJobs
        /// </summary>
        public static Output<GetMigrateJobsResult> Invoke(GetMigrateJobsInvokeArgs? args = null, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetMigrateJobsResult>("tencentcloud:Dts/getMigrateJobs:getMigrateJobs", args ?? new GetMigrateJobsInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetMigrateJobsArgs : Pulumi.InvokeArgs
    {
        [Input("dstAccessTypes")]
        private List<string>? _dstAccessTypes;

        /// <summary>
        /// destination access type.
        /// </summary>
        public List<string> DstAccessTypes
        {
            get => _dstAccessTypes ?? (_dstAccessTypes = new List<string>());
            set => _dstAccessTypes = value;
        }

        [Input("dstDatabaseTypes")]
        private List<string>? _dstDatabaseTypes;

        /// <summary>
        /// destination database type.
        /// </summary>
        public List<string> DstDatabaseTypes
        {
            get => _dstDatabaseTypes ?? (_dstDatabaseTypes = new List<string>());
            set => _dstDatabaseTypes = value;
        }

        /// <summary>
        /// source instance id.
        /// </summary>
        [Input("dstInstanceId")]
        public string? DstInstanceId { get; set; }

        /// <summary>
        /// destination region.
        /// </summary>
        [Input("dstRegion")]
        public string? DstRegion { get; set; }

        /// <summary>
        /// job id.
        /// </summary>
        [Input("jobId")]
        public string? JobId { get; set; }

        /// <summary>
        /// job name.
        /// </summary>
        [Input("jobName")]
        public string? JobName { get; set; }

        /// <summary>
        /// order by, default by create time.
        /// </summary>
        [Input("orderSeq")]
        public string? OrderSeq { get; set; }

        /// <summary>
        /// Used to save results.
        /// </summary>
        [Input("resultOutputFile")]
        public string? ResultOutputFile { get; set; }

        /// <summary>
        /// run mode.
        /// </summary>
        [Input("runMode")]
        public string? RunMode { get; set; }

        [Input("srcAccessTypes")]
        private List<string>? _srcAccessTypes;

        /// <summary>
        /// source access type.
        /// </summary>
        public List<string> SrcAccessTypes
        {
            get => _srcAccessTypes ?? (_srcAccessTypes = new List<string>());
            set => _srcAccessTypes = value;
        }

        [Input("srcDatabaseTypes")]
        private List<string>? _srcDatabaseTypes;

        /// <summary>
        /// source database type.
        /// </summary>
        public List<string> SrcDatabaseTypes
        {
            get => _srcDatabaseTypes ?? (_srcDatabaseTypes = new List<string>());
            set => _srcDatabaseTypes = value;
        }

        /// <summary>
        /// source instance id.
        /// </summary>
        [Input("srcInstanceId")]
        public string? SrcInstanceId { get; set; }

        /// <summary>
        /// source region.
        /// </summary>
        [Input("srcRegion")]
        public string? SrcRegion { get; set; }

        [Input("statuses")]
        private List<string>? _statuses;

        /// <summary>
        /// migrate status.
        /// </summary>
        public List<string> Statuses
        {
            get => _statuses ?? (_statuses = new List<string>());
            set => _statuses = value;
        }

        [Input("tagFilters")]
        private List<Inputs.GetMigrateJobsTagFilterArgs>? _tagFilters;

        /// <summary>
        /// tag filters.
        /// </summary>
        public List<Inputs.GetMigrateJobsTagFilterArgs> TagFilters
        {
            get => _tagFilters ?? (_tagFilters = new List<Inputs.GetMigrateJobsTagFilterArgs>());
            set => _tagFilters = value;
        }

        public GetMigrateJobsArgs()
        {
        }
    }

    public sealed class GetMigrateJobsInvokeArgs : Pulumi.InvokeArgs
    {
        [Input("dstAccessTypes")]
        private InputList<string>? _dstAccessTypes;

        /// <summary>
        /// destination access type.
        /// </summary>
        public InputList<string> DstAccessTypes
        {
            get => _dstAccessTypes ?? (_dstAccessTypes = new InputList<string>());
            set => _dstAccessTypes = value;
        }

        [Input("dstDatabaseTypes")]
        private InputList<string>? _dstDatabaseTypes;

        /// <summary>
        /// destination database type.
        /// </summary>
        public InputList<string> DstDatabaseTypes
        {
            get => _dstDatabaseTypes ?? (_dstDatabaseTypes = new InputList<string>());
            set => _dstDatabaseTypes = value;
        }

        /// <summary>
        /// source instance id.
        /// </summary>
        [Input("dstInstanceId")]
        public Input<string>? DstInstanceId { get; set; }

        /// <summary>
        /// destination region.
        /// </summary>
        [Input("dstRegion")]
        public Input<string>? DstRegion { get; set; }

        /// <summary>
        /// job id.
        /// </summary>
        [Input("jobId")]
        public Input<string>? JobId { get; set; }

        /// <summary>
        /// job name.
        /// </summary>
        [Input("jobName")]
        public Input<string>? JobName { get; set; }

        /// <summary>
        /// order by, default by create time.
        /// </summary>
        [Input("orderSeq")]
        public Input<string>? OrderSeq { get; set; }

        /// <summary>
        /// Used to save results.
        /// </summary>
        [Input("resultOutputFile")]
        public Input<string>? ResultOutputFile { get; set; }

        /// <summary>
        /// run mode.
        /// </summary>
        [Input("runMode")]
        public Input<string>? RunMode { get; set; }

        [Input("srcAccessTypes")]
        private InputList<string>? _srcAccessTypes;

        /// <summary>
        /// source access type.
        /// </summary>
        public InputList<string> SrcAccessTypes
        {
            get => _srcAccessTypes ?? (_srcAccessTypes = new InputList<string>());
            set => _srcAccessTypes = value;
        }

        [Input("srcDatabaseTypes")]
        private InputList<string>? _srcDatabaseTypes;

        /// <summary>
        /// source database type.
        /// </summary>
        public InputList<string> SrcDatabaseTypes
        {
            get => _srcDatabaseTypes ?? (_srcDatabaseTypes = new InputList<string>());
            set => _srcDatabaseTypes = value;
        }

        /// <summary>
        /// source instance id.
        /// </summary>
        [Input("srcInstanceId")]
        public Input<string>? SrcInstanceId { get; set; }

        /// <summary>
        /// source region.
        /// </summary>
        [Input("srcRegion")]
        public Input<string>? SrcRegion { get; set; }

        [Input("statuses")]
        private InputList<string>? _statuses;

        /// <summary>
        /// migrate status.
        /// </summary>
        public InputList<string> Statuses
        {
            get => _statuses ?? (_statuses = new InputList<string>());
            set => _statuses = value;
        }

        [Input("tagFilters")]
        private InputList<Inputs.GetMigrateJobsTagFilterInputArgs>? _tagFilters;

        /// <summary>
        /// tag filters.
        /// </summary>
        public InputList<Inputs.GetMigrateJobsTagFilterInputArgs> TagFilters
        {
            get => _tagFilters ?? (_tagFilters = new InputList<Inputs.GetMigrateJobsTagFilterInputArgs>());
            set => _tagFilters = value;
        }

        public GetMigrateJobsInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetMigrateJobsResult
    {
        public readonly ImmutableArray<string> DstAccessTypes;
        public readonly ImmutableArray<string> DstDatabaseTypes;
        public readonly string? DstInstanceId;
        public readonly string? DstRegion;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// job id.
        /// </summary>
        public readonly string? JobId;
        /// <summary>
        /// job name.
        /// </summary>
        public readonly string? JobName;
        /// <summary>
        /// migration job list.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetMigrateJobsListResult> Lists;
        public readonly string? OrderSeq;
        public readonly string? ResultOutputFile;
        public readonly string? RunMode;
        public readonly ImmutableArray<string> SrcAccessTypes;
        public readonly ImmutableArray<string> SrcDatabaseTypes;
        public readonly string? SrcInstanceId;
        public readonly string? SrcRegion;
        /// <summary>
        /// current status.
        /// </summary>
        public readonly ImmutableArray<string> Statuses;
        public readonly ImmutableArray<Outputs.GetMigrateJobsTagFilterResult> TagFilters;

        [OutputConstructor]
        private GetMigrateJobsResult(
            ImmutableArray<string> dstAccessTypes,

            ImmutableArray<string> dstDatabaseTypes,

            string? dstInstanceId,

            string? dstRegion,

            string id,

            string? jobId,

            string? jobName,

            ImmutableArray<Outputs.GetMigrateJobsListResult> lists,

            string? orderSeq,

            string? resultOutputFile,

            string? runMode,

            ImmutableArray<string> srcAccessTypes,

            ImmutableArray<string> srcDatabaseTypes,

            string? srcInstanceId,

            string? srcRegion,

            ImmutableArray<string> statuses,

            ImmutableArray<Outputs.GetMigrateJobsTagFilterResult> tagFilters)
        {
            DstAccessTypes = dstAccessTypes;
            DstDatabaseTypes = dstDatabaseTypes;
            DstInstanceId = dstInstanceId;
            DstRegion = dstRegion;
            Id = id;
            JobId = jobId;
            JobName = jobName;
            Lists = lists;
            OrderSeq = orderSeq;
            ResultOutputFile = resultOutputFile;
            RunMode = runMode;
            SrcAccessTypes = srcAccessTypes;
            SrcDatabaseTypes = srcDatabaseTypes;
            SrcInstanceId = srcInstanceId;
            SrcRegion = srcRegion;
            Statuses = statuses;
            TagFilters = tagFilters;
        }
    }
}
