Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::DTS::MigrationJob2

Última atualização: Jul 03, 2026

Adquire uma instância de migração de dados e configura uma tarefa de migração.

Sintaxe

{
  "Type": "ALIYUN::DTS::MigrationJob2",
  "Properties": {
    "Status": String,
    "Reserve": Map,
    "DataSynchronization": Boolean,
    "DedicatedClusterId": String,
    "DelayPhone": String,
    "ErrorNotice": Boolean,
    "DtsJobName": String,
    "DelayRuleTime": Integer,
    "DtsInstanceId": String,
    "DbList": Map,
    "FileOssUrl": String,
    "DataCheckConfigure": Map,
    "DtsBisLabel": String,
    "Checkpoint": String,
    "DisasterRecoveryJob": Boolean,
    "DtsJobId": String,
    "DelayNotice": Boolean,
    "DataInitialization": Boolean,
    "DestinationEndpoint": Map,
    "SourceEndpoint": Map,
    "ErrorPhone": String,
    "StructureInitialization": Boolean,
    "SrcPrimaryVswId": String,
    "MaxDu": Integer,
    "DestPrimaryVswId": String,
    "DestSecondaryVswId": String,
    "SrcSecondaryVswId": String,
    "MinDu": Integer,
    "ResourceGroupId": String
  }
}

Propriedades

Parâmetro

Tipo

Obrigatório

Atualizável

Descrição

Restrições

DataSynchronization

Boolean

Sim

Não

Define se a migração ou sincronização incremental de dados deve ser ativada.

Valores válidos:

  • true: ativa a migração ou sincronização incremental de dados.

  • false (padrão): desativa a migração ou sincronização incremental de dados.

DbList

Map

Sim

Não

Objetos a serem migrados, sincronizados ou assinados.

O valor deve ser uma string JSON. Para mais detalhes, consulte Objetos de migração, sincronização ou assinatura.

DtsJobName

String

Sim

Sim

Nome da tarefa de assinatura.

Utilize um nome descritivo para facilitar a identificação. Não é necessário que o nome seja único.

DataInitialization

Boolean

Sim

Não

Indica se a migração completa de dados ou a inicialização completa de dados está habilitada.

Valores válidos:

  • true (padrão): habilita a migração completa de dados ou a inicialização completa de dados.

  • false: desabilita a migração completa de dados ou a inicialização completa de dados.

DestinationEndpoint

Map

Sim

Sim

Configuração da instância de destino.

Para mais informações, consulte Propriedades de DestinationEndpoint.

StructureInitialization

Boolean

Sim

Não

Especifica se a migração ou inicialização de esquema deve ocorrer.

Valores válidos:

  • true (padrão): habilita a migração ou inicialização de esquema.

  • false: desabilita a migração ou inicialização de esquema.

SourceEndpoint

Map

Sim

Sim

Configuração da instância de origem.

Para mais informações, consulte Propriedades de SourceEndpoint.

Status

String

Não

Sim

Estado atual do recurso.

Valores válidos:

  • Synchronizing: o recurso está sincronizando dados.

  • Suspending: o recurso está pausado.

  • Stopping: o recurso está sendo encerrado.

Reserve

Map

Não

Não

Parâmetros reservados do Data Transmission Service (DTS).

Adiciona configurações para a instância de origem ou de destino. Por exemplo, permite especificar o formato de armazenamento de dados de uma instância Message Queue for Apache Kafka de destino e o ID de uma instância Cloud Enterprise Network (CEN).

DedicatedClusterId

String

Não

Não

ID do cluster dedicado do DTS.

Agenda uma tarefa de assinatura em um cluster dedicado específico do DTS.

DelayPhone

String

Não

Não

Números de telefone móvel dos contatos para alertas de latência.

Separe vários números de telefone móvel com vírgula (,).

Nota

ErrorNotice

Boolean

Não

Não

Habilita ou não o monitoramento de erros na tarefa.

Valores válidos:

  • true: monitora erros na tarefa.

  • false: não monitora erros na tarefa.

DelayRuleTime

Integer

Não

Não

Limiar para acionar alertas de latência.

Unidade: segundos. O valor deve ser um número inteiro. Recomenda-se definir um valor igual ou superior a 10 segundos para evitar falsos alarmes causados por latência normal de rede ou flutuações de carga do banco de dados.

Nota

Este parâmetro é obrigatório quando o parâmetro DelayNotice estiver definido como true.

DtsInstanceId

String

Não

Não

ID da tarefa de assinatura.

N/A

FileOssUrl

String

Não

Não

URL do OSS referente ao arquivo da tarefa.

N/A

DataCheckConfigure

Map

Não

Não

Configuração da tarefa de verificação de dados.

String JSON que define limites de parâmetros e configurações de alerta. Para mais informações, consulte Propriedades de DataCheckConfigure.

DtsBisLabel

String

Não

Não

Tag de ambiente da instância do DTS.

Valores válidos:

  • normal: Normal

  • online: Online

Checkpoint

String

Não

Não

Ponto de verificação para migração ou sincronização incremental de dados.

O valor corresponde a um carimbo de data/hora UNIX em segundos.

DisasterRecoveryJob

Boolean

Não

Não

Indica se esta é uma instância de recuperação de desastres.

Valores válidos:

  • true: trata-se de uma instância de recuperação de desastres.

  • false: não é uma instância de recuperação de desastres.

DtsJobId

String

Não

Não

Identificador da tarefa de migração ou sincronização de dados.

N/A

DelayNotice

Boolean

Não

Não

Ativa ou desativa o monitoramento de latência da tarefa.

Valores válidos:

  • true: monitora a latência da tarefa.

  • false: não monitora a latência da tarefa.

ErrorPhone

String

Não

Não

Telefones móveis dos contatos para receber alertas de erro.

Separe múltiplos números de celular com vírgula (,).

Nota

SrcPrimaryVswId

String

Não

Não

ID do vSwitch primário para a origem NAT baseada em VPC.

N/A

MaxDu

Integer

Não

Não

Quantidade máxima de Unidades DTS (DUs) para a tarefa.

Aplicável somente a instâncias serverless.

DestPrimaryVswId

String

Não

Não

ID do vSwitch primário para o destino NAT baseado em VPC.

N/A

DestSecondaryVswId

String

Não

Não

ID do vSwitch secundário para o destino NAT baseado em VPC.

N/A

SrcSecondaryVswId

String

Não

Não

ID do vSwitch secundário para a origem NAT baseada em VPC.

N/A

MinDu

Integer

Não

Não

Número mínimo de Unidades DTS (DUs) exigido pela tarefa.

Aplicável somente a instâncias serverless.

ResourceGroupId

String

Não

Não

ID do grupo de recursos.

N/A

Sintaxe de DataCheckConfigure

"DataCheckConfigure": {
  "fullCheckMaxReadRps": Integer,
  "dataCheckNoticePhone": String,
  "incrementalCheckDelayNotice": Boolean,
  "incrementalCheckDelayNoticeValue": Integer,
  "incrementalCheckDelayNoticePeriod": Integer,
  "dataCheckDbList": String,
  "checkMaximumHourEnable": Integer,
  "fullCheckRatio": Integer,
  "checkMaximumHour": Integer,
  "fullCheckFixData": Boolean,
  "fullCheckModel": Integer,
  "incrementalCheckValidFailNoticeValue": Integer,
  "incrementalDataCheck": Boolean,
  "incrementalCheckValidFailNoticeTimes": Integer,
  "fullCheckMaxReadBps": Integer,
  "fullCheckValidFailNotice": Boolean,
  "fullCheckErrorNotice": Boolean,
  "incrementalCheckValidFailNoticePeriod": Integer,
  "incrementalCheckDelayNoticeTimes": Integer,
  "fullCheckReferEndpoint": String,
  "fullDataCheck": Boolean,
  "incrementalCheckValidFailNotice": Boolean,
  "fullCheckNoticeValue": Integer,
  "incrementalCheckErrorNotice": Boolean
}

Propriedades de DataCheckConfigure

Parâmetro

Tipo

Obrigatório

Editável

Descrição

Restrições

fullCheckMaxReadRps

Integer

Não

Não

Limite máximo de linhas de dados lidas por segundo.

O valor deve ser um inteiro entre 0 e 9007199254740991.

Nota

O valor 0 indica ausência de limite.

dataCheckNoticePhone

String

Não

Não

Número de telefone móvel do contato para alertas das tarefas de verificação completa ou incremental de dados.

