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

    [OutputType]
    public sealed class GetSynchronizationJobsJobResult
    {
        /// <summary>
        /// Start time in Unix timestamp format.
        /// </summary>
        public readonly string Checkpoint;
        public readonly string CreateTime;
        /// <summary>
        /// Whether to execute DTS supports schema migration, full data migration, or full-data initialization.
        /// </summary>
        public readonly bool DataInitialization;
        /// <summary>
        /// Whether to perform incremental data migration for migration types or synchronization.
        /// </summary>
        public readonly bool DataSynchronization;
        /// <summary>
        /// Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, synchronization or subscription objects](https://help.aliyun.com/document_detail/209545.html).
        /// </summary>
        public readonly string DbList;
        /// <summary>
        /// The name of migrate the database.
        /// </summary>
        public readonly string DestinationEndpointDataBaseName;
        /// <summary>
        /// The type of destination database. Valid values: `ADB20`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.
        /// </summary>
        public readonly string DestinationEndpointEngineName;
        /// <summary>
        /// The ID of destination instance.
        /// </summary>
        public readonly string DestinationEndpointInstanceId;
        /// <summary>
        /// The type of destination instance. Valid values: `ads`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
        /// </summary>
        public readonly string DestinationEndpointInstanceType;
        /// <summary>
        /// The ip of source endpoint.
        /// </summary>
        public readonly string DestinationEndpointIp;
        /// <summary>
        /// The SID of Oracle database.
        /// </summary>
        public readonly string DestinationEndpointOracleSid;
        /// <summary>
        /// The port of source endpoint.
        /// </summary>
        public readonly string DestinationEndpointPort;
        /// <summary>
        /// The region of destination instance.
        /// </summary>
        public readonly string DestinationEndpointRegion;
        /// <summary>
        /// The username of database account.
        /// </summary>
        public readonly string DestinationEndpointUserName;
        public readonly string DtsInstanceId;
        public readonly string DtsJobId;
        /// <summary>
        /// The name of synchronization job.
        /// </summary>
        public readonly string DtsJobName;
        public readonly string ExpireTime;
        /// <summary>
        /// The ID of synchronizing instance. It's the ID of resource `alicloud.dts.SynchronizationInstance`.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// The name of migrate the database.
        /// </summary>
        public readonly string SourceEndpointDatabaseName;
        /// <summary>
        /// The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.
        /// </summary>
        public readonly string SourceEndpointEngineName;
        /// <summary>
        /// The ID of source instance.
        /// </summary>
        public readonly string SourceEndpointInstanceId;
        /// <summary>
        /// The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.
        /// </summary>
        public readonly string SourceEndpointInstanceType;
        /// <summary>
        /// The ip of source endpoint.
        /// </summary>
        public readonly string SourceEndpointIp;
        /// <summary>
        /// The SID of Oracle database.
        /// </summary>
        public readonly string SourceEndpointOracleSid;
        /// <summary>
        /// The Alibaba Cloud account ID to which the source instance belongs.
        /// </summary>
        public readonly string SourceEndpointOwnerId;
        /// <summary>
        /// The port of source endpoint.
        /// </summary>
        public readonly string SourceEndpointPort;
        /// <summary>
        /// The region of source instance.
        /// </summary>
        public readonly string SourceEndpointRegion;
        /// <summary>
        /// The name of the role configured for the cloud account to which the source instance belongs.
        /// </summary>
        public readonly string SourceEndpointRole;
        /// <summary>
        /// The username of database account.
        /// </summary>
        public readonly string SourceEndpointUserName;
        /// <summary>
        /// The status of the resource. Valid values: `Synchronizing`, `Suspending`. You can stop the task by specifying `Suspending` and start the task by specifying `Synchronizing`.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// Whether to perform a database table structure to migrate or initialization values include:
        /// </summary>
        public readonly bool StructureInitialization;
        /// <summary>
        /// Synchronization direction. Valid values: `Forward`, `Reverse`. Only when the property `sync_architecture` of the `alicloud.dts.SynchronizationInstance` was `bidirectional` this parameter should be passed, otherwise this parameter should not be specified.
        /// </summary>
        public readonly string SynchronizationDirection;

        [OutputConstructor]
        private GetSynchronizationJobsJobResult(
            string checkpoint,

            string createTime,

            bool dataInitialization,

            bool dataSynchronization,

            string dbList,

            string destinationEndpointDataBaseName,

            string destinationEndpointEngineName,

            string destinationEndpointInstanceId,

            string destinationEndpointInstanceType,

            string destinationEndpointIp,

            string destinationEndpointOracleSid,

            string destinationEndpointPort,

            string destinationEndpointRegion,

            string destinationEndpointUserName,

            string dtsInstanceId,

            string dtsJobId,

            string dtsJobName,

            string expireTime,

            string id,

            string sourceEndpointDatabaseName,

            string sourceEndpointEngineName,

            string sourceEndpointInstanceId,

            string sourceEndpointInstanceType,

            string sourceEndpointIp,

            string sourceEndpointOracleSid,

            string sourceEndpointOwnerId,

            string sourceEndpointPort,

            string sourceEndpointRegion,

            string sourceEndpointRole,

            string sourceEndpointUserName,

            string status,

            bool structureInitialization,

            string synchronizationDirection)
        {
            Checkpoint = checkpoint;
            CreateTime = createTime;
            DataInitialization = dataInitialization;
            DataSynchronization = dataSynchronization;
            DbList = dbList;
            DestinationEndpointDataBaseName = destinationEndpointDataBaseName;
            DestinationEndpointEngineName = destinationEndpointEngineName;
            DestinationEndpointInstanceId = destinationEndpointInstanceId;
            DestinationEndpointInstanceType = destinationEndpointInstanceType;
            DestinationEndpointIp = destinationEndpointIp;
            DestinationEndpointOracleSid = destinationEndpointOracleSid;
            DestinationEndpointPort = destinationEndpointPort;
            DestinationEndpointRegion = destinationEndpointRegion;
            DestinationEndpointUserName = destinationEndpointUserName;
            DtsInstanceId = dtsInstanceId;
            DtsJobId = dtsJobId;
            DtsJobName = dtsJobName;
            ExpireTime = expireTime;
            Id = id;
            SourceEndpointDatabaseName = sourceEndpointDatabaseName;
            SourceEndpointEngineName = sourceEndpointEngineName;
            SourceEndpointInstanceId = sourceEndpointInstanceId;
            SourceEndpointInstanceType = sourceEndpointInstanceType;
            SourceEndpointIp = sourceEndpointIp;
            SourceEndpointOracleSid = sourceEndpointOracleSid;
            SourceEndpointOwnerId = sourceEndpointOwnerId;
            SourceEndpointPort = sourceEndpointPort;
            SourceEndpointRegion = sourceEndpointRegion;
            SourceEndpointRole = sourceEndpointRole;
            SourceEndpointUserName = sourceEndpointUserName;
            Status = status;
            StructureInitialization = structureInitialization;
            SynchronizationDirection = synchronizationDirection;
        }
    }
}
