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

    [OutputType]
    public sealed class MigrateJobMigrateOptionDatabaseTableDatabase
    {
        /// <summary>
        /// DB selection mode:all (for all objects under the current object), partial (partial objects), when the ObjectMode is partial, this item is required.
        /// </summary>
        public readonly string? DbMode;
        /// <summary>
        /// database name.
        /// </summary>
        public readonly string? DbName;
        /// <summary>
        /// EventMode.
        /// </summary>
        public readonly string? EventMode;
        /// <summary>
        /// Events.
        /// </summary>
        public readonly ImmutableArray<string> Events;
        /// <summary>
        /// FunctionMode.
        /// </summary>
        public readonly string? FunctionMode;
        /// <summary>
        /// Functions.
        /// </summary>
        public readonly ImmutableArray<string> Functions;
        /// <summary>
        /// New database name.
        /// </summary>
        public readonly string? NewDbName;
        /// <summary>
        /// schema name after migration or synchronization.
        /// </summary>
        public readonly string? NewSchemaName;
        /// <summary>
        /// ProcedureMode.
        /// </summary>
        public readonly string? ProcedureMode;
        /// <summary>
        /// Procedures.
        /// </summary>
        public readonly ImmutableArray<string> Procedures;
        /// <summary>
        /// RoleMode.
        /// </summary>
        public readonly string? RoleMode;
        /// <summary>
        /// Roles.
        /// </summary>
        public readonly ImmutableArray<Outputs.MigrateJobMigrateOptionDatabaseTableDatabaseRole> Roles;
        /// <summary>
        /// schema mode: all,partial.
        /// </summary>
        public readonly string? SchemaMode;
        /// <summary>
        /// schema name.
        /// </summary>
        public readonly string? SchemaName;
        /// <summary>
        /// table mode: all,partial.
        /// </summary>
        public readonly string? TableMode;
        /// <summary>
        /// tables list.
        /// </summary>
        public readonly ImmutableArray<Outputs.MigrateJobMigrateOptionDatabaseTableDatabaseTable> Tables;
        /// <summary>
        /// TriggerMode.
        /// </summary>
        public readonly string? TriggerMode;
        /// <summary>
        /// Triggers.
        /// </summary>
        public readonly ImmutableArray<string> Triggers;
        /// <summary>
        /// ViewMode.
        /// </summary>
        public readonly string? ViewMode;
        /// <summary>
        /// Views.
        /// </summary>
        public readonly ImmutableArray<Outputs.MigrateJobMigrateOptionDatabaseTableDatabaseView> Views;

        [OutputConstructor]
        private MigrateJobMigrateOptionDatabaseTableDatabase(
            string? dbMode,

            string? dbName,

            string? eventMode,

            ImmutableArray<string> events,

            string? functionMode,

            ImmutableArray<string> functions,

            string? newDbName,

            string? newSchemaName,

            string? procedureMode,

            ImmutableArray<string> procedures,

            string? roleMode,

            ImmutableArray<Outputs.MigrateJobMigrateOptionDatabaseTableDatabaseRole> roles,

            string? schemaMode,

            string? schemaName,

            string? tableMode,

            ImmutableArray<Outputs.MigrateJobMigrateOptionDatabaseTableDatabaseTable> tables,

            string? triggerMode,

            ImmutableArray<string> triggers,

            string? viewMode,

            ImmutableArray<Outputs.MigrateJobMigrateOptionDatabaseTableDatabaseView> views)
        {
            DbMode = dbMode;
            DbName = dbName;
            EventMode = eventMode;
            Events = events;
            FunctionMode = functionMode;
            Functions = functions;
            NewDbName = newDbName;
            NewSchemaName = newSchemaName;
            ProcedureMode = procedureMode;
            Procedures = procedures;
            RoleMode = roleMode;
            Roles = roles;
            SchemaMode = schemaMode;
            SchemaName = schemaName;
            TableMode = tableMode;
            Tables = tables;
            TriggerMode = triggerMode;
            Triggers = triggers;
            ViewMode = viewMode;
            Views = views;
        }
    }
}