O contato recebe uma mensagem de texto quando uma tarefa de verificação de dados dispara um alerta.

incrementalCheckDelayNotice

Boolean

Não

Não

Controla a ativação de alertas para latência de dados em tarefas de verificação incremental.

Valores válidos:

  • true: habilita alertas para latência de dados.

    Nota

    Um alerta é disparado se a latência de dados da tarefa atingir ou ultrapassar o limiar especificado durante um número configurado de períodos estatísticos consecutivos.

  • false: desabilita alertas para latência de dados.

incrementalCheckDelayNoticeValue

Integer

Não

Não

Limiar de alerta para latência de dados em uma tarefa de verificação incremental.

Unidade: segundos.

Nota

Parâmetro obrigatório caso incrementalCheckDelayNotice esteja definido como true.

incrementalCheckDelayNoticePeriod

Integer

Não

Não

Período estatístico para alertas de latência de dados em uma tarefa de verificação incremental.

Valores válidos:

  • 1: 1 minuto.

  • 2: 5 minutos.

  • 3: 10 minutos.

  • 4: 30 minutos.

Nota

Campo obrigatório quando incrementalCheckDelayNotice for true.

dataCheckDbList

String

Não

Não

Objetos alvo da verificação de dados.

Nenhuma.

checkMaximumHourEnable

Integer

Não

Não

Define se haverá um tempo limite para a tarefa de verificação completa de dados.

Valores válidos:

  • 0: nenhum tempo limite definido.

  • 1: tempo limite definido.

Nota

Necessário informar este campo se fullCheckModel estiver como 1.

fullCheckRatio

Integer

Não

Não

Taxa de amostragem aplicada à tarefa de verificação completa de dados.

Aceita valores inteiros de 10 a 100. Unidade: %.

Nota

Exigido quando fullCheckModel possuir o valor 1.

checkMaximumHour

Integer

Não

Não

Tempo limite estipulado para a execução da verificação completa de dados.

Deve ser um inteiro entre 1 e 72. A contagem regressiva inicia assim que a verificação começa; caso exceda esse período, o sistema encerra a tarefa forçadamente.

fullCheckFixData

Boolean

Não

Não

Determina se a correção automática de dados será executada.

Valores válidos:

  • true: realiza a correção de dados.

    Nota

    Caso haja inconsistência entre os bancos de dados de origem e destino, o sistema sobrescreve os dados no destino com as informações da origem.

  • false (padrão): não executa a correção de dados.

fullCheckModel

Integer

Não

Não

Modo de operação da tarefa de verificação completa de dados.

Valores válidos:

  • 1: verificação por taxa de amostragem.

  • 2: verificação linha a linha.

incrementalCheckValidFailNoticeValue

Integer

Não

Não

Limiar de alerta para dados inconsistentes em uma tarefa de verificação incremental.

Obrigatório quando incrementalCheckValidFailNotice for definido como true.

incrementalDataCheck

Boolean

Não

Não

Habilita a execução da verificação incremental de dados.

Valores válidos:

  • true: executa a verificação incremental de dados.

  • false: não executa a verificação incremental de dados.

incrementalCheckValidFailNoticeTimes

Integer

Não

Não

Quantidade de períodos estatísticos consecutivos com dados inconsistentes necessária para disparar um alerta.

Campo requerido se incrementalCheckValidFailNotice for true.

fullCheckMaxReadBps

Integer

Não

Não

Volume máximo de dados a serem lidos por segundo.

Deve ser um inteiro entre 0 e 9007199254740991.

Unidade: bytes.

Nota

Definir como 0 remove qualquer limitação.

fullCheckValidFailNotice

Boolean

Não

Não

Ativa alertas para inconsistências detectadas na verificação completa de dados.

Valores válidos:

  • true: habilita alertas para dados inconsistentes.

    Nota

    O alerta é acionado quando a contagem de entradas inconsistentes atinge ou supera o limiar estabelecido.

  • false: desativa os alertas para dados inconsistentes.

fullCheckErrorNotice

Boolean

Não

Não

Notifica falhas ocorridas durante a tarefa de verificação completa de dados.

Valores válidos:

  • true: envia alerta em caso de falha na tarefa.

    Nota

    Gera notificação imediata mediante erro na execução.

  • false: silencia alertas de falha na tarefa.

incrementalCheckValidFailNoticePeriod

Integer

Não

Não

Intervalo estatístico utilizado para avaliar inconsistências na verificação incremental.

Opções disponíveis:

  • 1: 1 minuto.

  • 2: 5 minutos.

  • 3: 10 minutos.

  • 4: 30 minutos.

Nota

Torna-se mandatório se incrementalCheckValidFailNotice for true.

incrementalCheckDelayNoticeTimes

Integer

Não

Não

Número de ciclos estatísticos consecutivos com latência acima do limiar para gerar um alerta.

Requisito aplicável quando incrementalCheckDelayNotice estiver habilitado (true).

fullCheckReferEndpoint

String

Não

Não

Base de referência para a verificação completa de dados.

Valores válidos:

  • all: valida dados considerando a união dos bancos de origem e destino, identificando discrepâncias entre ambos.

  • src: toma o banco de origem como base. Registros existentes apenas no destino são ignorados.

  • dest: utiliza o banco de destino como referência. Dados presentes somente na origem não são verificados.

fullDataCheck

Boolean

Não

Não

Inicia ou não o processo de verificação completa de dados.

Valores válidos:

  • true: efetua a verificação completa de dados.

  • false: omite a verificação completa de dados.

incrementalCheckValidFailNotice

Boolean

Não

Não

Dispara notificações sobre inconsistências encontradas na verificação incremental.

Valores válidos:

  • true: alerta sobre dados inconsistentes.

    Nota

    A notificação ocorre se o volume de inconsistências atingir o limiar definido ao longo de períodos estatísticos consecutivos pré-configurados.

  • false: suprime alertas de inconsistência.

fullCheckNoticeValue

Integer

Não

Não

Quantidade limite de dados inconsistentes para gerar alerta na verificação completa.

Deve ser informado caso fullCheckValidFailNotice seja true.

incrementalCheckErrorNotice

Boolean

Não

Não

Envia notificação caso a tarefa de verificação incremental apresente falha.

Valores válidos:

  • true: notifica falhas na tarefa.

    Nota

    Alerta gerado automaticamente diante de erro.

  • false: não notifica falhas na tarefa.

Sintaxe de DestinationEndpoint

"DestinationEndpoint": {
  "Role": String,
  "OracleSID": String,
  "UserName": String,
  "OwnerID": String,
  "InstanceID": String,
  "IP": String,
  "Port": String,
  "DatabaseName": String,
  "Region": String,
  "InstanceType": String,
  "EngineName": String,
  "Password": String
}

Propriedades de DestinationEndpoint

Parâmetro

Tipo

Obrigatório

Editável

Descrição

Restrições

InstanceType

String

Sim

Não

Tipo da instância de destino.

Valores válidos:

  • ECS: banco de dados autogerenciado hospedado em uma instância ECS.

  • LocalInstance: banco de dados autogerenciado com endereço IP público.

  • RDS: instância do Alibaba Cloud RDS.

  • DRDS: instância PolarDB-X.

  • MongoDB: instância do Alibaba Cloud ApsaraDB for MongoDB.

  • Redis: instância do Alibaba Cloud ApsaraDB for Redis.

  • PetaData: instância HybridDB for MySQL.

  • PolarDB: cluster PolarDB for MySQL ou PolarDB for PostgreSQL.

  • PolarDB_o: cluster PolarDB for Oracle.

  • AnalyticDB: cluster AnalyticDB for MySQL V3.0 ou V2.0.

  • Greenplum: instância AnalyticDB for PostgreSQL.

Role

String

Não

Não

Nome da função do Resource Access Management (RAM) da conta Alibaba Cloud proprietária da instância de destino.

Parâmetro necessário para migração ou sincronização de dados entre contas diferentes da Alibaba Cloud.

OracleSID

String

Não

Não

System ID (SID) do banco de dados Oracle.

Obrigatório quando EngineName for Oracle e o banco não for uma instância RAC.

UserName

String

Não

Não

Conta de usuário do banco de dados de destino.

As permissões necessárias variam conforme o cenário de migração. Consulte os exemplos de configuração em Visão geral dos cenários de migração.

OwnerID

String

Não

Não

ID da conta Alibaba Cloud proprietária da instância de destino.

Necessário apenas para migração de dados entre contas distintas da Alibaba Cloud.

InstanceID

String

