diff --git a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/__init__.py b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/__init__.py index d91a847735ef..d8060347ca8b 100644 --- a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/__init__.py +++ b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/__init__.py @@ -170,6 +170,11 @@ from ._models_py3 import MigrateSqlServerSqlMITaskOutputMigrationLevel from ._models_py3 import MigrateSqlServerSqlMITaskProperties from ._models_py3 import MigrateSqlServerSqlServerDatabaseInput + from ._models_py3 import MigrateSsisTaskInput + from ._models_py3 import MigrateSsisTaskOutput + from ._models_py3 import MigrateSsisTaskOutputMigrationLevel + from ._models_py3 import MigrateSsisTaskOutputProjectLevel + from ._models_py3 import MigrateSsisTaskProperties from ._models_py3 import MigrateSyncCompleteCommandInput from ._models_py3 import MigrateSyncCompleteCommandOutput from ._models_py3 import MigrateSyncCompleteCommandProperties @@ -242,6 +247,7 @@ from ._models_py3 import SqlConnectionInfo from ._models_py3 import SqlMigrationTaskInput from ._models_py3 import SqlServerSqlMISyncTaskInput + from ._models_py3 import SsisMigrationInfo from ._models_py3 import StartMigrationScenarioServerRoleResult from ._models_py3 import SyncMigrationDatabaseErrorEvent from ._models_py3 import TrackedResource @@ -423,6 +429,11 @@ from ._models import MigrateSqlServerSqlMITaskOutputMigrationLevel from ._models import MigrateSqlServerSqlMITaskProperties from ._models import MigrateSqlServerSqlServerDatabaseInput + from ._models import MigrateSsisTaskInput + from ._models import MigrateSsisTaskOutput + from ._models import MigrateSsisTaskOutputMigrationLevel + from ._models import MigrateSsisTaskOutputProjectLevel + from ._models import MigrateSsisTaskProperties from ._models import MigrateSyncCompleteCommandInput from ._models import MigrateSyncCompleteCommandOutput from ._models import MigrateSyncCompleteCommandProperties @@ -495,6 +506,7 @@ from ._models import SqlConnectionInfo from ._models import SqlMigrationTaskInput from ._models import SqlServerSqlMISyncTaskInput + from ._models import SsisMigrationInfo from ._models import StartMigrationScenarioServerRoleResult from ._models import SyncMigrationDatabaseErrorEvent from ._models import TrackedResource @@ -525,6 +537,11 @@ from ._paged_models import ServiceOperationPaged from ._data_migration_service_client_enums import ( CommandState, + SsisMigrationStage, + MigrationState, + MigrationStatus, + SsisMigrationOverwriteOption, + SsisStoreType, SqlSourcePlatform, AuthenticationType, MongoDbErrorType, @@ -539,9 +556,7 @@ Severity, UpdateActionType, ObjectType, - MigrationState, DatabaseMigrationStage, - MigrationStatus, BackupFileStatus, DatabaseMigrationState, LoginMigrationStage, @@ -729,6 +744,11 @@ 'MigrateSqlServerSqlMITaskOutputMigrationLevel', 'MigrateSqlServerSqlMITaskProperties', 'MigrateSqlServerSqlServerDatabaseInput', + 'MigrateSsisTaskInput', + 'MigrateSsisTaskOutput', + 'MigrateSsisTaskOutputMigrationLevel', + 'MigrateSsisTaskOutputProjectLevel', + 'MigrateSsisTaskProperties', 'MigrateSyncCompleteCommandInput', 'MigrateSyncCompleteCommandOutput', 'MigrateSyncCompleteCommandProperties', @@ -801,6 +821,7 @@ 'SqlConnectionInfo', 'SqlMigrationTaskInput', 'SqlServerSqlMISyncTaskInput', + 'SsisMigrationInfo', 'StartMigrationScenarioServerRoleResult', 'SyncMigrationDatabaseErrorEvent', 'TrackedResource', @@ -830,6 +851,11 @@ 'ServiceOperationPaged', 'ProjectFilePaged', 'CommandState', + 'SsisMigrationStage', + 'MigrationState', + 'MigrationStatus', + 'SsisMigrationOverwriteOption', + 'SsisStoreType', 'SqlSourcePlatform', 'AuthenticationType', 'MongoDbErrorType', @@ -844,9 +870,7 @@ 'Severity', 'UpdateActionType', 'ObjectType', - 'MigrationState', 'DatabaseMigrationStage', - 'MigrationStatus', 'BackupFileStatus', 'DatabaseMigrationState', 'LoginMigrationStage', diff --git a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_data_migration_service_client_enums.py b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_data_migration_service_client_enums.py index 74f7a25a5898..1659ebe9340e 100644 --- a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_data_migration_service_client_enums.py +++ b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_data_migration_service_client_enums.py @@ -21,6 +21,50 @@ class CommandState(str, Enum): failed = "Failed" +class SsisMigrationStage(str, Enum): + + none = "None" + initialize = "Initialize" + in_progress = "InProgress" + completed = "Completed" + + +class MigrationState(str, Enum): + + none = "None" + in_progress = "InProgress" + failed = "Failed" + warning = "Warning" + completed = "Completed" + skipped = "Skipped" + stopped = "Stopped" + + +class MigrationStatus(str, Enum): + + default = "Default" + connecting = "Connecting" + source_and_target_selected = "SourceAndTargetSelected" + select_logins = "SelectLogins" + configured = "Configured" + running = "Running" + error = "Error" + stopped = "Stopped" + completed = "Completed" + completed_with_warnings = "CompletedWithWarnings" + + +class SsisMigrationOverwriteOption(str, Enum): + + ignore = "Ignore" + overwrite = "Overwrite" + + +class SsisStoreType(str, Enum): + + ssis_catalog = "SsisCatalog" + + class SqlSourcePlatform(str, Enum): sql_on_prem = "SqlOnPrem" @@ -148,17 +192,6 @@ class ObjectType(str, Enum): function = "Function" -class MigrationState(str, Enum): - - none = "None" - in_progress = "InProgress" - failed = "Failed" - warning = "Warning" - completed = "Completed" - skipped = "Skipped" - stopped = "Stopped" - - class DatabaseMigrationStage(str, Enum): none = "None" @@ -169,20 +202,6 @@ class DatabaseMigrationStage(str, Enum): completed = "Completed" -class MigrationStatus(str, Enum): - - default = "Default" - connecting = "Connecting" - source_and_target_selected = "SourceAndTargetSelected" - select_logins = "SelectLogins" - configured = "Configured" - running = "Running" - error = "Error" - stopped = "Stopped" - completed = "Completed" - completed_with_warnings = "CompletedWithWarnings" - - class BackupFileStatus(str, Enum): arrived = "Arrived" diff --git a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models.py b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models.py index 363a8a070eed..8f5750e86068 100644 --- a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models.py +++ b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models.py @@ -318,7 +318,8 @@ class ProjectTaskProperties(Model): by current client, this object is returned. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: GetTdeCertificatesSqlTaskProperties, + sub-classes are: MigrateSsisTaskProperties, + GetTdeCertificatesSqlTaskProperties, ValidateOracleAzureDbForPostgreSqlSyncTaskProperties, ValidateMongoDbTaskProperties, ValidateMigrationInputSqlServerSqlMISyncTaskProperties, @@ -384,7 +385,7 @@ class ProjectTaskProperties(Model): } _subtype_map = { - 'task_type': {'GetTDECertificates.Sql': 'GetTdeCertificatesSqlTaskProperties', 'Validate.Oracle.AzureDbPostgreSql.Sync': 'ValidateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Validate.MongoDb': 'ValidateMongoDbTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI.Sync.LRS': 'ValidateMigrationInputSqlServerSqlMISyncTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI': 'ValidateMigrationInputSqlServerSqlMITaskProperties', 'ValidateMigrationInput.SqlServer.SqlDb.Sync': 'ValidateMigrationInputSqlServerSqlDbSyncTaskProperties', 'Migrate.Oracle.Sql.Sync': 'MigrateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.PostgreSql.AzureDbForPostgreSql.Sync': 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.MySql.AzureDbForMySql.Sync': 'MigrateMySqlAzureDbForMySqlSyncTaskProperties', 'Migrate.SqlServer.AzureSqlDb.Sync': 'MigrateSqlServerSqlDbSyncTaskProperties', 'Migrate.SqlServer.SqlDb': 'MigrateSqlServerSqlDbTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI.Sync.LRS': 'MigrateSqlServerSqlMISyncTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI': 'MigrateSqlServerSqlMITaskProperties', 'Migrate.MongoDb': 'MigrateMongoDbTaskProperties', 'ConnectToTarget.AzureDbForMySql': 'ConnectToTargetAzureDbForMySqlTaskProperties', 'ConnectToTarget.AzureSqlDbMI.Sync.LRS': 'ConnectToTargetSqlMISyncTaskProperties', 'ConnectToTarget.AzureSqlDbMI': 'ConnectToTargetSqlMITaskProperties', 'GetUserTablesPostgreSql': 'GetUserTablesPostgreSqlTaskProperties', 'GetUserTablesOracle': 'GetUserTablesOracleTaskProperties', 'GetUserTables.AzureSqlDb.Sync': 'GetUserTablesSqlSyncTaskProperties', 'GetUserTables.Sql': 'GetUserTablesSqlTaskProperties', 'ConnectToTarget.Oracle.AzureDbForPostgreSql.Sync': 'ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.AzureDbForPostgreSql.Sync': 'ConnectToTargetAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.SqlDb.Sync': 'ConnectToTargetSqlSqlDbSyncTaskProperties', 'ConnectToTarget.SqlDb': 'ConnectToTargetSqlDbTaskProperties', 'ConnectToSource.Oracle.Sync': 'ConnectToSourceOracleSyncTaskProperties', 'ConnectToSource.PostgreSql.Sync': 'ConnectToSourcePostgreSqlSyncTaskProperties', 'ConnectToSource.SqlServer.Sync': 'ConnectToSourceSqlServerSyncTaskProperties', 'ConnectToSource.SqlServer': 'ConnectToSourceSqlServerTaskProperties', 'Connect.MongoDb': 'ConnectToMongoDbTaskProperties', 'ConnectToSource.MySql': 'ConnectToSourceMySqlTaskProperties', 'MigrateSchemaSqlServerSqlDb': 'MigrateSchemaSqlServerSqlDbTaskProperties', 'Service.Check.OCI': 'CheckOCIDriverTaskProperties', 'Service.Upload.OCI': 'UploadOCIDriverTaskProperties', 'Service.Install.OCI': 'InstallOCIDriverTaskProperties'} + 'task_type': {'Migrate.Ssis': 'MigrateSsisTaskProperties', 'GetTDECertificates.Sql': 'GetTdeCertificatesSqlTaskProperties', 'Validate.Oracle.AzureDbPostgreSql.Sync': 'ValidateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Validate.MongoDb': 'ValidateMongoDbTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI.Sync.LRS': 'ValidateMigrationInputSqlServerSqlMISyncTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI': 'ValidateMigrationInputSqlServerSqlMITaskProperties', 'ValidateMigrationInput.SqlServer.SqlDb.Sync': 'ValidateMigrationInputSqlServerSqlDbSyncTaskProperties', 'Migrate.Oracle.AzureDbForPostgreSql.Sync': 'MigrateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.PostgreSql.AzureDbForPostgreSql.Sync': 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.MySql.AzureDbForMySql.Sync': 'MigrateMySqlAzureDbForMySqlSyncTaskProperties', 'Migrate.SqlServer.AzureSqlDb.Sync': 'MigrateSqlServerSqlDbSyncTaskProperties', 'Migrate.SqlServer.SqlDb': 'MigrateSqlServerSqlDbTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI.Sync.LRS': 'MigrateSqlServerSqlMISyncTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI': 'MigrateSqlServerSqlMITaskProperties', 'Migrate.MongoDb': 'MigrateMongoDbTaskProperties', 'ConnectToTarget.AzureDbForMySql': 'ConnectToTargetAzureDbForMySqlTaskProperties', 'ConnectToTarget.AzureSqlDbMI.Sync.LRS': 'ConnectToTargetSqlMISyncTaskProperties', 'ConnectToTarget.AzureSqlDbMI': 'ConnectToTargetSqlMITaskProperties', 'GetUserTablesPostgreSql': 'GetUserTablesPostgreSqlTaskProperties', 'GetUserTablesOracle': 'GetUserTablesOracleTaskProperties', 'GetUserTables.AzureSqlDb.Sync': 'GetUserTablesSqlSyncTaskProperties', 'GetUserTables.Sql': 'GetUserTablesSqlTaskProperties', 'ConnectToTarget.Oracle.AzureDbForPostgreSql.Sync': 'ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.AzureDbForPostgreSql.Sync': 'ConnectToTargetAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.SqlDb.Sync': 'ConnectToTargetSqlSqlDbSyncTaskProperties', 'ConnectToTarget.SqlDb': 'ConnectToTargetSqlDbTaskProperties', 'ConnectToSource.Oracle.Sync': 'ConnectToSourceOracleSyncTaskProperties', 'ConnectToSource.PostgreSql.Sync': 'ConnectToSourcePostgreSqlSyncTaskProperties', 'ConnectToSource.SqlServer.Sync': 'ConnectToSourceSqlServerSyncTaskProperties', 'ConnectToSource.SqlServer': 'ConnectToSourceSqlServerTaskProperties', 'Connect.MongoDb': 'ConnectToMongoDbTaskProperties', 'ConnectToSource.MySql': 'ConnectToSourceMySqlTaskProperties', 'MigrateSchemaSqlServerSqlDb': 'MigrateSchemaSqlServerSqlDbTaskProperties', 'Service.Check.OCI': 'CheckOCIDriverTaskProperties', 'Service.Upload.OCI': 'UploadOCIDriverTaskProperties', 'Service.Install.OCI': 'InstallOCIDriverTaskProperties'} } def __init__(self, **kwargs): @@ -1050,6 +1051,9 @@ class ConnectToSourceSqlServerTaskInput(Model): 'MigrationFromSqlServerToAzureMI', 'MigrationFromMySQLToAzureDBForMySQL' :type check_permissions_group: str or ~azure.mgmt.datamigration.models.ServerLevelPermissionsGroup + :param collect_databases: Flag for whether to collect databases from + source server. Default value: True . + :type collect_databases: bool :param collect_logins: Flag for whether to collect logins from source server. Default value: False . :type collect_logins: bool @@ -1059,6 +1063,9 @@ class ConnectToSourceSqlServerTaskInput(Model): :param collect_tde_certificate_info: Flag for whether to collect TDE Certificate names from source server. Default value: False . :type collect_tde_certificate_info: bool + :param validate_ssis_catalog_only: Flag for whether to validate SSIS + catalog is reachable on the source server. Default value: False . + :type validate_ssis_catalog_only: bool """ _validation = { @@ -1068,18 +1075,22 @@ class ConnectToSourceSqlServerTaskInput(Model): _attribute_map = { 'source_connection_info': {'key': 'sourceConnectionInfo', 'type': 'SqlConnectionInfo'}, 'check_permissions_group': {'key': 'checkPermissionsGroup', 'type': 'ServerLevelPermissionsGroup'}, + 'collect_databases': {'key': 'collectDatabases', 'type': 'bool'}, 'collect_logins': {'key': 'collectLogins', 'type': 'bool'}, 'collect_agent_jobs': {'key': 'collectAgentJobs', 'type': 'bool'}, 'collect_tde_certificate_info': {'key': 'collectTdeCertificateInfo', 'type': 'bool'}, + 'validate_ssis_catalog_only': {'key': 'validateSsisCatalogOnly', 'type': 'bool'}, } def __init__(self, **kwargs): super(ConnectToSourceSqlServerTaskInput, self).__init__(**kwargs) self.source_connection_info = kwargs.get('source_connection_info', None) self.check_permissions_group = kwargs.get('check_permissions_group', None) + self.collect_databases = kwargs.get('collect_databases', True) self.collect_logins = kwargs.get('collect_logins', False) self.collect_agent_jobs = kwargs.get('collect_agent_jobs', False) self.collect_tde_certificate_info = kwargs.get('collect_tde_certificate_info', False) + self.validate_ssis_catalog_only = kwargs.get('validate_ssis_catalog_only', False) class ConnectToSourceSqlServerTaskOutput(Model): @@ -2105,6 +2116,15 @@ class ConnectToTargetSqlMITaskInput(Model): SQL Server :type target_connection_info: ~azure.mgmt.datamigration.models.SqlConnectionInfo + :param collect_logins: Flag for whether to collect logins from target SQL + MI server. Default value: True . + :type collect_logins: bool + :param collect_agent_jobs: Flag for whether to collect agent jobs from + target SQL MI server. Default value: True . + :type collect_agent_jobs: bool + :param validate_ssis_catalog_only: Flag for whether to validate SSIS + catalog is reachable on the target SQL MI server. Default value: False . + :type validate_ssis_catalog_only: bool """ _validation = { @@ -2113,11 +2133,17 @@ class ConnectToTargetSqlMITaskInput(Model): _attribute_map = { 'target_connection_info': {'key': 'targetConnectionInfo', 'type': 'SqlConnectionInfo'}, + 'collect_logins': {'key': 'collectLogins', 'type': 'bool'}, + 'collect_agent_jobs': {'key': 'collectAgentJobs', 'type': 'bool'}, + 'validate_ssis_catalog_only': {'key': 'validateSsisCatalogOnly', 'type': 'bool'}, } def __init__(self, **kwargs): super(ConnectToTargetSqlMITaskInput, self).__init__(**kwargs) self.target_connection_info = kwargs.get('target_connection_info', None) + self.collect_logins = kwargs.get('collect_logins', True) + self.collect_agent_jobs = kwargs.get('collect_agent_jobs', True) + self.validate_ssis_catalog_only = kwargs.get('validate_ssis_catalog_only', False) class ConnectToTargetSqlMITaskOutput(Model): @@ -4585,7 +4611,7 @@ def __init__(self, **kwargs): super(MigrateOracleAzureDbForPostgreSqlSyncTaskProperties, self).__init__(**kwargs) self.input = kwargs.get('input', None) self.output = None - self.task_type = 'Migrate.Oracle.Sql.Sync' + self.task_type = 'Migrate.Oracle.AzureDbForPostgreSql.Sync' class MigrateOracleAzureDbPostgreSqlSyncDatabaseInput(Model): @@ -8017,6 +8043,292 @@ def __init__(self, **kwargs): self.database_files = kwargs.get('database_files', None) +class MigrateSsisTaskInput(SqlMigrationTaskInput): + """Input for task that migrates SSIS packages from SQL Server to Azure SQL + Database Managed Instance. + + All required parameters must be populated in order to send to Azure. + + :param source_connection_info: Required. Information for connecting to + source + :type source_connection_info: + ~azure.mgmt.datamigration.models.SqlConnectionInfo + :param target_connection_info: Required. Information for connecting to + target + :type target_connection_info: + ~azure.mgmt.datamigration.models.SqlConnectionInfo + :param ssis_migration_info: Required. SSIS package migration information. + :type ssis_migration_info: + ~azure.mgmt.datamigration.models.SsisMigrationInfo + """ + + _validation = { + 'source_connection_info': {'required': True}, + 'target_connection_info': {'required': True}, + 'ssis_migration_info': {'required': True}, + } + + _attribute_map = { + 'source_connection_info': {'key': 'sourceConnectionInfo', 'type': 'SqlConnectionInfo'}, + 'target_connection_info': {'key': 'targetConnectionInfo', 'type': 'SqlConnectionInfo'}, + 'ssis_migration_info': {'key': 'ssisMigrationInfo', 'type': 'SsisMigrationInfo'}, + } + + def __init__(self, **kwargs): + super(MigrateSsisTaskInput, self).__init__(**kwargs) + self.ssis_migration_info = kwargs.get('ssis_migration_info', None) + + +class MigrateSsisTaskOutput(Model): + """Output for task that migrates SSIS packages from SQL Server to Azure SQL + Database Managed Instance. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: MigrateSsisTaskOutputProjectLevel, + MigrateSsisTaskOutputMigrationLevel + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Result identifier + :vartype id: str + :param result_type: Required. Constant filled by server. + :type result_type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'result_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'result_type': {'key': 'resultType', 'type': 'str'}, + } + + _subtype_map = { + 'result_type': {'SsisProjectLevelOutput': 'MigrateSsisTaskOutputProjectLevel', 'MigrationLevelOutput': 'MigrateSsisTaskOutputMigrationLevel'} + } + + def __init__(self, **kwargs): + super(MigrateSsisTaskOutput, self).__init__(**kwargs) + self.id = None + self.result_type = None + + +class MigrateSsisTaskOutputMigrationLevel(MigrateSsisTaskOutput): + """MigrateSsisTaskOutputMigrationLevel. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Result identifier + :vartype id: str + :param result_type: Required. Constant filled by server. + :type result_type: str + :ivar started_on: Migration start time + :vartype started_on: datetime + :ivar ended_on: Migration end time + :vartype ended_on: datetime + :ivar status: Current status of migration. Possible values include: + 'Default', 'Connecting', 'SourceAndTargetSelected', 'SelectLogins', + 'Configured', 'Running', 'Error', 'Stopped', 'Completed', + 'CompletedWithWarnings' + :vartype status: str or ~azure.mgmt.datamigration.models.MigrationStatus + :ivar message: Migration progress message + :vartype message: str + :ivar source_server_version: Source server version + :vartype source_server_version: str + :ivar source_server_brand_version: Source server brand version + :vartype source_server_brand_version: str + :ivar target_server_version: Target server version + :vartype target_server_version: str + :ivar target_server_brand_version: Target server brand version + :vartype target_server_brand_version: str + :ivar exceptions_and_warnings: Migration exceptions and warnings. + :vartype exceptions_and_warnings: + list[~azure.mgmt.datamigration.models.ReportableException] + :ivar stage: Stage of SSIS migration. Possible values include: 'None', + 'Initialize', 'InProgress', 'Completed' + :vartype stage: str or ~azure.mgmt.datamigration.models.SsisMigrationStage + """ + + _validation = { + 'id': {'readonly': True}, + 'result_type': {'required': True}, + 'started_on': {'readonly': True}, + 'ended_on': {'readonly': True}, + 'status': {'readonly': True}, + 'message': {'readonly': True}, + 'source_server_version': {'readonly': True}, + 'source_server_brand_version': {'readonly': True}, + 'target_server_version': {'readonly': True}, + 'target_server_brand_version': {'readonly': True}, + 'exceptions_and_warnings': {'readonly': True}, + 'stage': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'result_type': {'key': 'resultType', 'type': 'str'}, + 'started_on': {'key': 'startedOn', 'type': 'iso-8601'}, + 'ended_on': {'key': 'endedOn', 'type': 'iso-8601'}, + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'source_server_version': {'key': 'sourceServerVersion', 'type': 'str'}, + 'source_server_brand_version': {'key': 'sourceServerBrandVersion', 'type': 'str'}, + 'target_server_version': {'key': 'targetServerVersion', 'type': 'str'}, + 'target_server_brand_version': {'key': 'targetServerBrandVersion', 'type': 'str'}, + 'exceptions_and_warnings': {'key': 'exceptionsAndWarnings', 'type': '[ReportableException]'}, + 'stage': {'key': 'stage', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(MigrateSsisTaskOutputMigrationLevel, self).__init__(**kwargs) + self.started_on = None + self.ended_on = None + self.status = None + self.message = None + self.source_server_version = None + self.source_server_brand_version = None + self.target_server_version = None + self.target_server_brand_version = None + self.exceptions_and_warnings = None + self.stage = None + self.result_type = 'MigrationLevelOutput' + + +class MigrateSsisTaskOutputProjectLevel(MigrateSsisTaskOutput): + """MigrateSsisTaskOutputProjectLevel. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Result identifier + :vartype id: str + :param result_type: Required. Constant filled by server. + :type result_type: str + :ivar folder_name: Name of the folder + :vartype folder_name: str + :ivar project_name: Name of the project + :vartype project_name: str + :ivar state: Current state of migration. Possible values include: 'None', + 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped' + :vartype state: str or ~azure.mgmt.datamigration.models.MigrationState + :ivar stage: Stage of SSIS migration. Possible values include: 'None', + 'Initialize', 'InProgress', 'Completed' + :vartype stage: str or ~azure.mgmt.datamigration.models.SsisMigrationStage + :ivar started_on: Migration start time + :vartype started_on: datetime + :ivar ended_on: Migration end time + :vartype ended_on: datetime + :ivar message: Migration progress message + :vartype message: str + :ivar exceptions_and_warnings: Migration exceptions and warnings + :vartype exceptions_and_warnings: + list[~azure.mgmt.datamigration.models.ReportableException] + """ + + _validation = { + 'id': {'readonly': True}, + 'result_type': {'required': True}, + 'folder_name': {'readonly': True}, + 'project_name': {'readonly': True}, + 'state': {'readonly': True}, + 'stage': {'readonly': True}, + 'started_on': {'readonly': True}, + 'ended_on': {'readonly': True}, + 'message': {'readonly': True}, + 'exceptions_and_warnings': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'result_type': {'key': 'resultType', 'type': 'str'}, + 'folder_name': {'key': 'folderName', 'type': 'str'}, + 'project_name': {'key': 'projectName', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'stage': {'key': 'stage', 'type': 'str'}, + 'started_on': {'key': 'startedOn', 'type': 'iso-8601'}, + 'ended_on': {'key': 'endedOn', 'type': 'iso-8601'}, + 'message': {'key': 'message', 'type': 'str'}, + 'exceptions_and_warnings': {'key': 'exceptionsAndWarnings', 'type': '[ReportableException]'}, + } + + def __init__(self, **kwargs): + super(MigrateSsisTaskOutputProjectLevel, self).__init__(**kwargs) + self.folder_name = None + self.project_name = None + self.state = None + self.stage = None + self.started_on = None + self.ended_on = None + self.message = None + self.exceptions_and_warnings = None + self.result_type = 'SsisProjectLevelOutput' + + +class MigrateSsisTaskProperties(ProjectTaskProperties): + """Properties for task that migrates SSIS packages from SQL Server databases + to Azure SQL Database Managed Instance. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar errors: Array of errors. This is ignored if submitted. + :vartype errors: list[~azure.mgmt.datamigration.models.ODataError] + :ivar state: The state of the task. This is ignored if submitted. Possible + values include: 'Unknown', 'Queued', 'Running', 'Canceled', 'Succeeded', + 'Failed', 'FailedInputValidation', 'Faulted' + :vartype state: str or ~azure.mgmt.datamigration.models.TaskState + :ivar commands: Array of command properties. + :vartype commands: + list[~azure.mgmt.datamigration.models.CommandProperties] + :param client_data: Key value pairs of client data to attach meta data + information to task + :type client_data: dict[str, str] + :param task_type: Required. Constant filled by server. + :type task_type: str + :param input: Task input + :type input: ~azure.mgmt.datamigration.models.MigrateSsisTaskInput + :ivar output: Task output. This is ignored if submitted. + :vartype output: + list[~azure.mgmt.datamigration.models.MigrateSsisTaskOutput] + """ + + _validation = { + 'errors': {'readonly': True}, + 'state': {'readonly': True}, + 'commands': {'readonly': True}, + 'task_type': {'required': True}, + 'output': {'readonly': True}, + } + + _attribute_map = { + 'errors': {'key': 'errors', 'type': '[ODataError]'}, + 'state': {'key': 'state', 'type': 'str'}, + 'commands': {'key': 'commands', 'type': '[CommandProperties]'}, + 'client_data': {'key': 'clientData', 'type': '{str}'}, + 'task_type': {'key': 'taskType', 'type': 'str'}, + 'input': {'key': 'input', 'type': 'MigrateSsisTaskInput'}, + 'output': {'key': 'output', 'type': '[MigrateSsisTaskOutput]'}, + } + + def __init__(self, **kwargs): + super(MigrateSsisTaskProperties, self).__init__(**kwargs) + self.input = kwargs.get('input', None) + self.output = None + self.task_type = 'Migrate.Ssis' + + class MigrateSyncCompleteCommandInput(Model): """Input for command that completes sync migration for a database. @@ -10793,6 +11105,36 @@ def __init__(self, **kwargs): self.type = 'SqlConnectionInfo' +class SsisMigrationInfo(Model): + """SSIS migration info with SSIS store type, overwrite policy. + + :param ssis_store_type: The SSIS store type of source, only SSIS catalog + is supported now in DMS. Possible values include: 'SsisCatalog' + :type ssis_store_type: str or + ~azure.mgmt.datamigration.models.SsisStoreType + :param project_overwrite_option: The overwrite option for the SSIS project + migration. Possible values include: 'Ignore', 'Overwrite' + :type project_overwrite_option: str or + ~azure.mgmt.datamigration.models.SsisMigrationOverwriteOption + :param environment_overwrite_option: The overwrite option for the SSIS + environment migration. Possible values include: 'Ignore', 'Overwrite' + :type environment_overwrite_option: str or + ~azure.mgmt.datamigration.models.SsisMigrationOverwriteOption + """ + + _attribute_map = { + 'ssis_store_type': {'key': 'ssisStoreType', 'type': 'str'}, + 'project_overwrite_option': {'key': 'projectOverwriteOption', 'type': 'str'}, + 'environment_overwrite_option': {'key': 'environmentOverwriteOption', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(SsisMigrationInfo, self).__init__(**kwargs) + self.ssis_store_type = kwargs.get('ssis_store_type', None) + self.project_overwrite_option = kwargs.get('project_overwrite_option', None) + self.environment_overwrite_option = kwargs.get('environment_overwrite_option', None) + + class StartMigrationScenarioServerRoleResult(Model): """Server role migration result. diff --git a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models_py3.py b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models_py3.py index ff64cc07545c..53ab937cd4a8 100644 --- a/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models_py3.py +++ b/sdk/datamigration/azure-mgmt-datamigration/azure/mgmt/datamigration/models/_models_py3.py @@ -318,7 +318,8 @@ class ProjectTaskProperties(Model): by current client, this object is returned. You probably want to use the sub-classes and not this class directly. Known - sub-classes are: GetTdeCertificatesSqlTaskProperties, + sub-classes are: MigrateSsisTaskProperties, + GetTdeCertificatesSqlTaskProperties, ValidateOracleAzureDbForPostgreSqlSyncTaskProperties, ValidateMongoDbTaskProperties, ValidateMigrationInputSqlServerSqlMISyncTaskProperties, @@ -384,7 +385,7 @@ class ProjectTaskProperties(Model): } _subtype_map = { - 'task_type': {'GetTDECertificates.Sql': 'GetTdeCertificatesSqlTaskProperties', 'Validate.Oracle.AzureDbPostgreSql.Sync': 'ValidateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Validate.MongoDb': 'ValidateMongoDbTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI.Sync.LRS': 'ValidateMigrationInputSqlServerSqlMISyncTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI': 'ValidateMigrationInputSqlServerSqlMITaskProperties', 'ValidateMigrationInput.SqlServer.SqlDb.Sync': 'ValidateMigrationInputSqlServerSqlDbSyncTaskProperties', 'Migrate.Oracle.Sql.Sync': 'MigrateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.PostgreSql.AzureDbForPostgreSql.Sync': 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.MySql.AzureDbForMySql.Sync': 'MigrateMySqlAzureDbForMySqlSyncTaskProperties', 'Migrate.SqlServer.AzureSqlDb.Sync': 'MigrateSqlServerSqlDbSyncTaskProperties', 'Migrate.SqlServer.SqlDb': 'MigrateSqlServerSqlDbTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI.Sync.LRS': 'MigrateSqlServerSqlMISyncTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI': 'MigrateSqlServerSqlMITaskProperties', 'Migrate.MongoDb': 'MigrateMongoDbTaskProperties', 'ConnectToTarget.AzureDbForMySql': 'ConnectToTargetAzureDbForMySqlTaskProperties', 'ConnectToTarget.AzureSqlDbMI.Sync.LRS': 'ConnectToTargetSqlMISyncTaskProperties', 'ConnectToTarget.AzureSqlDbMI': 'ConnectToTargetSqlMITaskProperties', 'GetUserTablesPostgreSql': 'GetUserTablesPostgreSqlTaskProperties', 'GetUserTablesOracle': 'GetUserTablesOracleTaskProperties', 'GetUserTables.AzureSqlDb.Sync': 'GetUserTablesSqlSyncTaskProperties', 'GetUserTables.Sql': 'GetUserTablesSqlTaskProperties', 'ConnectToTarget.Oracle.AzureDbForPostgreSql.Sync': 'ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.AzureDbForPostgreSql.Sync': 'ConnectToTargetAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.SqlDb.Sync': 'ConnectToTargetSqlSqlDbSyncTaskProperties', 'ConnectToTarget.SqlDb': 'ConnectToTargetSqlDbTaskProperties', 'ConnectToSource.Oracle.Sync': 'ConnectToSourceOracleSyncTaskProperties', 'ConnectToSource.PostgreSql.Sync': 'ConnectToSourcePostgreSqlSyncTaskProperties', 'ConnectToSource.SqlServer.Sync': 'ConnectToSourceSqlServerSyncTaskProperties', 'ConnectToSource.SqlServer': 'ConnectToSourceSqlServerTaskProperties', 'Connect.MongoDb': 'ConnectToMongoDbTaskProperties', 'ConnectToSource.MySql': 'ConnectToSourceMySqlTaskProperties', 'MigrateSchemaSqlServerSqlDb': 'MigrateSchemaSqlServerSqlDbTaskProperties', 'Service.Check.OCI': 'CheckOCIDriverTaskProperties', 'Service.Upload.OCI': 'UploadOCIDriverTaskProperties', 'Service.Install.OCI': 'InstallOCIDriverTaskProperties'} + 'task_type': {'Migrate.Ssis': 'MigrateSsisTaskProperties', 'GetTDECertificates.Sql': 'GetTdeCertificatesSqlTaskProperties', 'Validate.Oracle.AzureDbPostgreSql.Sync': 'ValidateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Validate.MongoDb': 'ValidateMongoDbTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI.Sync.LRS': 'ValidateMigrationInputSqlServerSqlMISyncTaskProperties', 'ValidateMigrationInput.SqlServer.AzureSqlDbMI': 'ValidateMigrationInputSqlServerSqlMITaskProperties', 'ValidateMigrationInput.SqlServer.SqlDb.Sync': 'ValidateMigrationInputSqlServerSqlDbSyncTaskProperties', 'Migrate.Oracle.AzureDbForPostgreSql.Sync': 'MigrateOracleAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.PostgreSql.AzureDbForPostgreSql.Sync': 'MigratePostgreSqlAzureDbForPostgreSqlSyncTaskProperties', 'Migrate.MySql.AzureDbForMySql.Sync': 'MigrateMySqlAzureDbForMySqlSyncTaskProperties', 'Migrate.SqlServer.AzureSqlDb.Sync': 'MigrateSqlServerSqlDbSyncTaskProperties', 'Migrate.SqlServer.SqlDb': 'MigrateSqlServerSqlDbTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI.Sync.LRS': 'MigrateSqlServerSqlMISyncTaskProperties', 'Migrate.SqlServer.AzureSqlDbMI': 'MigrateSqlServerSqlMITaskProperties', 'Migrate.MongoDb': 'MigrateMongoDbTaskProperties', 'ConnectToTarget.AzureDbForMySql': 'ConnectToTargetAzureDbForMySqlTaskProperties', 'ConnectToTarget.AzureSqlDbMI.Sync.LRS': 'ConnectToTargetSqlMISyncTaskProperties', 'ConnectToTarget.AzureSqlDbMI': 'ConnectToTargetSqlMITaskProperties', 'GetUserTablesPostgreSql': 'GetUserTablesPostgreSqlTaskProperties', 'GetUserTablesOracle': 'GetUserTablesOracleTaskProperties', 'GetUserTables.AzureSqlDb.Sync': 'GetUserTablesSqlSyncTaskProperties', 'GetUserTables.Sql': 'GetUserTablesSqlTaskProperties', 'ConnectToTarget.Oracle.AzureDbForPostgreSql.Sync': 'ConnectToTargetOracleAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.AzureDbForPostgreSql.Sync': 'ConnectToTargetAzureDbForPostgreSqlSyncTaskProperties', 'ConnectToTarget.SqlDb.Sync': 'ConnectToTargetSqlSqlDbSyncTaskProperties', 'ConnectToTarget.SqlDb': 'ConnectToTargetSqlDbTaskProperties', 'ConnectToSource.Oracle.Sync': 'ConnectToSourceOracleSyncTaskProperties', 'ConnectToSource.PostgreSql.Sync': 'ConnectToSourcePostgreSqlSyncTaskProperties', 'ConnectToSource.SqlServer.Sync': 'ConnectToSourceSqlServerSyncTaskProperties', 'ConnectToSource.SqlServer': 'ConnectToSourceSqlServerTaskProperties', 'Connect.MongoDb': 'ConnectToMongoDbTaskProperties', 'ConnectToSource.MySql': 'ConnectToSourceMySqlTaskProperties', 'MigrateSchemaSqlServerSqlDb': 'MigrateSchemaSqlServerSqlDbTaskProperties', 'Service.Check.OCI': 'CheckOCIDriverTaskProperties', 'Service.Upload.OCI': 'UploadOCIDriverTaskProperties', 'Service.Install.OCI': 'InstallOCIDriverTaskProperties'} } def __init__(self, *, client_data=None, **kwargs) -> None: @@ -1050,6 +1051,9 @@ class ConnectToSourceSqlServerTaskInput(Model): 'MigrationFromSqlServerToAzureMI', 'MigrationFromMySQLToAzureDBForMySQL' :type check_permissions_group: str or ~azure.mgmt.datamigration.models.ServerLevelPermissionsGroup + :param collect_databases: Flag for whether to collect databases from + source server. Default value: True . + :type collect_databases: bool :param collect_logins: Flag for whether to collect logins from source server. Default value: False . :type collect_logins: bool @@ -1059,6 +1063,9 @@ class ConnectToSourceSqlServerTaskInput(Model): :param collect_tde_certificate_info: Flag for whether to collect TDE Certificate names from source server. Default value: False . :type collect_tde_certificate_info: bool + :param validate_ssis_catalog_only: Flag for whether to validate SSIS + catalog is reachable on the source server. Default value: False . + :type validate_ssis_catalog_only: bool """ _validation = { @@ -1068,18 +1075,22 @@ class ConnectToSourceSqlServerTaskInput(Model): _attribute_map = { 'source_connection_info': {'key': 'sourceConnectionInfo', 'type': 'SqlConnectionInfo'}, 'check_permissions_group': {'key': 'checkPermissionsGroup', 'type': 'ServerLevelPermissionsGroup'}, + 'collect_databases': {'key': 'collectDatabases', 'type': 'bool'}, 'collect_logins': {'key': 'collectLogins', 'type': 'bool'}, 'collect_agent_jobs': {'key': 'collectAgentJobs', 'type': 'bool'}, 'collect_tde_certificate_info': {'key': 'collectTdeCertificateInfo', 'type': 'bool'}, + 'validate_ssis_catalog_only': {'key': 'validateSsisCatalogOnly', 'type': 'bool'}, } - def __init__(self, *, source_connection_info, check_permissions_group=None, collect_logins: bool=False, collect_agent_jobs: bool=False, collect_tde_certificate_info: bool=False, **kwargs) -> None: + def __init__(self, *, source_connection_info, check_permissions_group=None, collect_databases: bool=True, collect_logins: bool=False, collect_agent_jobs: bool=False, collect_tde_certificate_info: bool=False, validate_ssis_catalog_only: bool=False, **kwargs) -> None: super(ConnectToSourceSqlServerTaskInput, self).__init__(**kwargs) self.source_connection_info = source_connection_info self.check_permissions_group = check_permissions_group + self.collect_databases = collect_databases self.collect_logins = collect_logins self.collect_agent_jobs = collect_agent_jobs self.collect_tde_certificate_info = collect_tde_certificate_info + self.validate_ssis_catalog_only = validate_ssis_catalog_only class ConnectToSourceSqlServerTaskOutput(Model): @@ -2105,6 +2116,15 @@ class ConnectToTargetSqlMITaskInput(Model): SQL Server :type target_connection_info: ~azure.mgmt.datamigration.models.SqlConnectionInfo + :param collect_logins: Flag for whether to collect logins from target SQL + MI server. Default value: True . + :type collect_logins: bool + :param collect_agent_jobs: Flag for whether to collect agent jobs from + target SQL MI server. Default value: True . + :type collect_agent_jobs: bool + :param validate_ssis_catalog_only: Flag for whether to validate SSIS + catalog is reachable on the target SQL MI server. Default value: False . + :type validate_ssis_catalog_only: bool """ _validation = { @@ -2113,11 +2133,17 @@ class ConnectToTargetSqlMITaskInput(Model): _attribute_map = { 'target_connection_info': {'key': 'targetConnectionInfo', 'type': 'SqlConnectionInfo'}, + 'collect_logins': {'key': 'collectLogins', 'type': 'bool'}, + 'collect_agent_jobs': {'key': 'collectAgentJobs', 'type': 'bool'}, + 'validate_ssis_catalog_only': {'key': 'validateSsisCatalogOnly', 'type': 'bool'}, } - def __init__(self, *, target_connection_info, **kwargs) -> None: + def __init__(self, *, target_connection_info, collect_logins: bool=True, collect_agent_jobs: bool=True, validate_ssis_catalog_only: bool=False, **kwargs) -> None: super(ConnectToTargetSqlMITaskInput, self).__init__(**kwargs) self.target_connection_info = target_connection_info + self.collect_logins = collect_logins + self.collect_agent_jobs = collect_agent_jobs + self.validate_ssis_catalog_only = validate_ssis_catalog_only class ConnectToTargetSqlMITaskOutput(Model): @@ -4585,7 +4611,7 @@ def __init__(self, *, client_data=None, input=None, **kwargs) -> None: super(MigrateOracleAzureDbForPostgreSqlSyncTaskProperties, self).__init__(client_data=client_data, **kwargs) self.input = input self.output = None - self.task_type = 'Migrate.Oracle.Sql.Sync' + self.task_type = 'Migrate.Oracle.AzureDbForPostgreSql.Sync' class MigrateOracleAzureDbPostgreSqlSyncDatabaseInput(Model): @@ -8017,6 +8043,292 @@ def __init__(self, *, name: str=None, restore_database_name: str=None, backup_an self.database_files = database_files +class MigrateSsisTaskInput(SqlMigrationTaskInput): + """Input for task that migrates SSIS packages from SQL Server to Azure SQL + Database Managed Instance. + + All required parameters must be populated in order to send to Azure. + + :param source_connection_info: Required. Information for connecting to + source + :type source_connection_info: + ~azure.mgmt.datamigration.models.SqlConnectionInfo + :param target_connection_info: Required. Information for connecting to + target + :type target_connection_info: + ~azure.mgmt.datamigration.models.SqlConnectionInfo + :param ssis_migration_info: Required. SSIS package migration information. + :type ssis_migration_info: + ~azure.mgmt.datamigration.models.SsisMigrationInfo + """ + + _validation = { + 'source_connection_info': {'required': True}, + 'target_connection_info': {'required': True}, + 'ssis_migration_info': {'required': True}, + } + + _attribute_map = { + 'source_connection_info': {'key': 'sourceConnectionInfo', 'type': 'SqlConnectionInfo'}, + 'target_connection_info': {'key': 'targetConnectionInfo', 'type': 'SqlConnectionInfo'}, + 'ssis_migration_info': {'key': 'ssisMigrationInfo', 'type': 'SsisMigrationInfo'}, + } + + def __init__(self, *, source_connection_info, target_connection_info, ssis_migration_info, **kwargs) -> None: + super(MigrateSsisTaskInput, self).__init__(source_connection_info=source_connection_info, target_connection_info=target_connection_info, **kwargs) + self.ssis_migration_info = ssis_migration_info + + +class MigrateSsisTaskOutput(Model): + """Output for task that migrates SSIS packages from SQL Server to Azure SQL + Database Managed Instance. + + You probably want to use the sub-classes and not this class directly. Known + sub-classes are: MigrateSsisTaskOutputProjectLevel, + MigrateSsisTaskOutputMigrationLevel + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Result identifier + :vartype id: str + :param result_type: Required. Constant filled by server. + :type result_type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'result_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'result_type': {'key': 'resultType', 'type': 'str'}, + } + + _subtype_map = { + 'result_type': {'SsisProjectLevelOutput': 'MigrateSsisTaskOutputProjectLevel', 'MigrationLevelOutput': 'MigrateSsisTaskOutputMigrationLevel'} + } + + def __init__(self, **kwargs) -> None: + super(MigrateSsisTaskOutput, self).__init__(**kwargs) + self.id = None + self.result_type = None + + +class MigrateSsisTaskOutputMigrationLevel(MigrateSsisTaskOutput): + """MigrateSsisTaskOutputMigrationLevel. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Result identifier + :vartype id: str + :param result_type: Required. Constant filled by server. + :type result_type: str + :ivar started_on: Migration start time + :vartype started_on: datetime + :ivar ended_on: Migration end time + :vartype ended_on: datetime + :ivar status: Current status of migration. Possible values include: + 'Default', 'Connecting', 'SourceAndTargetSelected', 'SelectLogins', + 'Configured', 'Running', 'Error', 'Stopped', 'Completed', + 'CompletedWithWarnings' + :vartype status: str or ~azure.mgmt.datamigration.models.MigrationStatus + :ivar message: Migration progress message + :vartype message: str + :ivar source_server_version: Source server version + :vartype source_server_version: str + :ivar source_server_brand_version: Source server brand version + :vartype source_server_brand_version: str + :ivar target_server_version: Target server version + :vartype target_server_version: str + :ivar target_server_brand_version: Target server brand version + :vartype target_server_brand_version: str + :ivar exceptions_and_warnings: Migration exceptions and warnings. + :vartype exceptions_and_warnings: + list[~azure.mgmt.datamigration.models.ReportableException] + :ivar stage: Stage of SSIS migration. Possible values include: 'None', + 'Initialize', 'InProgress', 'Completed' + :vartype stage: str or ~azure.mgmt.datamigration.models.SsisMigrationStage + """ + + _validation = { + 'id': {'readonly': True}, + 'result_type': {'required': True}, + 'started_on': {'readonly': True}, + 'ended_on': {'readonly': True}, + 'status': {'readonly': True}, + 'message': {'readonly': True}, + 'source_server_version': {'readonly': True}, + 'source_server_brand_version': {'readonly': True}, + 'target_server_version': {'readonly': True}, + 'target_server_brand_version': {'readonly': True}, + 'exceptions_and_warnings': {'readonly': True}, + 'stage': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'result_type': {'key': 'resultType', 'type': 'str'}, + 'started_on': {'key': 'startedOn', 'type': 'iso-8601'}, + 'ended_on': {'key': 'endedOn', 'type': 'iso-8601'}, + 'status': {'key': 'status', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'source_server_version': {'key': 'sourceServerVersion', 'type': 'str'}, + 'source_server_brand_version': {'key': 'sourceServerBrandVersion', 'type': 'str'}, + 'target_server_version': {'key': 'targetServerVersion', 'type': 'str'}, + 'target_server_brand_version': {'key': 'targetServerBrandVersion', 'type': 'str'}, + 'exceptions_and_warnings': {'key': 'exceptionsAndWarnings', 'type': '[ReportableException]'}, + 'stage': {'key': 'stage', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(MigrateSsisTaskOutputMigrationLevel, self).__init__(**kwargs) + self.started_on = None + self.ended_on = None + self.status = None + self.message = None + self.source_server_version = None + self.source_server_brand_version = None + self.target_server_version = None + self.target_server_brand_version = None + self.exceptions_and_warnings = None + self.stage = None + self.result_type = 'MigrationLevelOutput' + + +class MigrateSsisTaskOutputProjectLevel(MigrateSsisTaskOutput): + """MigrateSsisTaskOutputProjectLevel. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Result identifier + :vartype id: str + :param result_type: Required. Constant filled by server. + :type result_type: str + :ivar folder_name: Name of the folder + :vartype folder_name: str + :ivar project_name: Name of the project + :vartype project_name: str + :ivar state: Current state of migration. Possible values include: 'None', + 'InProgress', 'Failed', 'Warning', 'Completed', 'Skipped', 'Stopped' + :vartype state: str or ~azure.mgmt.datamigration.models.MigrationState + :ivar stage: Stage of SSIS migration. Possible values include: 'None', + 'Initialize', 'InProgress', 'Completed' + :vartype stage: str or ~azure.mgmt.datamigration.models.SsisMigrationStage + :ivar started_on: Migration start time + :vartype started_on: datetime + :ivar ended_on: Migration end time + :vartype ended_on: datetime + :ivar message: Migration progress message + :vartype message: str + :ivar exceptions_and_warnings: Migration exceptions and warnings + :vartype exceptions_and_warnings: + list[~azure.mgmt.datamigration.models.ReportableException] + """ + + _validation = { + 'id': {'readonly': True}, + 'result_type': {'required': True}, + 'folder_name': {'readonly': True}, + 'project_name': {'readonly': True}, + 'state': {'readonly': True}, + 'stage': {'readonly': True}, + 'started_on': {'readonly': True}, + 'ended_on': {'readonly': True}, + 'message': {'readonly': True}, + 'exceptions_and_warnings': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'result_type': {'key': 'resultType', 'type': 'str'}, + 'folder_name': {'key': 'folderName', 'type': 'str'}, + 'project_name': {'key': 'projectName', 'type': 'str'}, + 'state': {'key': 'state', 'type': 'str'}, + 'stage': {'key': 'stage', 'type': 'str'}, + 'started_on': {'key': 'startedOn', 'type': 'iso-8601'}, + 'ended_on': {'key': 'endedOn', 'type': 'iso-8601'}, + 'message': {'key': 'message', 'type': 'str'}, + 'exceptions_and_warnings': {'key': 'exceptionsAndWarnings', 'type': '[ReportableException]'}, + } + + def __init__(self, **kwargs) -> None: + super(MigrateSsisTaskOutputProjectLevel, self).__init__(**kwargs) + self.folder_name = None + self.project_name = None + self.state = None + self.stage = None + self.started_on = None + self.ended_on = None + self.message = None + self.exceptions_and_warnings = None + self.result_type = 'SsisProjectLevelOutput' + + +class MigrateSsisTaskProperties(ProjectTaskProperties): + """Properties for task that migrates SSIS packages from SQL Server databases + to Azure SQL Database Managed Instance. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar errors: Array of errors. This is ignored if submitted. + :vartype errors: list[~azure.mgmt.datamigration.models.ODataError] + :ivar state: The state of the task. This is ignored if submitted. Possible + values include: 'Unknown', 'Queued', 'Running', 'Canceled', 'Succeeded', + 'Failed', 'FailedInputValidation', 'Faulted' + :vartype state: str or ~azure.mgmt.datamigration.models.TaskState + :ivar commands: Array of command properties. + :vartype commands: + list[~azure.mgmt.datamigration.models.CommandProperties] + :param client_data: Key value pairs of client data to attach meta data + information to task + :type client_data: dict[str, str] + :param task_type: Required. Constant filled by server. + :type task_type: str + :param input: Task input + :type input: ~azure.mgmt.datamigration.models.MigrateSsisTaskInput + :ivar output: Task output. This is ignored if submitted. + :vartype output: + list[~azure.mgmt.datamigration.models.MigrateSsisTaskOutput] + """ + + _validation = { + 'errors': {'readonly': True}, + 'state': {'readonly': True}, + 'commands': {'readonly': True}, + 'task_type': {'required': True}, + 'output': {'readonly': True}, + } + + _attribute_map = { + 'errors': {'key': 'errors', 'type': '[ODataError]'}, + 'state': {'key': 'state', 'type': 'str'}, + 'commands': {'key': 'commands', 'type': '[CommandProperties]'}, + 'client_data': {'key': 'clientData', 'type': '{str}'}, + 'task_type': {'key': 'taskType', 'type': 'str'}, + 'input': {'key': 'input', 'type': 'MigrateSsisTaskInput'}, + 'output': {'key': 'output', 'type': '[MigrateSsisTaskOutput]'}, + } + + def __init__(self, *, client_data=None, input=None, **kwargs) -> None: + super(MigrateSsisTaskProperties, self).__init__(client_data=client_data, **kwargs) + self.input = input + self.output = None + self.task_type = 'Migrate.Ssis' + + class MigrateSyncCompleteCommandInput(Model): """Input for command that completes sync migration for a database. @@ -10793,6 +11105,36 @@ def __init__(self, *, data_source: str, user_name: str=None, password: str=None, self.type = 'SqlConnectionInfo' +class SsisMigrationInfo(Model): + """SSIS migration info with SSIS store type, overwrite policy. + + :param ssis_store_type: The SSIS store type of source, only SSIS catalog + is supported now in DMS. Possible values include: 'SsisCatalog' + :type ssis_store_type: str or + ~azure.mgmt.datamigration.models.SsisStoreType + :param project_overwrite_option: The overwrite option for the SSIS project + migration. Possible values include: 'Ignore', 'Overwrite' + :type project_overwrite_option: str or + ~azure.mgmt.datamigration.models.SsisMigrationOverwriteOption + :param environment_overwrite_option: The overwrite option for the SSIS + environment migration. Possible values include: 'Ignore', 'Overwrite' + :type environment_overwrite_option: str or + ~azure.mgmt.datamigration.models.SsisMigrationOverwriteOption + """ + + _attribute_map = { + 'ssis_store_type': {'key': 'ssisStoreType', 'type': 'str'}, + 'project_overwrite_option': {'key': 'projectOverwriteOption', 'type': 'str'}, + 'environment_overwrite_option': {'key': 'environmentOverwriteOption', 'type': 'str'}, + } + + def __init__(self, *, ssis_store_type=None, project_overwrite_option=None, environment_overwrite_option=None, **kwargs) -> None: + super(SsisMigrationInfo, self).__init__(**kwargs) + self.ssis_store_type = ssis_store_type + self.project_overwrite_option = project_overwrite_option + self.environment_overwrite_option = environment_overwrite_option + + class StartMigrationScenarioServerRoleResult(Model): """Server role migration result.