Não

Não

Identificador da instância de destino.

Exigido se InstanceType for RDS, ECS, MongoDB, Redis, DRDS, PetaData, PolarDB, PolarDB_o, AnalyticDB ou Greenplum. Informe o ID correspondente; por exemplo, se InstanceType for ECS, forneça o ID da instância ECS.

IP

String

Não

Não

Endereço IP do banco de dados de destino.

Obrigatório quando InstanceType for LocalInstance.

Port

String

Não

Não

Porta de serviço do banco de dados de destino.

Necessário se InstanceType for ECS ou LocalInstance.

DatabaseName

String

Não

Não

Nome do banco de dados a ser migrado ou do banco de autenticação.

  • Campo mandatório se DestinationEndpoint.EngineName for PostgreSQL, DRDS ou MongoDB.

  • Para PostgreSQL e DRDS, refere-se ao banco a migrar. Para MongoDB, indica o banco de autenticação.

Region

String

Não

Não

ID da região onde reside o banco de dados de destino.

Se InstanceType for LocalInstance, utilize cn-hangzhou ou o ID da região geograficamente mais próxima do banco autogerenciado. Consulte Regiões suportadas.

EngineName

String

Não

Não

Motor do banco de dados de destino.

Valores válidos:

  • MySQL

  • DRDS

  • SQLServer

  • PostgreSQL

  • PPAS

  • MongoDB

  • Redis

  • PolarDB

  • polardb_pg

Nota

Informação obrigatória se InstanceType for RDS, PolarDB, ECS ou LocalInstance.

Password

String

Não

Sim

Senha da conta do banco de dados de destino.

Nenhuma

Sintaxe de SourceEndpoint

"SourceEndpoint": {
  "OracleSID": String,
  "UserName": String,
  "InstanceID": String,
  "IP": String,
  "Port": String,
  "VSwitchID": String,
  "DatabaseName": String,
  "EngineName": String,
  "Role": String,
  "OwnerID": String,
  "Region": String,
  "InstanceType": String,
  "Password": String
}

Propriedades de SourceEndpoint

Parâmetro

Tipo

Obrigatório

Editável

Descrição

Restrição

InstanceType

String

Sim

Não

Categoria da instância de origem.

Valores válidos:

  • RDS: instância do Alibaba Cloud RDS.

  • ECS: banco autogerenciado em instância ECS.

  • LocalInstance: banco autogerenciado acessível via IP público.

  • Express Connect: banco autogerenciado conectado via Express Connect, VPN Gateway ou Smart Access Gateway.

  • Database Gateway: banco autogerenciado conectado via Database Gateway (DG).

  • Cloud Enterprise Network: banco autogerenciado conectado via Cloud Enterprise Network (CEN).

  • MongoDB: instância do Alibaba Cloud MongoDB.

  • PolarDB: cluster PolarDB for MySQL ou PolarDB for PostgreSQL.

  • PolarDB_o: cluster PolarDB for Oracle.

OracleSID

String

Não

Não

System ID (SID) do banco de dados Oracle.

Necessário apenas quando EngineName for Oracle e a instância não utilizar arquitetura Real Application Clusters (RAC).

UserName

String

Não

Não

Usuário de acesso ao banco de origem.

As permissões exigidas dependem do cenário de migração. Veja exemplos em Cenários de migração.

InstanceID

String

Não

Não

Identificador da instância de origem.

  • Obrigatório se SourceEndpoint.InstanceType for RDS, ECS, Express Connect, MongoDB, PolarDB ou PolarDB_o. Por exemplo, para ECS, informe o ID da instância ECS.

  • Quando SourceEndpoint.InstanceType for Express Connect, este campo representa o ID da Virtual Private Cloud (VPC).

IP

String

Não

Não

Endereço IP de conexão do banco de origem.

Requerido se InstanceType for LocalInstance ou Express Connect.

Port

String

Não

Não

Porta de serviço do banco de origem.

Exigido quando InstanceType for ECS, LocalInstance ou Express Connect.

VSwitchID

String

Não

Não

ID do vSwitch utilizado no link de transmissão de dados.

Nenhuma

DatabaseName

String

Não

Não

Nome do banco a migrar ou do banco de autenticação.

  • Obrigatório se SourceEndpoint.EngineName for PostgreSQL ou MongoDB.

  • Para PostgreSQL, indica o banco a migrar. Para MongoDB, refere-se ao banco de autenticação.

EngineName

String

Não

Não

Tipo de motor do banco de origem.

Valores válidos:

  • MySQL

  • TiDB

  • SQLServer

  • PostgreSQL

  • Oracle

  • MongoDB

  • Redis

  • PolarDB

  • polardb_pg

Nota

Campo necessário se InstanceType for RDS, PolarDB, ECS, LocalInstance ou Express Connect.

Role

String

Não

Não

Função RAM associada à instância de origem.

Obrigatória quando origem e destino pertencem a contas Alibaba Cloud distintas, autorizando o acesso da conta de destino à instância de origem.

Nota

Para detalhes sobre permissões e concessão de acesso via RAM, veja Configurar autorização RAM para tarefas de migração entre contas.

OwnerID

String

Não

Não

ID da conta Alibaba Cloud dona da instância de origem.

Utilizado exclusivamente em migrações entre contas diferentes da Alibaba Cloud.

Region

String

Não

Não

Região onde o banco de origem está localizado.

Para LocalInstance, use cn-hangzhou ou a região mais próxima geograficamente. Mais detalhes em Regiões suportadas.

Password

String

Não

Sim

Senha da conta do banco de origem.

Nenhuma

Valores de retorno

Fn::GetAtt

  • DtsJobId: ID da tarefa do DTS.

  • DtsJobName: Nome da tarefa do DTS.

  • DtsInstanceId: ID da instância do DTS.

Exemplos

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  SourceEndpoint:
    AssociationPropertyMetadata:
      Parameters:
        UserName:
          Default: null
          Type: String
          Description:
            en: >-
              The username for the source database account.

              Note: This parameter is required in most scenarios. The required database account permissions vary by migration or synchronization scenario.
        Password:
          Default: null
          Type: String
          Description:
            en: The password for the source database account.
        InstanceID:
          Default: null
          Type: String
          Description:
            en: >-
              The ID of the source instance. If the source is an Alibaba Cloud database instance, you must specify its instance ID.

              - If the source instance is an ApsaraDB RDS for MySQL instance, specify the ID of the ApsaraDB RDS for MySQL instance.

              - If the source instance is a self-managed database, this parameter's value depends on the SourceEndpoint.InstanceType value. - If InstanceType is set to ECS, specify the ID of the ECS instance. - If InstanceType is set to DG, specify the ID of the database gateway. - If InstanceType is set to EXPRESS or CEN, specify the ID of the VPC connected to the source instance. Note: If DestinationEndpoint.InstanceType is set to CEN, you must also specify the ID of the CEN instance in the Reserve parameter. IP: Default: null Type: String Description: en: >- The IP address of the source instance. Note: This parameter is required only when InstanceType is set to OTHER, EXPRESS, DG, or CEN. Region: Default: null Type: String Description: en: >- The region ID of the source instance. Note: This parameter is required if the source instance is an Alibaba Cloud database instance. InstanceType: Type: String Description: en: >- The type of the source instance. Valid values: Alibaba Cloud database instances: - RDS: An ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, ApsaraDB RDS for PostgreSQL, or ApsaraDB RDS for MariaDB TX instance. - PolarDB: A PolarDB for MySQL cluster. - REDIS: An ApsaraDB for Redis instance. - DISTRIBUTED_POLARDBX10: A PolarDB-X 1.0 (formerly DRDS) instance. - POLARDBX20: A PolarDB-X 2.0 instance. - MONGODB: An ApsaraDB for MongoDB instance. - DISTRIBUTED_DMSLOGICDB: A Data Management (DMS) logical database. Self-managed databases: - OTHER: A self-managed database with a public IP address. - ECS: A self-managed database hosted on an Elastic Compute Service (ECS) instance. - EXPRESS: A self-managed database connected over Express Connect. - CEN: A self-managed database connected over Cloud Enterprise Network (CEN). - DG: A self-managed database connected over Database Gateway. Note: If the source instance is a PolarDB for PostgreSQL cluster (Oracle-compatible), you must set this parameter to OTHER or EXPRESS. You can then connect to DTS by using a public IP address or Express Connect. If the source is a self-managed database, you must prepare its network environment. VSwitchID: Default: null Type: String Description: en: The ID of the vSwitch used for the data transmission link. DatabaseName: Default: null Type: String Description: en: >- The name of the source database that contains the objects to migrate. Note: This parameter is required only when the source instance is a PolarDB for PostgreSQL cluster (Oracle-compatible), a PostgreSQL database, or a MongoDB database. EngineName: Default: null Type: String Description: en: >- The database engine of the source instance. Valid values: - MYSQL: An ApsaraDB RDS for MySQL instance or a self-managed MySQL database. - MARIADB: An ApsaraDB RDS for MariaDB TX instance. - PolarDB: A PolarDB for MySQL cluster. - POLARDB_O: A PolarDB for PostgreSQL cluster (Oracle-compatible). - POLARDBX10: A PolarDB-X 1.0 instance. - POLARDBX20: A PolarDB-X 2.0 instance. - ORACLE: A self-managed Oracle database. - POSTGRESQL: An ApsaraDB RDS for PostgreSQL instance or a self-managed PostgreSQL database. - MSSQL: An ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database. - MONGODB: An ApsaraDB for MongoDB instance or a self-managed MongoDB database. - DB2: A self-managed Db2 for LUW database. - AS400: A self-managed Db2 for i database. - DMSPOLARDB: A DMS logical database. - HBASE: A self-managed HBase database. - TERADATA: A Teradata database. - TiDB: A TiDB database. - REDIS: An ApsaraDB for Redis instance or a self-managed Redis database. Note: The default value is MYSQL. If EngineName is set to MONGODB, you must also specify the architecture type of the MongoDB database in the Reserve parameter. Role: Default: null Type: String Description: en: >- The name of the RAM role configured for the Alibaba Cloud account that owns the source instance. Note: This parameter is required for data migration or synchronization across different Alibaba Cloud accounts. OwnerID: Default: null Type: String Description: en: >- The ID of the Alibaba Cloud account to which the source database belongs. Note: Specify this parameter for cross-account data migration or synchronization. If you specify this parameter, you must also specify the Role parameter. OracleSID: Default: null Type: String Description: en: >- The system ID (SID) of the Oracle database. Note: This parameter is required only if EngineName is set to ORACLE and the Oracle database is not in a Real Application Clusters (RAC) configuration. Port: Default: null Type: String Description: en: >- The port number of the source instance. Note: This parameter is required only when the source instance is a self-managed database. Type: Json Description: en: Source endpoint configuration. Checkpoint: Default: null Type: String Description: en: >- The start offset of incremental data migration or synchronization. This value is a UNIX timestamp in seconds. Status: Default: null Type: String Description: en: |- The status of the DTS job. Valid values: - Migrating: Starts the job. - Suspending: Suspends the job. - Stopping: Stops the job. AllowedValues: - Migrating - Suspending - Stopping DisasterRecoveryJob: Default: null Type: Boolean Description: en: >- Specifies whether the job is for disaster recovery. Valid values: true and false. DtsJobId: Default: null Type: String Description: en: The DTS job ID. DtsJobName: Type: String Description: en: DTS job name. DataSynchronization: Type: Boolean Description: en: >- Specifies whether to perform incremental data migration or synchronization. Default value: false. Valid values: true and false. DataCheckConfigure: Default: null AssociationPropertyMetadata: Parameters: fullCheckErrorNotice: Default: null Type: Boolean Description: en: >- Specifies whether to trigger an alert if the full data verification task fails. Valid values: true and false. fullCheckValidFailNotice: Default: null Type: Boolean Description: en: >- Specifies whether to trigger an alert if inconsistent data is detected during a full data verification. If you set this parameter to true, an alert is triggered if the number of inconsistent data entries meets or exceeds the specified threshold. Valid values: true and false. incrementalCheckValidFailNotice: Default: null Type: Boolean Description: en: >- Specifies whether to trigger an alert if inconsistent data is detected during an incremental data verification. If you set this parameter to true, an alert is triggered if the cumulative number of inconsistent data entries across consecutive statistical periods meets or exceeds the specified threshold. Valid values: true and false. dataCheckNoticePhone: Default: null Type: String Description: en: >- The mobile number of the contact for data verification alerts. If an alert is triggered, a text message is sent to notify the contact. fullCheckReferEndpoint: Default: null Type: String Description: en: >- The benchmark for full data verification. Valid values: - all: Verifies data consistency based on the union of the source and destination databases. - src: Verifies data consistency based on the source database. Objects that exist only in the destination database are not verified. - dest: Verifies data consistency based on the destination database. Objects that exist only in the source database are not verified. fullCheckModel: Default: null Type: Number Description: en: |- The mode of the full data verification task. Valid values: - 1: Verifies data by sampling ratio. - 2: Verifies data by row. AllowedValues: - 1 - 2 incrementalCheckDelayNotice: Default: null Type: Boolean Description: en: >- Specifies whether to trigger an alert for data latency in an incremental data verification. If you set this parameter to true, an alert is triggered if the cumulative latency across consecutive statistical periods meets or exceeds the specified threshold. Valid values: true and false. incrementalCheckValidFailNoticePeriod: Default: null Type: Number Description: en: >- The statistical period for alerts on inconsistent data in an incremental data verification. Valid values: - 1: 1 minute - 2: 5 minutes - 3: 10 minutes - 4: 30 minutes Note: This parameter is required if incrementalCheckValidFailNotice is set to true. AllowedValues: - 1 - 2 - 3 - 4 incrementalCheckDelayNoticeTimes: Default: null Type: Number Description: en: >- The number of consecutive statistical periods during which the data latency must exceed the threshold before an alert is triggered. Note: This parameter is required if incrementalCheckDelayNotice is set to true. fullCheckMaxReadBps: Default: null MinValue: 0 Type: Number Description: en: >- The maximum data read rate in bytes per second. Integer from 0 to 9007199254740991. A value of 0 means no limit. MaxValue: 9007199254740991 incrementalCheckValidFailNoticeTimes: Default: null Type: Number Description: en: >- The number of consecutive statistical periods during which the count of inconsistent data must exceed the threshold before an alert is triggered. Note: This parameter is required if incrementalCheckValidFailNotice is set to true. fullCheckMaxReadRps: Default: null MinValue: 0 Type: Number Description: en: >- The maximum row read rate in rows per second. Integer from 0 to 9007199254740991. A value of 0 means no limit. MaxValue: 9007199254740991 incrementalCheckValidFailNoticeValue: Default: null Type: Number Description: en: >- The alert threshold for the number of inconsistent data entries detected during an incremental data verification. Note: This parameter is required if incrementalCheckValidFailNotice is set to true. fullDataCheck: Default: null Type: Boolean Description: en: >- Specifies whether to perform a full data verification. Valid values: true and false. fullCheckRatio: Default: null MinValue: 10 Type: Number Description: en: >- The sampling ratio for the full data verification. Unit: percentage. Valid values are integers from 10 to 100. Note: This parameter is required if the fullCheckModel parameter is set to 1. MaxValue: 100 incrementalCheckDelayNoticeValue: Default: null Type: Number Description: en: >- The alert threshold for data latency in an incremental data verification. Unit: seconds. Note: This parameter is required if the incrementalCheckDelayNotice parameter is set to true. checkMaximumHourEnable: Default: null Type: Number Description: en: >- Specifies whether to configure a timeout period for the full data verification task. Valid values: - 0: Does not configure a timeout period. - 1: Configures a timeout period. Note: This parameter is required if the fullCheckModel parameter is set to 1. AllowedValues: - 0 - 1 dataCheckDbList: Default: null Type: String Description: en: >- The database objects to be verified. The value must be a JSON string. incrementalCheckErrorNotice: Default: null Type: Boolean Description: en: >- Specifies whether to trigger an alert if an incremental data verification task fails. Valid values: true and false. checkMaximumHour: Default: null MinValue: 1 Type: Number Description: en: >- The timeout for the full data verification task, in hours. Valid values are integers from 1 to 72. The countdown starts when the verification begins. If the task exceeds this time limit, it is stopped. MaxValue: 72 incrementalCheckDelayNoticePeriod: Default: null Type: Number Description: en: >- The statistical period for data latency alerts in an incremental data verification. Valid values: - 1: 1 minute - 2: 5 minutes - 3: 10 minutes - 4: 30 minutes Note: This parameter is required if incrementalCheckDelayNotice is set to true. AllowedValues: - 1 - 2 - 3 - 4 fullCheckFixData: Default: null Type: Boolean Description: en: >- Specifies whether to replace inconsistent data. If you set this parameter to true, inconsistent data in the destination database is replaced with data from the source database. Default value: false. fullCheckNoticeValue: Default: null Type: Number Description: en: >- The alert threshold for the number of inconsistent data entries detected during a full data verification. Note: This parameter is required if fullCheckValidFailNotice is set to true. incrementalDataCheck: Default: null Type: Boolean Description: en: >- Specifies whether to perform an incremental data verification. Valid values: true and false. Type: Json Description: en: Data verification configuration. StructureInitialization: Type: Boolean Description: en: >- Specifies whether to perform schema initialization. Default value: true. Valid values: true and false. DelayRuleTime: Default: null Type: Number Description: en: >- The latency alert threshold, in seconds. You can set the threshold based on your business requirements. To prevent false alarms caused by network and database jitters, we recommend setting the threshold to more than 10 seconds. ErrorPhone: Default: null Type: String Description: en: >- The mobile numbers for job error alerts. Separate multiple mobile numbers with commas (,). Note: This parameter is available only on the Alibaba Cloud China site (aliyun.com) and supports a maximum of 10 mobile numbers in the Chinese mainland. Users on the international site (alibabacloud.com) cannot receive mobile alerts. Instead, you can configure alert rules for DTS jobs in the CloudMonitor console. DtsInstanceId: Default: null Type: String Description: en: The DTS instance ID. DestinationEndpoint: AssociationPropertyMetadata: Parameters: UserName: Default: null Type: String Description: en: >- The username for the destination database account. Note: This parameter is required in most scenarios. The permissions required for the database account vary based on the migration or synchronization scenario. Password: Default: null Type: String Description: en: The password for the destination database account. InstanceID: Default: null Type: String Description: en: >- The ID of the destination instance. If the destination is an Alibaba Cloud database instance, you must specify its instance ID. - If the destination instance is an ApsaraDB RDS for MySQL instance, specify the ID of the ApsaraDB RDS for MySQL instance. - If the destination instance is a self-managed database, the value of this parameter varies based on the value of DestinationEndpoint.InstanceType. - If InstanceType is set to ECS, specify the ID of the ECS instance. - If InstanceType is set to DG, specify the ID of the database gateway. - If InstanceType is set to EXPRESS or CEN, specify the ID of the VPC connected to the destination instance. Note: If DestinationEndpoint.InstanceType is set to CEN, you must also specify the ID of the CEN instance in the Reserve parameter. IP: Default: null Type: String Description: en: >- The IP address of the destination instance. Note: This parameter is required only when InstanceType is set to OTHER, EXPRESS, DG, or CEN. Region: Default: null Type: String Description: en: >- The region ID of the destination instance. Note: This parameter is required if the destination instance is an Alibaba Cloud database instance. InstanceType: Type: String Description: en: >- The type of the destination instance. Valid values: Alibaba Cloud database instances: - RDS: An ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, ApsaraDB RDS for PostgreSQL, or ApsaraDB RDS for MariaDB TX instance. - PolarDB: A PolarDB for MySQL cluster. - DISTRIBUTED_POLARDBX10: A PolarDB-X 1.0 (formerly DRDS) instance. - POLARDBX20: A PolarDB-X 2.0 instance. - REDIS: An ApsaraDB for Redis instance. - ADS: An AnalyticDB for MySQL V2.0 cluster. - MONGODB: An ApsaraDB for MongoDB instance. - GREENPLUM: An AnalyticDB for PostgreSQL instance. - DATAHUB: A DataHub project. - ELK: An Elasticsearch cluster. - Tablestore: A Tablestore instance. - ODPS: A MaxCompute project. Self-managed databases: - OTHER: A self-managed database with a public IP address. - ECS: A self-managed database hosted on an ECS instance. - EXPRESS: A self-managed database connected over Express Connect. - CEN: A self-managed database connected over CEN. - DG: A self-managed database connected over Database Gateway. Note: If the destination instance is a PolarDB for PostgreSQL cluster (Oracle-compatible), you must set this parameter to OTHER or EXPRESS. You can then connect to DTS by using a public IP address or Express Connect. For a Message Queue for Apache Kafka instance, set this parameter to ECS or EXPRESS. This allows you to connect the instance to DTS as a self-managed database over ECS or Express Connect. If the destination instance is a self-managed database, you must prepare the network environment for the database. Role: Default: null Type: String Description: en: >- The name of the RAM role configured for the Alibaba Cloud account that owns the destination instance. Note: This parameter is required for data migration or synchronization across different Alibaba Cloud accounts. DatabaseName: Default: null Type: String Description: en: >- The name of the database in the destination instance that contains the objects to be migrated. Note: This parameter is required only when the destination instance is a PolarDB for PostgreSQL cluster (Oracle-compatible), a PostgreSQL database, or a MongoDB database. EngineName: Default: null Type: String Description: en: >- The database engine of the destination instance. Valid values: - MYSQL: An ApsaraDB RDS for MySQL instance or a self-managed MySQL database. - MARIADB: An ApsaraDB RDS for MariaDB TX instance. - PolarDB: A PolarDB for MySQL cluster. - POLARDB_O: A PolarDB for PostgreSQL cluster (Oracle-compatible). - POLARDBX10: A PolarDB-X 1.0 instance. - POLARDBX20: A PolarDB-X 2.0 instance. - ORACLE: A self-managed Oracle database. - POSTGRESQL: An ApsaraDB RDS for PostgreSQL instance or a self-managed PostgreSQL database. - MSSQL: An ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database. - ADS: An AnalyticDB for MySQL V2.0 cluster. - ADB30: An AnalyticDB for MySQL V3.0 cluster. - MONGODB: An ApsaraDB for MongoDB instance or a self-managed MongoDB database. - GREENPLUM: An AnalyticDB for PostgreSQL instance. - KAFKA: A Message Queue for Apache Kafka instance or a self-managed Kafka cluster. - DATAHUB: A DataHub project. - DB2: A self-managed Db2 for LUW database. - AS400: A self-managed Db2 for i database. - ODPS: A MaxCompute project. - Tablestore: A Tablestore instance. - ELK: An Elasticsearch cluster. - REDIS: An ApsaraDB for Redis instance or a self-managed Redis database. Note: The default value is MYSQL. If this parameter is set to KAFKA, MONGODB, or PolarDB, you must also specify the database information in the Reserve parameter. OwnerID: Default: null Type: String Description: en: >- The ID of the Alibaba Cloud account to which the destination database belongs. Note: Specify this parameter for cross-account data migration or synchronization. You must also specify the Role parameter. OracleSID: Default: null Type: String Description: en: >- The system ID (SID) of the Oracle database. Note: This parameter is required only when EngineName is set to ORACLE and the Oracle database is not in a Real Application Clusters (RAC) configuration. Port: Default: null Type: String Description: en: >- The port number of the destination instance. Note: This parameter is required only when the destination instance is a self-managed database. Type: Json Description: en: Destination endpoint configuration. ErrorNotice: Default: null Type: Boolean Description: en: >- Specifies whether to monitor the job for errors. Valid values: true and false. FileOssUrl: Default: null Type: String Description: en: OSS bucket URL for DTS job files. Reserve: Default: null Type: Json Description: en: >- A reserved DTS parameter for specifying additional configurations, such as the data storage format for a destination Kafka topic or the ID of a CEN instance. DelayPhone: Default: null Type: String Description: en: >- The mobile numbers for latency alerts. Separate multiple mobile numbers with commas (,). Note: This parameter is available only on the Alibaba Cloud China site (aliyun.com) and supports a maximum of 10 mobile numbers in the Chinese mainland. Users on the international site (alibabacloud.com) cannot receive mobile alerts. Instead, you can configure alert rules for DTS jobs in the CloudMonitor console. DelayNotice: Default: null Type: Boolean Description: en: >- Specifies whether to monitor the job for latency. Valid values: true and false. DataInitialization: Type: Boolean Description: en: >- Specifies whether to perform full data initialization. Default value: true. Valid values: true and false. DtsBisLabel: Default: null Type: String Description: en: >- The environment tag of the DTS instance. Valid values: normal and online. DbList: Type: Json Description: en: The objects to migrate or synchronize. The value must be a JSON string. DedicatedClusterId: Default: null Type: String Description: en: DTS dedicated cluster ID. Resources: MigrationJob: Type: 'ALIYUN::DTS::MigrationJob2' Properties: SourceEndpoint: Ref: SourceEndpoint Checkpoint: Ref: Checkpoint Status: Ref: Status DisasterRecoveryJob: Ref: DisasterRecoveryJob DtsJobId: Ref: DtsJobId DtsJobName: Ref: DtsJobName DataSynchronization: Ref: DataSynchronization DataCheckConfigure: Ref: DataCheckConfigure StructureInitialization: Ref: StructureInitialization DelayRuleTime: Ref: DelayRuleTime ErrorPhone: Ref: ErrorPhone DtsInstanceId: Ref: DtsInstanceId DestinationEndpoint: Ref: DestinationEndpoint ErrorNotice: Ref: ErrorNotice FileOssUrl: Ref: FileOssUrl Reserve: Ref: Reserve DelayPhone: Ref: DelayPhone DelayNotice: Ref: DelayNotice DataInitialization: Ref: DataInitialization DtsBisLabel: Ref: DtsBisLabel DbList: Ref: DbList DedicatedClusterId: Ref: DedicatedClusterId Outputs: DtsJobName: Description: DTS job name. Value: 'Fn::GetAtt': - MigrationJob - DtsJobName DtsInstanceId: Description: The DTS instance ID. Value: 'Fn::GetAtt': - MigrationJob - DtsInstanceId DtsJobId: Description: The DTS job ID. Value: 'Fn::GetAtt': - MigrationJob - DtsJobId 
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "SourceEndpoint": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "UserName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The database account of the source database.\nNote: In most cases, this parameter is required. The permissions that are required for the database account vary with the migration or synchronization scenario."
            }
          },
          "Password": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The password of the source database account."
            }
          },
          "InstanceID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the source instance.\n- If the source instance is an Alibaba Cloud database instance, you must specify the ID of the database instance. For example, if the source instance is an ApsaraDB RDS for MySQL instance, you must specify the ID of the ApsaraDB RDS for MySQL instance.\n- If the source instance is a self-managed database, the value of this parameter depends on the value of the InstanceType parameter:\n  - If InstanceType is set to ECS, you must specify the ID of the ECS instance.\n  - If InstanceType is set to DG, you must specify the ID of the database gateway.\n  - If InstanceType is set to EXPRESS or CEN, you must specify the ID of the VPC that is connected to the source instance.\nNote: If InstanceType is set to CEN, you must also specify the ID of the CEN instance in the Reserve parameter."
            }
          },
          "IP": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The IP address of the source instance.\nNote: This parameter is required only when InstanceType is set to OTHER, EXPRESS, DG, or CEN."
            }
          },
          "Region": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the region in which the source instance resides.\nNote: If the source instance is an Alibaba Cloud database instance, this parameter is required."
            }
          },
          "InstanceType": {
            "Type": "String",
            "Description": {
              "en": "The type of the source instance. Valid values:\nAlibaba Cloud database instances:\n- RDS: ApsaraDB RDS for MySQL instance, ApsaraDB RDS for SQL Server instance, ApsaraDB RDS for PostgreSQL instance, or ApsaraDB RDS for MariaDB TX instance\n- PolarDB: PolarDB for MySQL cluster\n- REDIS: ApsaraDB for Redis instance\n- DISTRIBUTED_POLARDBX10: PolarDB-X 1.0 (formerly DRDS) instance\n- POLARDBX20: PolarDB-X 2.0 instance\n- MONGODB: ApsaraDB for MongoDB instance\n- DISTRIBUTED_DMSLOGICDB: Data Management (DMS) logical database\nSelf-managed databases:\n- OTHER: A self-managed database with a public IP address\n- ECS: A self-managed database hosted on an Elastic Compute Service (ECS) instance\n- EXPRESS: A self-managed database connected over Express Connect\n- CEN: A self-managed database connected over Cloud Enterprise Network (CEN)\n- DG: A self-managed database connected over Database Gateway\nNote: If the source instance is a PolarDB for PostgreSQL cluster (compatible with Oracle), you must set this parameter to OTHER or EXPRESS. This allows you to connect the cluster to DTS as a self-managed database by using a public IP address or Express Connect. For all self-managed database types, you must prepare the required network environment."
            }
          },
          "VSwitchID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the vSwitch used for the data transmission link."
            }
          },
          "DatabaseName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The name of the database that contains the objects to be migrated in the source instance.\nNote: This parameter is required only when the source instance is a PolarDB for PostgreSQL cluster (compatible with Oracle), a PostgreSQL database, or a MongoDB database."
            }
          },
          "EngineName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The database engine of the source instance. Valid values:\n- MYSQL: ApsaraDB RDS for MySQL instance or self-managed MySQL database\n- MARIADB: ApsaraDB RDS for MariaDB TX instance\n- PolarDB: PolarDB for MySQL cluster\n- POLARDB_O: PolarDB for PostgreSQL cluster (compatible with Oracle)\n- POLARDBX10: PolarDB-X 1.0 instance\n- POLARDBX20: PolarDB-X 2.0 instance\n- ORACLE: Self-managed Oracle database\n- POSTGRESQL: ApsaraDB RDS for PostgreSQL instance or self-managed PostgreSQL database\n- MSSQL: ApsaraDB RDS for SQL Server instance or self-managed SQL Server database\n- MONGODB: ApsaraDB for MongoDB instance or self-managed MongoDB database\n- DB2: Self-managed Db2 for LUW database\n- AS400: Self-managed Db2 for i database\n- DMSPOLARDB: DMS logical database\n- HBASE: Self-managed HBase database\n- TERADATA: Teradata database\n- TiDB: TiDB database\n- REDIS: ApsaraDB for Redis instance or self-managed Redis database\nNote: The default value is MYSQL.\nIf this parameter is set to MONGODB, you must also specify the architecture type of the MongoDB database in the Reserve parameter."
            }
          },
          "Role": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The name of the Resource Access Management (RAM) role configured for the Alibaba Cloud account that owns the source instance.\nNote: This parameter is required when you migrate or synchronize data across different Alibaba Cloud accounts."
            }
          },
          "OwnerID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the Alibaba Cloud account to which the source database belongs.\nNote: You can specify this parameter to migrate or synchronize data across different Alibaba Cloud accounts. In this case, you must also specify the Role parameter."
            }
          },
          "OracleSID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The system ID (SID) of the Oracle database.\nNote: This parameter is required only when EngineName is set to ORACLE and the Oracle database is deployed in an architecture that is not a Real Application Cluster (RAC)."
            }
          },
          "Port": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The port number of the source instance.\nNote: This parameter is required only when the source instance is a self-managed database."
            }
          }
        }
      },
      "Type": "Json",
      "Description": {
        "en": "Configuration for the source instance."
      }
    },
    "Checkpoint": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The start offset of incremental data migration or synchronization. This value is a UNIX timestamp that represents the number of seconds that have elapsed since 00:00:00 UTC on January 1, 1970."
      }
    },
    "Status": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The state to which you want to change the task. Valid values:\n- Migrating: Starts the task.\n- Suspending: Suspends the task.\n- Stopping: Stops the task."
      },
      "AllowedValues": [
        "Migrating",
        "Suspending",
        "Stopping"
      ]
    },
    "DisasterRecoveryJob": {
      "Default": null,
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether the task is for disaster recovery. Valid values: true and false."
      }
    },
    "DtsJobId": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The ID of the DTS task."
      }
    },
    "DtsJobName": {
      "Type": "String",
      "Description": {
        "en": "The name of the DTS job."
      }
    },
    "DataSynchronization": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to perform incremental data migration or synchronization. The default value is false. Valid values: true and false."
      }
    },
    "DataCheckConfigure": {
      "Default": null,
      "AssociationPropertyMetadata": {
        "Parameters": {
          "fullCheckErrorNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert if the full data verification task fails. Valid values: true and false."
            }
          },
          "fullCheckValidFailNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert if inconsistent data is detected by the full data verification task. Valid values: true and false.\nNote: If this parameter is set to true, an alert is triggered when the number of inconsistent data entries detected by the full data verification task is greater than or equal to the specified threshold."
            }
          },
          "incrementalCheckValidFailNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert if inconsistent data is detected by the incremental data verification task. Valid values: true and false.\nNote: If this parameter is set to true, an alert is triggered when the cumulative number of inconsistent data entries detected across multiple statistical periods is greater than or equal to the specified threshold."
            }
          },
          "dataCheckNoticePhone": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The mobile phone numbers of the contacts to receive alerts for data verification tasks. If an alert is triggered, a text message is sent to the specified numbers. Separate multiple mobile phone numbers with commas (,).\nNote: This parameter is available only for users of the Alibaba Cloud China site (aliyun.com). Only mobile phone numbers in the Chinese mainland are supported. You can specify up to 10 mobile phone numbers. Users of the Alibaba Cloud international site (alibabacloud.com) can configure alert rules for DTS tasks in the CloudMonitor console instead of receiving text message alerts."
            }
          },
          "fullCheckReferEndpoint": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The benchmark for full data verification. Valid values:\n- all: Verifies data consistency by using both the source and destination databases as the benchmark. It checks for discrepancies in objects that exist in either database.\n- src: Verifies data consistency by using the source database as the benchmark. Objects that exist only in the destination database are not verified.\n- dest: Verifies data consistency by using the destination database as the benchmark. Objects that exist only in the source database are not verified."
            }
          },
          "fullCheckModel": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The mode for the full data verification task. Valid values:\n- 1: Performs verification based on a sampling ratio.\n- 2: Performs row-by-row verification."
            },
            "AllowedValues": [
              1,
              2
            ]
          },
          "incrementalCheckDelayNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert for the data latency of the incremental data verification task. Valid values: true and false.\nNote: If this parameter is set to true, an alert is triggered when the cumulative latency across multiple statistical periods is greater than or equal to the specified threshold."
            }
          },
          "incrementalCheckValidFailNoticePeriod": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The statistical period for detecting inconsistent data during incremental verification. An alert is triggered based on data from this period. Valid values:\n- 1: 1 minute\n- 2: 5 minutes\n- 3: 10 minutes\n- 4: 30 minutes\nNote: This parameter is required if the incrementalCheckValidFailNotice parameter is set to true."
            },
            "AllowedValues": [
              1,
              2,
              3,
              4
            ]
          },
          "incrementalCheckDelayNoticeTimes": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The number of consecutive statistical periods for which latency is measured. An alert is triggered if the cumulative latency over this number of periods exceeds the threshold.\nNote: This parameter is required if the incrementalCheckDelayNotice parameter is set to true."
            }
          },
          "fullCheckMaxReadBps": {
            "Default": null,
            "MinValue": 0,
            "Type": "Number",
            "Description": {
              "en": "The maximum number of bytes that are read per second. Valid values: integers from 0 to 9007199254740991."
            },
            "MaxValue": 9007199254740991
          },
          "incrementalCheckValidFailNoticeTimes": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The number of consecutive statistical periods for which inconsistent data is measured. An alert is triggered if the cumulative number of inconsistent entries over this number of periods exceeds the threshold.\nNote: This parameter is required if the incrementalCheckValidFailNotice parameter is set to true."
            }
          },
          "fullCheckMaxReadRps": {
            "Default": null,
            "MinValue": 0,
            "Type": "Number",
            "Description": {
              "en": "The maximum number of data rows that are read per second. Valid values: integers from 0 to 9007199254740991."
            },
            "MaxValue": 9007199254740991
          },
          "incrementalCheckValidFailNoticeValue": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The alert threshold for inconsistent data entries detected by the incremental data verification task.\nNote: This parameter is required if the incrementalCheckValidFailNotice parameter is set to true."
            }
          },
          "fullDataCheck": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to perform a full data verification task. Valid values: true and false."
            }
          },
          "fullCheckRatio": {
            "Default": null,
            "MinValue": 10,
            "Type": "Number",
            "Description": {
              "en": "The sampling ratio of the full data verification task. Valid values: integers from 10 to 100. Unit: percent.\nNote: This parameter is required if the fullCheckModel parameter is set to 1."
            },
            "MaxValue": 100
          },
          "incrementalCheckDelayNoticeValue": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The alert threshold for the data latency of the incremental data verification task. Unit: seconds.\nNote: This parameter is required if the incrementalCheckDelayNotice parameter is set to true."
            }
          },
          "checkMaximumHourEnable": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "Specifies whether to enable a timeout period for the full data verification task. Valid values:\n- 0: Disables the timeout period.\n- 1: Enables the timeout period.\nNote: This parameter is required if the fullCheckModel parameter is set to 1 (sampling verification)."
            },
            "AllowedValues": [
              0,
              1
            ]
          },
          "dataCheckDbList": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The database objects to be verified. The value must be a JSON string."
            }
          },
          "incrementalCheckErrorNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert if the incremental data verification task fails. Valid values: true and false."
            }
          },
          "checkMaximumHour": {
            "Default": null,
            "MinValue": 1,
            "Type": "Number",
            "Description": {
              "en": "The timeout period for the full data verification task, in hours. The countdown starts when the task begins. If the task does not complete within this period, it is forcibly stopped. Valid values: an integer from 1 to 72."
            },
            "MaxValue": 72
          },
          "incrementalCheckDelayNoticePeriod": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The statistical period for measuring data latency during incremental verification. An alert is triggered based on data from this period. Valid values:\n- 1: 1 minute\n- 2: 5 minutes\n- 3: 10 minutes\n- 4: 30 minutes\nNote: This parameter is required if the incrementalCheckDelayNotice parameter is set to true."
            },
            "AllowedValues": [
              1,
              2,
              3,
              4
            ]
          },
          "fullCheckFixData": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to automatically fix inconsistent data. Valid values: true and false. The default value is false.\nNote: If this parameter is set to true, data in the destination database that is inconsistent with the source database is overwritten with data from the source database."
            }
          },
          "fullCheckNoticeValue": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The alert threshold for inconsistent data entries detected by the full data verification task.\nNote: This parameter is required if the fullCheckValidFailNotice parameter is set to true."
            }
          },
          "incrementalDataCheck": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to perform an incremental data verification task. Valid values: true and false."
            }
          }
        }
      },
      "Type": "Json",
      "Description": {
        "en": "The configuration of the data verification task for a data migration or synchronization instance."
      }
    },
    "StructureInitialization": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to perform schema migration or synchronization. The default value is true. Valid values: true and false."
      }
    },
    "DelayRuleTime": {
      "Default": null,
      "Type": "Number",
      "Description": {
        "en": "The threshold for latency alerts, in seconds. You can set the threshold based on your business requirements. To prevent alerts caused by normal fluctuations in network and database load, we recommend that you set the threshold to more than 10 seconds."
      }
    },
    "ErrorPhone": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The mobile phone numbers that receive task status alerts. Separate multiple mobile phone numbers with commas (,).\nNote: This parameter is available only for users of the Alibaba Cloud China site (aliyun.com). Only mobile phone numbers in the Chinese mainland are supported. You can specify up to 10 mobile phone numbers. Users of the Alibaba Cloud international site (alibabacloud.com) cannot receive alerts by using mobile phone numbers, but can configure alert rules for DTS tasks in the CloudMonitor console."
      }
    },
    "DtsInstanceId": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The ID of the DTS instance."
      }
    },
    "DestinationEndpoint": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "UserName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The database account of the destination database.\nNote: In most cases, this parameter is required. The permissions that are required for the database account vary with the migration or synchronization scenario."
            }
          },
          "Password": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The password of the destination database account."
            }
          },
          "InstanceID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the destination instance.\n- If the destination instance is an Alibaba Cloud database instance, you must specify the ID of the database instance. For example, if the destination instance is an ApsaraDB RDS for MySQL instance, you must specify the ID of the ApsaraDB RDS for MySQL instance.\n- If the destination instance is a self-managed database, the value of this parameter depends on the value of the InstanceType parameter:\n  - If InstanceType is set to ECS, you must specify the ID of the ECS instance.\n  - If InstanceType is set to DG, you must specify the ID of the database gateway.\n  - If InstanceType is set to EXPRESS or CEN, you must specify the ID of the VPC that is connected to the destination instance.\nNote: If InstanceType is set to CEN, you must also specify the ID of the CEN instance in the Reserve parameter."
            }
          },
          "IP": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The IP address of the destination instance.\nNote: This parameter is required only when InstanceType is set to OTHER, EXPRESS, DG, or CEN."
            }
          },
          "Region": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the region in which the destination instance resides.\nNote: If the destination instance is an Alibaba Cloud database instance, this parameter is required."
            }
          },
          "InstanceType": {
            "Type": "String",
            "Description": {
              "en": "The type of the destination instance. Valid values:\nAlibaba Cloud database instances:\n- RDS: ApsaraDB RDS for MySQL instance, ApsaraDB RDS for SQL Server instance, ApsaraDB RDS for PostgreSQL instance, or ApsaraDB RDS for MariaDB TX instance\n- PolarDB: PolarDB for MySQL cluster\n- DISTRIBUTED_POLARDBX10: PolarDB-X 1.0 (formerly DRDS) instance\n- POLARDBX20: PolarDB-X 2.0 instance\n- REDIS: ApsaraDB for Redis instance\n- ADS: AnalyticDB for MySQL V2.0 cluster or AnalyticDB for MySQL V3.0 cluster\n- MONGODB: ApsaraDB for MongoDB instance\n- GREENPLUM: AnalyticDB for PostgreSQL instance\n- DATAHUB: DataHub project\n- ELK: Elasticsearch cluster\n- Tablestore: Tablestore instance\n- ODPS: MaxCompute project\nSelf-managed databases:\n- OTHER: A self-managed database with a public IP address\n- ECS: A self-managed database hosted on an ECS instance\n- EXPRESS: A self-managed database connected over Express Connect\n- CEN: A self-managed database connected over CEN\n- DG: A self-managed database connected over Database Gateway\nNote:\n- If the destination instance is a PolarDB for PostgreSQL cluster (compatible with Oracle), you must set this parameter to OTHER or EXPRESS. This allows you to connect the cluster to DTS as a self-managed database by using a public IP address or Express Connect.\n- If the destination instance is a Message Queue for Apache Kafka instance, you must set this parameter to ECS or EXPRESS. This allows you to connect the Kafka instance to DTS as a self-managed database.\n- For all self-managed database types, you must prepare the required network environment."
            }
          },
          "Role": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The name of the Resource Access Management (RAM) role configured for the Alibaba Cloud account that owns the destination instance.\nNote: This parameter is required when you migrate or synchronize data across different Alibaba Cloud accounts."
            }
          },
          "DatabaseName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The name of the database that will contain the migrated objects in the destination instance.\nNote: This parameter is required only when the destination instance is a PolarDB for PostgreSQL cluster (compatible with Oracle), a PostgreSQL database, or a MongoDB database."
            }
          },
          "EngineName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The database engine of the destination instance. Valid values:\n- MYSQL: ApsaraDB RDS for MySQL instance or self-managed MySQL database\n- MARIADB: ApsaraDB RDS for MariaDB TX instance\n- PolarDB: PolarDB for MySQL cluster\n- POLARDB_O: PolarDB for PostgreSQL cluster (compatible with Oracle)\n- POLARDBX10: PolarDB-X 1.0 instance\n- POLARDBX20: PolarDB-X 2.0 instance\n- ORACLE: Self-managed Oracle database\n- POSTGRESQL: ApsaraDB RDS for PostgreSQL instance or self-managed PostgreSQL database\n- MSSQL: ApsaraDB RDS for SQL Server instance or self-managed SQL Server database\n- ADS: AnalyticDB for MySQL V2.0 cluster\n- ADB30: AnalyticDB for MySQL V3.0 cluster\n- MONGODB: ApsaraDB for MongoDB instance or self-managed MongoDB database\n- GREENPLUM: AnalyticDB for PostgreSQL instance\n- KAFKA: Message Queue for Apache Kafka instance or self-managed Kafka cluster\n- DATAHUB: DataHub project\n- DB2: Self-managed Db2 for LUW database\n- AS400: Self-managed Db2 for i database\n- ODPS: MaxCompute project\n- Tablestore: Tablestore instance\n- ELK: Elasticsearch cluster\n- REDIS: ApsaraDB for Redis instance or self-managed Redis database\nNote: The default value is MYSQL.\nIf this parameter is set to KAFKA, MONGODB, or PolarDB, you must also specify the database information in the Reserve parameter."
            }
          },
          "OwnerID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the Alibaba Cloud account to which the destination database belongs.\nNote: You can specify this parameter to migrate or synchronize data across different Alibaba Cloud accounts. In this case, you must also specify the Role parameter."
            }
          },
          "OracleSID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The system ID (SID) of the Oracle database.\nNote: This parameter is required only when EngineName is set to ORACLE and the Oracle database is deployed in an architecture that is not a Real Application Cluster (RAC)."
            }
          },
          "Port": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The port number of the destination instance.\nNote: This parameter is required only when the destination instance is a self-managed database."
            }
          }
        }
      },
      "Type": "Json",
      "Description": {
        "en": "Configuration for the destination instance."
      }
    },
    "ErrorNotice": {
      "Default": null,
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable alerts for task errors. If you set this parameter to true, an alert is sent when the task fails. Valid values: true and false."
      }
    },
    "FileOssUrl": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The URL of the Object Storage Service (OSS) bucket that stores the files related to the DTS task."
      }
    },
    "Reserve": {
      "Default": null,
      "Type": "Json",
      "Description": {
        "en": "A reserved parameter that allows you to specify additional configurations for the DTS task. For example, you can use this parameter to specify the data storage format for a destination Kafka instance or the ID of a CEN instance."
      }
    },
    "DelayPhone": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The mobile phone numbers that receive latency-related alerts. Separate multiple mobile phone numbers with commas (,).\nNote: This parameter is available only for users of the Alibaba Cloud China site (aliyun.com). Only mobile phone numbers in the Chinese mainland are supported. You can specify up to 10 mobile phone numbers. Users of the Alibaba Cloud international site (alibabacloud.com) cannot receive alerts by using mobile phone numbers, but can configure alert rules for DTS tasks in the CloudMonitor console."
      }
    },
    "DelayNotice": {
      "Default": null,
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable alerts for task latency. If you set this parameter to true, an alert is sent when the task latency exceeds the threshold specified by DelayRuleTime. Valid values: true and false."
      }
    },
    "DataInitialization": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to perform full data migration or synchronization. The default value is true. Valid values: true and false."
      }
    },
    "DtsBisLabel": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The environment tag of the DTS instance. Valid values: normal and online."
      }
    },
    "DbList": {
      "Type": "Json",
      "Description": {
        "en": "The database objects that you want to migrate or synchronize. The value must be a JSON string that specifies the databases and tables."
      }
    },
    "DedicatedClusterId": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The ID of the DTS dedicated cluster on which the task runs."
      }
    }
  },
  "Resources": {
    "MigrationJob": {
      "Type": "ALIYUN::DTS::MigrationJob2",
      "Properties": {
        "SourceEndpoint": {
          "Ref": "SourceEndpoint"
        },
        "Checkpoint": {
          "Ref": "Checkpoint"
        },
        "Status": {
          "Ref": "Status"
        },
        "DisasterRecoveryJob": {
          "Ref": "DisasterRecoveryJob"
        },
        "DtsJobId": {
          "Ref": "DtsJobId"
        },
        "DtsJobName": {
          "Ref": "DtsJobName"
        },
        "DataSynchronization": {
          "Ref": "DataSynchronization"
        },
        "DataCheckConfigure": {
          "Ref": "DataCheckConfigure"
        },
        "StructureInitialization": {
          "Ref": "StructureInitialization"
        },
        "DelayRuleTime": {
          "Ref": "DelayRuleTime"
        },
        "ErrorPhone": {
          "Ref": "ErrorPhone"
        },
        "DtsInstanceId": {
          "Ref": "DtsInstanceId"
        },
        "DestinationEndpoint": {
          "Ref": "DestinationEndpoint"
        },
        "ErrorNotice": {
          "Ref": "ErrorNotice"
        },
        "FileOssUrl": {
          "Ref": "FileOssUrl"
        },
        "Reserve": {
          "Ref": "Reserve"
        },
        "DelayPhone": {
          "Ref": "DelayPhone"
        },
        "DelayNotice": {
          "Ref": "DelayNotice"
        },
        "DataInitialization": {
          "Ref": "DataInitialization"
        },
        "DtsBisLabel": {
          "Ref": "DtsBisLabel"
        },
        "DbList": {
          "Ref": "DbList"
        },
        "DedicatedClusterId": {
          "Ref": "DedicatedClusterId"
        }
      }
    }
  },
  "Outputs": {
    "DtsJobName": {
      "Description": "The name of the DTS job.",
      "Value": {
        "Fn::GetAtt": [
          "MigrationJob",
          "DtsJobName"
        ]
      }
    },
    "DtsInstanceId": {
      "Description": "The ID of the DTS instance.",
      "Value": {
        "Fn::GetAtt": [
          "MigrationJob",
          "DtsInstanceId"
        ]
      }
    },
    "DtsJobId": {
      "Description": "The ID of the DTS task.",
      "Value": {
        "Fn::GetAtt": [
          "MigrationJob",
          "DtsJobId"
        ]
      }
    }
  }
}