Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Alibaba Cloud::DTS::SynchronizationJob2

Última atualização: Jul 03, 2026

ALIYUN::DTS::SynchronizationJob2 cria e configura uma tarefa de sincronização do Data Transmission Service (DTS) com endpoints de origem e destino, verificação de dados e configurações de alerta.

Sintaxe

{
  "Type": "ALIYUN::DTS::SynchronizationJob2",
  "Properties": {
    "Status": String,
    "Reserve": Map,
    "DataSynchronization": Boolean,
    "DelayPhone": String,
    "DedicatedClusterId": 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,
    "SynchronizationDirection": String,
    "SrcPrimaryVswId": String,
    "MaxDu": Integer,
    "DestPrimaryVswId": String,
    "DestSecondaryVswId": String,
    "SrcSecondaryVswId": String,
    "MinDu": Integer,
    "ResourceGroupId": String
  }
}

Propriedades

Parâmetro

Tipo

Obrigatório

Editável

Descrição

Restrições

Status

String

Não

Sim

Status do recurso.

Valores válidos:

  • Synchronizing

  • Suspending

  • Stopping

Reserve

Map

Não

Sim

Parâmetros reservados do DTS.

Configurações estendidas para instâncias de origem ou destino, como o formato de dados para um destino Kafka ou um ID de instância CEN.

DataSynchronization

Boolean

Sim

Sim

Indica se a migração ou sincronização incremental de dados deve ser executada.

Valores válidos:

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

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

DelayPhone

String

Não

Não

Números de celular que recebem alertas de latência.

Separe vários números por vírgulas (,).

Nota
  • Disponível apenas no site da China (aliyun.com). Suporta até 10 números de telefone da China continental.

  • No site internacional (alibabacloud.com), use o CloudMonitor para definir regras de alerta para tarefas do DTS.

DedicatedClusterId

String

Não

Não

ID do cluster dedicado do DTS.

Executa a tarefa de sincronização no cluster dedicado do DTS especificado.

ErrorNotice

Boolean

Não

Não

Indica se os alertas de erro devem ser ativados.

Valores válidos:

  • true: ativa alertas de erro.

  • false: desativa alertas de erro.

DtsJobName

String

Sim

Sim

Nome da tarefa de sincronização.

Não precisa ser único.

DelayRuleTime

Integer

Não

Não

Limiar de alerta de latência.

Unidade: segundos. Use valores a partir de 10 para evitar falsos alarmes causados por instabilidade de rede.

Nota

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

DtsInstanceId

String

Não

Não

ID da instância de sincronização.

Nenhuma

DbList

Map

Sim

Sim

Objetos a serem sincronizados.

String formatada em JSON. Objetos para migrar, sincronizar ou assinar.

FileOssUrl

String

Não

Sim

URL do OSS do arquivo da tarefa.

Nenhuma

DataCheckConfigure

Map

Não

Não

Configuração de verificação de dados para migração ou sincronização.

String formatada em JSON para limites de parâmetros e configurações de alerta. Propriedades de DataCheckConfigure.

DtsBisLabel

String

Não

Não

Tag de ambiente da instância DTS.

Valores válidos:

  • normal

  • online

Checkpoint

String

Não

Não

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

Timestamp UNIX em segundos.

DisasterRecoveryJob

Boolean

Não

Não

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

Valores válidos:

  • true

  • false

DtsJobId

String

Não

Não

ID da tarefa de sincronização.

Nenhuma

DelayNotice

Boolean

Não

Não

Indica se os alertas de latência devem ser ativados.

Valores válidos:

  • true

  • false

DataInitialization

Boolean

Sim

Sim

Indica se a migração completa de dados ou a sincronização inicial completa de dados deve ser executada.

Valores válidos:

  • true (padrão): executa a migração completa de dados ou a sincronização inicial completa de dados.

  • false: não executa a migração completa de dados ou a sincronização inicial completa de dados.

DestinationEndpoint

Map

Sim

Sim

Configuração da instância de destino.

Propriedades de DestinationEndpoint.

SourceEndpoint

Map

Sim

Sim

Configuração da instância de origem.

Propriedades de SourceEndpoint.

ErrorPhone

String

Não

Não

Números de celular que recebem alertas de erro.

Separe vários números por vírgulas (,).

Nota
  • Disponível apenas no site da China (aliyun.com). Suporta até 10 números de telefone da China continental.

  • No site internacional (alibabacloud.com), use o CloudMonitor para definir regras de alerta para tarefas do DTS.

StructureInitialization

Boolean

Sim

Sim

Indica se a migração ou inicialização de esquema deve ser executada.

Valores válidos:

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

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

SynchronizationDirection

String

Não

Sim

Direção da sincronização.

Valores válidos:

  • Forward (padrão): sincroniza dados da origem para o destino.

  • Reverse: sincroniza dados do destino para a origem.

Nota

Reverse aplica-se apenas a tarefas de sincronização bidirecional.

SrcPrimaryVswId

String

Não

Não

ID do vSwitch primário para o gateway NAT de origem.

Nenhuma

MaxDu

Integer

Não

Não

Número máximo de DUs.

Apenas para instâncias Serverless.

DestPrimaryVswId

String

Não

Não

ID do vSwitch primário para o gateway NAT de destino.

Nenhuma

DestSecondaryVswId

String

Não

Não

ID do vSwitch secundário para o gateway NAT de destino.

Nenhuma

SrcSecondaryVswId

String

Não

Não

ID do vSwitch secundário para o gateway NAT de origem.

Nenhuma

MinDu

Integer

Não

Não

Número mínimo de DUs.

Apenas para instâncias Serverless.

ResourceGroupId

String

Não

Não

ID do grupo de recursos.

Nenhuma

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ção

fullCheckMaxReadRps

Integer

Não

Não

Número máximo de linhas lidas por segundo.

O valor deve ser um número inteiro entre 0 e 9007199254740991.

Nota

Um valor igual a 0 indica que não há limite.

dataCheckNoticePhone

String

Não

Não

Número de telefone do contato para alertas de tarefas de verificação de dados.

Aciona alertas por SMS para o contato especificado.

incrementalCheckDelayNotice

Boolean

Não

Não

Indica se os alertas de latência para verificação incremental de dados devem ser ativados.

Valores válidos:

  • true: ativa alertas de latência para dados incrementais.

    Nota

    O alerta é acionado quando a latência atinge ou ultrapassa o limiar durante períodos consecutivos.

  • false: não aciona alertas de latência para dados incrementais.

incrementalCheckDelayNoticeValue

Integer

Não

Não

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

Unidade: segundos.

Nota

Este parâmetro é obrigatório quando incrementalCheckDelayNotice está definido como true.

incrementalCheckDelayNoticePeriod

Integer

Não

Não

Período estatístico para alertas de latência na verificação incremental.

Valores válidos:

  • 1: 1 minuto.

  • 2: 5 minutos.

  • 3: 10 minutos.

  • 4: 30 minutos.

Nota

Este parâmetro é obrigatório quando incrementalCheckDelayNotice está definido como true.

dataCheckDbList

String

Não

Não

Objetos destinados à verificação de dados.

Nenhuma

checkMaximumHourEnable

Integer

Não

Não

Indica se o tempo limite para verificação completa de dados deve ser ativado.

Valores válidos:

  • 0: desativa o tempo limite.

  • 1: ativa o tempo limite.

Nota

Este parâmetro é obrigatório quando fullCheckModel está definido como 1.

fullCheckRatio

Integer

Não

Não

Taxa de amostragem para verificação completa de dados.

Número inteiro de 10 a 100, representando uma porcentagem.

Nota

Este parâmetro é obrigatório quando fullCheckModel está definido como 1.

checkMaximumHour

Integer

Não

Não

Tempo limite para verificação completa de dados.

Unidade: horas. Valores válidos: 1 a 72. Tarefas que excederem esse limite serão encerradas.

fullCheckFixData

Boolean

Não

Não

Indica se dados inconsistentes devem ser corrigidos.

Valores válidos:

  • true: corrige dados inconsistentes.

    Nota

    Substitui os dados de destino pelos dados de origem ao encontrar inconsistências.

  • false (padrão): não corrige dados inconsistentes.

fullCheckModel

Integer

Não

Não

Modo de verificação completa de dados.

Valores válidos:

  • 1: verifica dados por taxa de amostragem.

  • 2: verifica dados linha a linha.

incrementalCheckValidFailNoticeValue

Integer

Não

Não

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

Este parâmetro é obrigatório quando incrementalCheckValidFailNotice está definido como true.

incrementalDataCheck

Boolean

Não

Não

Indica se a verificação incremental de dados deve ser executada.

Valores válidos:

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

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

incrementalCheckValidFailNoticeTimes

Integer

Não

Não

Número de períodos consecutivos com dados inconsistentes necessários para acionar um alerta.

Este parâmetro é obrigatório quando incrementalCheckValidFailNotice está definido como true.

fullCheckMaxReadBps

Integer

Não

Não

Taxa máxima de leitura de dados (bytes/segundo).

O valor deve ser um número inteiro entre 0 e 9007199254740991.

Nota

Um valor igual a 0 indica que não há limite.

fullCheckValidFailNotice

Boolean

Não

Não

Indica se alertas sobre dados inconsistentes na verificação completa devem ser ativados.

Valores válidos:

  • true: ativa alertas para dados inconsistentes.

    Nota

    O alerta é acionado quando as entradas inconsistentes atingem ou ultrapassam o limiar.

  • false: desativa alertas para dados inconsistentes.

fullCheckErrorNotice

Boolean

Não

Não

Indica se alertas sobre falha na verificação completa de dados devem ser ativados.

Valores válidos:

  • true: ativa alertas de falha.

    Nota

    O sistema aciona um alerta se a tarefa de verificação completa de dados falhar.

  • false: desativa alertas de falha.

incrementalCheckValidFailNoticePeriod

Integer

Não

Não

Período estatístico para alertas de inconsistência na verificação incremental.

Valores válidos:

  • 1: 1 minuto.

  • 2: 5 minutos.

  • 3: 10 minutos.

  • 4: 30 minutos.

Nota

Este parâmetro é obrigatório quando incrementalCheckValidFailNotice está definido como true.

incrementalCheckDelayNoticeTimes

Integer

Não

Não

Número de períodos consecutivos com alta latência necessários para acionar um alerta.

Este parâmetro é obrigatório quando incrementalCheckDelayNotice está definido como true.

fullCheckReferEndpoint

String

Não

Não

Referência para verificação completa de dados.

Valores válidos:

  • all: usa a união dos dados de origem e destino como referência.

  • src: usa o banco de dados de origem como referência. Ignora dados exclusivos do destino.

  • dest: usa o banco de dados de destino como referência. Ignora dados exclusivos da origem.

fullDataCheck

Boolean

Não

Não

Indica se a verificação completa de dados deve ser executada.

Valores válidos:

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

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

incrementalCheckValidFailNotice

Boolean

Não

Não

Indica se alertas sobre dados inconsistentes na verificação incremental devem ser ativados.

Valores válidos:

  • true: ativa alertas para dados inconsistentes.

    Nota

    O alerta é acionado quando registros inconsistentes atingem ou ultrapassam o limiar durante períodos consecutivos.

  • false: desativa alertas para dados inconsistentes.

fullCheckNoticeValue

Integer

Não

Não

Limiar de alerta de dados inconsistentes para verificação completa.

Este parâmetro é obrigatório quando fullCheckValidFailNotice está definido como true.

incrementalCheckErrorNotice

Boolean

Não

Não

Indica se alertas sobre falha na verificação incremental de dados devem ser ativados.

Valores válidos:

  • true: ativa alertas de falha.

    Nota

    O sistema aciona um alerta se a tarefa de verificação incremental de dados falhar.

  • false: desativa alertas de falha.

Sintaxe do endpoint de destino

"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ção

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 RDS.

  • DRDS: instância PolarDB-X.

  • MongoDB: instância ApsaraDB for MongoDB.

  • Redis: instância 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 RAM da conta Alibaba Cloud proprietária da instância de destino.

Obrigatório para migração ou sincronização de dados entre contas.

OracleSID

String

Não

Não

SID do banco de dados Oracle.

Obrigatório apenas quando EngineName é Oracle e o banco de dados não é uma instância RAC.

UserName

String

Não

Não

Conta do banco de dados de destino.

As permissões necessárias variam conforme o cenário de migração. Cenários de migração.

OwnerID

String

Não

Não

ID da conta Alibaba Cloud proprietária do banco de dados de destino.

Obrigatório apenas para migração de dados entre contas.

InstanceID

String

Não

Não

ID da instância de destino.

Especifique o ID da instância correspondente. Por exemplo, se InstanceType for ECS, use o ID da instância ECS.

IP

String

Não

Não

Endereço IP do banco de dados de destino.

Obrigatório apenas quando InstanceType é LocalInstance.

Port

String

Não

Não

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

Obrigatório apenas quando InstanceType é ECS ou LocalInstance.

DatabaseName

String

Não

Não

Nome do banco de dados de destino ou nome do banco de dados de autenticação.

Valores válidos:

  • Esta propriedade está disponível e é obrigatória apenas quando DestinationEndpoint.EngineName está definido como PostgreSQL, DRDS ou MongoDB.

  • Se DestinationEndpoint.EngineName estiver definido como PostgreSQL ou DRDS, especifique o nome do banco de dados a ser migrado. Se o mecanismo for MongoDB, especifique o nome do banco de dados de autenticação.

Region

String

Não

Não

ID da região da instância de destino.

Se InstanceType for LocalInstance, especifique cn-hangzhou ou a região mais próxima do seu banco de dados autogerenciado. Regiões suportadas.

EngineName

String

Não

Não

Tipo de mecanismo do banco de dados de destino.

Valores válidos:

  • MySQL

  • DRDS

  • SQLServer

  • PostgreSQL

  • PPAS

  • MongoDB

  • Redis

  • PolarDB

  • polardb_pg

Nota

Obrigatório apenas quando InstanceType é RDS, PolarDB, ECS ou LocalInstance.

Password

String

Não

Sim

Senha da conta do banco de dados de destino.

Nenhuma

Sintaxe do 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

Tipo da instância de origem.

Valores válidos:

  • RDS: uma instância do ApsaraDB for RDS.

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

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

  • Express: um banco de dados autogerenciado conectado via Express Connect, VPN Gateway ou Smart Access Gateway (SAG).

  • dg: um banco de dados autogerenciado conectado via Database Gateway.

  • cen: um banco de dados autogerenciado conectado via Cloud Enterprise Network (CEN).

  • MongoDB: uma instância do ApsaraDB for MongoDB.

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

  • PolarDB_o: um cluster PolarDB for Oracle.

OracleSID

String

Não

Não

SID do banco de dados Oracle.

Obrigatório apenas quando SourceEndpoint.EngineName é Oracle e o banco de dados de origem é uma instância não RAC.

UserName

String

Não

Não

Conta do banco de dados de origem.

As permissões necessárias variam conforme o cenário de migração. Cenários de migração.

InstanceID

String

Não

Não

ID da instância de origem.

  • Obrigatório se SourceEndpoint.InstanceType for RDS, ECS, Express, MongoDB, PolarDB ou PolarDB_o. Especifique o ID da instância correspondente. Para ECS, utilize o ID da instância ECS.

  • Se SourceEndpoint.InstanceType for Express, defina este parâmetro como o ID da Virtual Private Cloud (VPC).

IP

String

Não

Não

Endereço IP do banco de dados de origem.

Necessário quando SourceEndpoint.InstanceType é LocalInstance ou Express.

Port

String

Não

Não

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

Exigido se SourceEndpoint.InstanceType for ECS, LocalInstance ou Express.

VSwitchID

String

Não

Não

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

Nenhuma

DatabaseName

String

Não

Não

Nome do banco de dados de origem ou nome do banco de dados de autenticação.

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

  • Para bancos de dados PostgreSQL, informe o nome do banco de dados de origem. Para bancos de dados MongoDB, informe o nome do banco de dados de autenticação.

EngineName

String

Não

Não

Tipo de mecanismo do banco de dados de origem.

Valores válidos:

  • MySQL

  • TiDB

  • SQLServer

  • PostgreSQL

  • Oracle

  • MongoDB

  • Redis

  • PolarDB

  • polardb_pg

Nota

Obrigatório se SourceEndpoint.InstanceType for RDS, PolarDB, ECS, LocalInstance ou Express.

Role

String

Não

Não

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

Necessária para cenários entre contas. Concede à conta de destino acesso à instância de origem.

OwnerID

String

Não

Não

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

Obrigatório para migração ou sincronização de dados entre diferentes contas Alibaba Cloud.

Region

String

Não

Não

ID da região do banco de dados de origem.

Se SourceEndpoint.InstanceType for LocalInstance, especifique cn-hangzhou ou a região mais próxima do seu banco de dados autogerenciado. Regiões suportadas.

Password

String

Não

Sim

Senha da conta do banco de dados de origem.

Nenhuma

Valores de retorno

Fn::GetAtt

  • DtsJobId: O ID da tarefa.

  • DtsJobName: O nome da tarefa DTS.

  • DtsInstanceId: O ID da instância DTS.

Exemplos

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

              Note: This parameter is required in most cases. The
              permissions required for the database account depend on the
              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 instance is an Alibaba Cloud database instance,
              such as an ApsaraDB RDS for MySQL instance, specify the ID of the
              instance.

              - If the source instance is a self-managed database, the value of
              this parameter depends on the value of InstanceType:

                - If InstanceType is ECS, specify the ID of the ECS
                instance.

                - If InstanceType is DG, specify the ID of the database
                gateway.

                - If InstanceType is EXPRESS or CEN, specify the ID
                of the VPC to which the source instance is connected.

              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 ID of the region where the source instance is located.

              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 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 an Express
              Connect circuit.

              - 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 (compatible
              with Oracle) cluster, set this parameter to OTHER or
              EXPRESS. This allows DTS to connect to the cluster by using a
              public IP address or an Express Connect circuit.
              - If the source instance is a self-managed database, 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 in the source instance that contains the
              objects to migrate.

              Note: This parameter is required only when the source instance
              is a PolarDB for PostgreSQL (compatible with Oracle) cluster, 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 (compatible with Oracle)
              cluster.

              - 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 Resource Access Management (RAM) role that is
              configured for the Alibaba Cloud account that owns the source
              instance.

              Note: 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.

              Note: 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.

              Note: This parameter is required only when EngineName is
              set to ORACLE and the Oracle database is not deployed in a
              Real Application Cluster (RAC) architecture.
        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: The configuration of the source instance.
  Checkpoint:
    Default: null
    Type: String
    Description:
      en: >-
        The starting point 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 status of the task. You can change the status of the task by changing the value of this parameter. Valid values:
        - Synchronizing: Starts the task.
        - Suspending: Suspends the task.
        - Stopping: Stops the task.
    AllowedValues:
      - Synchronizing
      - 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 task.
  DataSynchronization:
    Type: Boolean
    Description:
      en: >-
        Specifies whether to perform incremental data migration or
        synchronization. Default value: false. Valid values: true and
        false.
  SynchronizationDirection:
    Default: null
    Type: String
    Description:
      en: >-
        The synchronization direction. Valid values:

        - Forward: Data is synchronized from the source database to the
        destination database. This is the default value.

        - Reverse: Data is synchronized from the destination database to the
        source database.

        Note: The Reverse option is valid only if the data
        synchronization task is configured for a two-way synchronization
        topology.
  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
              found during full data verification. If you set this parameter to
              true, an alert is triggered when the number of inconsistent
              data entries is greater than or equal to 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
              found during incremental data verification. If you set this
              parameter to true, an alert is triggered when the cumulative
              number of inconsistent data entries across several statistical
              periods is greater than or equal to the specified threshold. Valid
              values: true and false.
        dataCheckNoticePhone:
          Default: null
          Type: String
          Description:
            en: >-
              The mobile phone number of the contact person for data
              verification alerts. If an alert is triggered, a text message is
              sent to this number.
        fullCheckReferEndpoint:
          Default: null
          Type: String
          Description:
            en: >-
              The benchmark for full data verification. Valid values:

              - all: Verifies data consistency based on all objects in both
              the source and destination databases.

              - src: Verifies data consistency based on the objects in the
              source database. Objects that exist only in the destination
              database are not verified.

              - dest: Verifies data consistency based on the objects in the
              destination database. Objects that exist only in the source
              database are not verified.
        fullCheckModel:
          Default: null
          Type: Number
          Description:
            en: |-
              The mode for full data verification. Valid values:
              - 1: Verifies a sample of the data.
              - 2: Verifies all data row by row.
          AllowedValues:
            - 1
            - 2
        incrementalCheckDelayNotice:
          Default: null
          Type: Boolean
          Description:
            en: >-
              Specifies whether to trigger an alert for incremental data
              verification latency. If you set this parameter to true, an
              alert is triggered when the cumulative latency across several
              statistical periods is greater than or equal to the specified
              threshold. Valid values: true and false.
        incrementalCheckValidFailNoticePeriod:
          Default: null
          Type: Number
          Description:
            en: >-
              The statistical period for detecting inconsistent data during
              incremental verification. This parameter is required if the
              incrementalCheckValidFailNotice parameter is set to true.
              Unit: minutes. Valid values:

              - 1: 1 minute

              - 2: 5 minutes

              - 3: 10 minutes

              - 4: 30 minutes
          AllowedValues:
            - 1
            - 2
            - 3
            - 4
        incrementalCheckDelayNoticeTimes:
          Default: null
          Type: Number
          Description:
            en: >-
              The number of consecutive statistical periods where latency is
              detected before an alert is triggered.

              Note: This parameter is required if the
              incrementalCheckDelayNotice parameter is set to true.
        fullCheckMaxReadBps:
          Default: null
          MinValue: 0
          Type: Number
          Description:
            en: >-
              The maximum read throughput for full data verification, in bytes
              per second. Valid values are integers from 0 to 9007199254740991.
          MaxValue: 9007199254740991
        incrementalCheckValidFailNoticeTimes:
          Default: null
          Type: Number
          Description:
            en: >-
              The number of consecutive statistical periods where inconsistent
              data is detected before an alert is triggered.

              Note: 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 rows read per second during full data
              verification. Valid values are integers from 0 to
              9007199254740991.
          MaxValue: 9007199254740991
        incrementalCheckValidFailNoticeValue:
          Default: null
          Type: Number
          Description:
            en: >-
              The number of inconsistent data entries that triggers an alert
              during incremental verification.

              Note: 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 rate for full data verification. Unit: percent.

              Note: This parameter is required if the fullCheckModel
              parameter is set to 1.
          MaxValue: 100
        incrementalCheckDelayNoticeValue:
          Default: null
          Type: Number
          Description:
            en: >-
              The latency threshold that triggers an alert during incremental
              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 enable a timeout for the full data
              verification task. Valid values:

              - 0: Disables the timeout.

              - 1: Enables the timeout.

              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 verify. The value must be a
              JSON-formatted 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:
              1 to 72.
          MaxValue: 72
        incrementalCheckDelayNoticePeriod:
          Default: null
          Type: Number
          Description:
            en: >-
              The statistical period for an alert on the data latency of the
              incremental data verification task. Unit: minutes. Valid values:

              - 1: 1 minute

              - 2: 5 minutes

              - 3: 10 minutes

              - 4: 30 minutes

              Note: 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 correct inconsistent data. If
              set to true, data in the destination database that is
              inconsistent with the source database is overwritten with the
              source data. Default value: false. Valid values: true and
              false.
        fullCheckNoticeValue:
          Default: null
          Type: Number
          Description:
            en: >-
              The number of inconsistent data entries that triggers an alert
              during full verification.

              Note: 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 for the data verification task.
  StructureInitialization:
    Type: Boolean
    Description:
      en: >-
        Specifies whether to perform schema migration or synchronization.
        Default value: true. Valid values: true and false.
  DelayRuleTime:
    Default: null
    Type: Number
    Description:
      en: >-
        The latency threshold for triggering an alert, in seconds. You can set
        this value based on your business requirements. We recommend that you
        set the threshold to more than 10 seconds to avoid false alarms caused
        by transient network or database load fluctuations.
  ErrorPhone:
    Default: null
    Type: String
    Description:
      en: >-
        The mobile phone numbers to which task status alerts are sent. Separate
        multiple numbers with commas (,).

        Note: This parameter is available only for accounts on the Alibaba
        Cloud China site (aliyun.com). Only mobile phone numbers in mainland
        China are supported. You can specify up to 10 numbers. Users on the
        Alibaba Cloud International site (alibabacloud.com) cannot receive SMS
        alerts. Instead, you 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 for the destination database.

              Note: This parameter is required in most cases. The
              permissions required for the database account depend 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 instance is an Alibaba Cloud database
              instance, such as an ApsaraDB RDS for MySQL instance, specify the
              ID of the instance.

              - If the destination instance is a self-managed database, the
              value of this parameter depends on the value of InstanceType:

                - If InstanceType is ECS, specify the ID of the ECS
                instance.

                - If InstanceType is DG, specify the ID of the database
                gateway.

                - If InstanceType is EXPRESS or CEN, specify the ID
                of the VPC to which the destination instance is connected.

              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 ID of the region where the destination instance is located.

              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 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 or V3.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 an Express
              Connect circuit.

              - 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
              (compatible with Oracle) cluster, you must set this parameter to
              OTHER or EXPRESS.
              - If the destination instance is a Message Queue for Apache Kafka
              instance, you must set this parameter to ECS or EXPRESS.
              - If the destination instance is a self-managed database, you must
              prepare the required network environment.
        Role:
          Default: null
          Type: String
          Description:
            en: >-
              The name of the RAM role that is configured for the Alibaba Cloud
              account that owns the destination instance.

              Note: 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 in the destination instance that contains
              the objects to migrate.

              Note: This parameter is required only when the destination
              instance is a PolarDB for PostgreSQL (compatible with Oracle)
              cluster, 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 (compatible with Oracle)
              cluster.

              - 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: 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.

              Note: This parameter is required only when EngineName is
              set to ORACLE and the Oracle database is not deployed in a
              Real Application Cluster (RAC) architecture.
        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: The configuration of the destination instance.
  ErrorNotice:
    Default: null
    Type: Boolean
    Description:
      en: >-
        Specifies whether to enable alerts for task errors. Valid values:
        true and false.
  FileOssUrl:
    Default: null
    Type: String
    Description:
      en: >-
        The URL of the Object Storage Service (OSS) bucket that stores 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 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 to which latency-related alerts are sent.
        Separate multiple numbers with commas (,).

        Note: This parameter is available only for accounts on the Alibaba
        Cloud China site (aliyun.com). Only mobile phone numbers in mainland
        China are supported. You can specify up to 10 numbers. Users on the
        Alibaba Cloud International site (alibabacloud.com) cannot receive SMS
        alerts. Instead, you 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. Valid values:
        true and false.
  DataInitialization:
    Type: Boolean
    Description:
      en: >-
        Specifies whether to perform full data migration or synchronization.
        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 database objects to migrate or synchronize. The value must be a
        JSON-formatted string.
  DedicatedClusterId:
    Default: null
    Type: String
    Description:
      en: The ID of the DTS dedicated cluster on which the task runs.
Resources:
  SynchronizationJob:
    Type: 'ALIYUN::DTS::SynchronizationJob2'
    Properties:
      SourceEndpoint:
        Ref: SourceEndpoint
      Checkpoint:
        Ref: Checkpoint
      Status:
        Ref: Status
      DisasterRecoveryJob:
        Ref: DisasterRecoveryJob
      DtsJobId:
        Ref: DtsJobId
      DtsJobName:
        Ref: DtsJobName
      DataSynchronization:
        Ref: DataSynchronization
      SynchronizationDirection:
        Ref: SynchronizationDirection
      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 task.
    Value:
      'Fn::GetAtt':
        - SynchronizationJob
        - DtsJobName
  DtsInstanceId:
    Description: The ID of the DTS instance.
    Value:
      'Fn::GetAtt':
        - SynchronizationJob
        - DtsInstanceId
  DtsJobId:
    Description: The ID of the DTS task.
    Value:
      'Fn::GetAtt':
        - SynchronizationJob
        - DtsJobId
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "SourceEndpoint": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "UserName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The account of the source database.\nNote: This parameter is required in most cases. The permissions required for the database account depend on 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. If the source instance is an Alibaba Cloud database instance, you must specify its instance ID. 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.\nIf the source instance is a self-managed database, the value of this parameter depends on the value of InstanceType:\n- If InstanceType is set to ECS, specify the ID of the ECS instance.\n- If InstanceType is set to DG, specify the ID of the database gateway.\n- If InstanceType is set to EXPRESS or CEN, specify the ID of the VPC that is connected to the source instance.\nNote: 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.\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: 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:\n\nAlibaba Cloud database instances:\n- RDS: An ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, ApsaraDB RDS for PostgreSQL, or ApsaraDB RDS for MariaDB TX instance.\n- PolarDB: A PolarDB for MySQL cluster.\n- REDIS: An ApsaraDB for Redis instance.\n- DISTRIBUTED_POLARDBX10: A PolarDB-X 1.0 (formerly DRDS) instance.\n- POLARDBX20: A PolarDB-X 2.0 instance.\n- MONGODB: An ApsaraDB for MongoDB instance.\n- DISTRIBUTED_DMSLOGICDB: A Data Management (DMS) logical database.\n\nSelf-managed databases:\n- OTHER: A self-managed database that has a public IP address.\n- ECS: A self-managed database that is hosted on an Elastic Compute Service (ECS) instance.\n- EXPRESS: A self-managed database that is connected over Express Connect.\n- CEN: A self-managed database that is connected over Cloud Enterprise Network (CEN).\n- DG: A self-managed database that is connected over Database Gateway.\n\nNote: If the source instance is a PolarDB for PostgreSQL (compatible with Oracle) cluster, 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 an Express Connect circuit. If the source instance is a self-managed database, you must configure the required network environment."
            }
          },
          "VSwitchID": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The ID of the vSwitch that is used for the data transmission link."
            }
          },
          "DatabaseName": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The name of the source database that contains the objects to be migrated.\nNote: This parameter is required only when the source instance is a PolarDB for PostgreSQL (compatible with Oracle) cluster, 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: An ApsaraDB RDS for MySQL instance or a self-managed MySQL database.\n- MARIADB: An ApsaraDB RDS for MariaDB TX instance.\n- PolarDB: A PolarDB for MySQL cluster.\n- POLARDB_O: A PolarDB for PostgreSQL (compatible with Oracle) cluster.\n- POLARDBX10: A PolarDB-X 1.0 instance.\n- POLARDBX20: A PolarDB-X 2.0 instance.\n- ORACLE: A self-managed Oracle database.\n- POSTGRESQL: An ApsaraDB RDS for PostgreSQL instance or a self-managed PostgreSQL database.\n- MSSQL: An ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database.\n- MONGODB: An ApsaraDB for MongoDB instance or a self-managed MongoDB database.\n- DB2: A self-managed Db2 for LUW database.\n- AS400: A self-managed Db2 for i database.\n- DMSPOLARDB: A DMS logical database.\n- HBASE: A self-managed HBase database.\n- TERADATA: A Teradata database.\n- TiDB: A TiDB database.\n- REDIS: An ApsaraDB for Redis instance or a self-managed Redis database.\nNote: The default value is MYSQL. If you set EngineName 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 not deployed in a Real Application Clusters (RAC) architecture."
            }
          },
          "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 of the source instance."
      }
    },
    "Checkpoint": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The start time 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- Synchronizing: Starts the task.\n- Suspending: Suspends the task.\n- Stopping: Stops the task."
      },
      "AllowedValues": [
        "Synchronizing",
        "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 task."
      }
    },
    "DataSynchronization": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to perform incremental data synchronization. Default value: false. Valid values: true and false."
      }
    },
    "SynchronizationDirection": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The synchronization direction. Valid values:\n- Forward: Data is synchronized from the source database to the destination database.\n- Reverse: Data is synchronized from the destination database to the source database.\nNote: The default value is Forward. The Reverse option is only valid for two-way synchronization tasks."
      }
    },
    "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 the full data verification task detects inconsistent data. Valid values: true and false.\nNote: If you set this parameter to true, an alert is triggered when the number of inconsistent data entries is greater than or equal to the value of the fullCheckNoticeValue parameter."
            }
          },
          "incrementalCheckValidFailNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert if the incremental data verification task detects inconsistent data. Valid values: true and false.\nNote: If you set this parameter to true, an alert is triggered when the cumulative number of inconsistent data entries reaches the threshold specified by incrementalCheckValidFailNoticeValue over the number of periods specified by incrementalCheckValidFailNoticeTimes."
            }
          },
          "dataCheckNoticePhone": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The mobile phone numbers of the contacts to notify when a data verification alert is triggered. If an alert is triggered, a text message is sent to these numbers. Separate multiple mobile phone numbers with commas (,)."
            }
          },
          "fullCheckReferEndpoint": {
            "Default": null,
            "Type": "String",
            "Description": {
              "en": "The reference database for full data verification. This determines which database is used as the source of truth for comparison. Valid values:\n- all: Compares all objects in the source database with all objects in the destination database.\n- src: Uses the source database as the benchmark. Objects that exist only in the destination database are not checked for consistency.\n- dest: Uses the destination database as the benchmark. Objects that exist only in the source database are not checked for consistency."
            }
          },
          "fullCheckModel": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The mode of the full data verification task. Valid values:\n- 1: Verifies a sample of the data based on a specified ratio.\n- 2: Verifies all data on a row-by-row basis."
            },
            "AllowedValues": [
              1,
              2
            ]
          },
          "incrementalCheckDelayNotice": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to trigger an alert for the latency of the incremental data verification task. Valid values: true and false.\nNote: If you set this parameter to true, an alert is triggered when the cumulative latency reaches the threshold specified by incrementalCheckDelayNoticeValue over the number of periods specified by incrementalCheckDelayNoticeTimes."
            }
          },
          "incrementalCheckValidFailNoticePeriod": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The time window for aggregating inconsistent data statistics for the incremental data verification task. An alert is triggered if the threshold is met within 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 incrementalCheckValidFailNotice 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 latency threshold is exceeded for this number of consecutive periods.\nNote: This parameter is required if incrementalCheckDelayNotice is set to true."
            }
          },
          "fullCheckMaxReadBps": {
            "Default": null,
            "MinValue": 0,
            "Type": "Number",
            "Description": {
              "en": "The maximum read throughput for the full data verification task, in bytes per second. Valid values are 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 counted. An alert is triggered if the inconsistency threshold is exceeded for this number of consecutive periods.\nNote: This parameter is required if incrementalCheckValidFailNotice is set to true."
            }
          },
          "fullCheckMaxReadRps": {
            "Default": null,
            "MinValue": 0,
            "Type": "Number",
            "Description": {
              "en": "The maximum number of rows read per second for the full data verification task. Valid values are integers from 0 to 9007199254740991."
            },
            "MaxValue": 9007199254740991
          },
          "incrementalCheckValidFailNoticeValue": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The threshold for the number of inconsistent data entries that triggers an alert during incremental data verification.\nNote: 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 task. Valid values: true and false."
            }
          },
          "fullCheckRatio": {
            "Default": null,
            "MinValue": 10,
            "Type": "Number",
            "Description": {
              "en": "The sampling ratio for the full data verification task. Valid values are integers from 10 to 100. Unit: percent.\nNote: This parameter is required if fullCheckModel is set to 1 (verify by sampling ratio)."
            },
            "MaxValue": 100
          },
          "incrementalCheckDelayNoticeValue": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The latency threshold that triggers an alert for the incremental data verification task. Unit: seconds.\nNote: This parameter is required if incrementalCheckDelayNotice 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: Disable the timeout period.\n- 1: Enable the timeout period.\nNote: This parameter is required if fullCheckModel 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-formatted 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. Valid values are integers from 1 to 72. The countdown starts when the task begins. If the task does not complete within this period, it is forcibly stopped."
            },
            "MaxValue": 72
          },
          "incrementalCheckDelayNoticePeriod": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The time window for aggregating latency statistics for the incremental data verification task. An alert is triggered if the latency threshold is met within 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 incrementalCheckDelayNotice is set to true."
            },
            "AllowedValues": [
              1,
              2,
              3,
              4
            ]
          },
          "fullCheckFixData": {
            "Default": null,
            "Type": "Boolean",
            "Description": {
              "en": "Specifies whether to automatically repair inconsistent data found during full data verification. Valid values: true and false. Default value: false.\nNote: If you set this parameter to true, data in the destination database that is inconsistent with the source database will be overwritten with data from the source database."
            }
          },
          "fullCheckNoticeValue": {
            "Default": null,
            "Type": "Number",
            "Description": {
              "en": "The threshold for the number of inconsistent data entries that triggers an alert during full data verification.\nNote: 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 task. Valid values: true and false."
            }
          }
        }
      },
      "Type": "Json",
      "Description": {
        "en": "The configuration for the data verification task."
      }
    },
    "StructureInitialization": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to perform schema migration or schema synchronization. Default value: true. Valid values: true and false."
      }
    },
    "DelayRuleTime": {
      "Default": null,
      "Type": "Number",
      "Description": {
        "en": "The threshold for latency alerts. Unit: seconds. You can set the threshold based on your business requirements. To prevent jitters caused by network and database overloads, 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 status-related alerts. Separate multiple mobile phone numbers with commas (,).\nNote: This parameter is available only for accounts on the Alibaba Cloud China site (aliyun.com). Only mobile numbers in mainland China are supported. You can specify up to 10 mobile numbers. Users on the Alibaba Cloud International site (alibabacloud.com) cannot receive alerts by using mobile 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: This parameter is required in most cases. The permissions required for the database account depend on 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. If the destination instance is an Alibaba Cloud database instance, you must specify its instance ID. 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.\nIf the destination instance is a self-managed database, the value of this parameter depends on the value of InstanceType:\n- If InstanceType is set to ECS, specify the ID of the ECS instance.\n- If InstanceType is set to DG, specify the ID of the database gateway.\n- If InstanceType is set to EXPRESS or CEN, specify the ID of the VPC that is connected to the destination instance.\nNote: 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.\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: 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:\n\nAlibaba Cloud database instances:\n- RDS: An ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, ApsaraDB RDS for PostgreSQL, or ApsaraDB RDS for MariaDB TX instance.\n- PolarDB: A PolarDB for MySQL cluster.\n- DISTRIBUTED_POLARDBX10: A PolarDB-X 1.0 (formerly DRDS) instance.\n- POLARDBX20: A PolarDB-X 2.0 instance.\n- REDIS: An ApsaraDB for Redis instance.\n- ADS: An AnalyticDB for MySQL V2.0 or V3.0 cluster.\n- MONGODB: An ApsaraDB for MongoDB instance.\n- GREENPLUM: An AnalyticDB for PostgreSQL instance.\n- DATAHUB: A DataHub project.\n- ELK: An Elasticsearch cluster.\n- Tablestore: A Tablestore instance.\n- ODPS: A MaxCompute project.\n\nSelf-managed databases:\n- OTHER: A self-managed database that has a public IP address.\n- ECS: A self-managed database that is hosted on an ECS instance.\n- EXPRESS: A self-managed database that is connected over Express Connect.\n- CEN: A self-managed database that is connected over CEN.\n- DG: A self-managed database that is connected over Database Gateway.\n\nNote: If the destination instance is a PolarDB for PostgreSQL (compatible with Oracle) cluster, 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 an Express Connect circuit.\nIf 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 instance to DTS as a self-managed database.\nIf the destination instance is a self-managed database, you must configure 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 destination database that contains the objects to be migrated.\nNote: This parameter is required only when the destination instance is a PolarDB for PostgreSQL (compatible with Oracle) cluster, 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: An ApsaraDB RDS for MySQL instance or a self-managed MySQL database.\n- MARIADB: An ApsaraDB RDS for MariaDB TX instance.\n- PolarDB: A PolarDB for MySQL cluster.\n- POLARDB_O: A PolarDB for PostgreSQL (compatible with Oracle) cluster.\n- POLARDBX10: A PolarDB-X 1.0 instance.\n- POLARDBX20: A PolarDB-X 2.0 instance.\n- ORACLE: A self-managed Oracle database.\n- POSTGRESQL: An ApsaraDB RDS for PostgreSQL instance or a self-managed PostgreSQL database.\n- MSSQL: An ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database.\n- ADS: An AnalyticDB for MySQL V2.0 cluster.\n- ADB30: An AnalyticDB for MySQL V3.0 cluster.\n- MONGODB: An ApsaraDB for MongoDB instance or a self-managed MongoDB database.\n- GREENPLUM: An AnalyticDB for PostgreSQL instance.\n- KAFKA: A Message Queue for Apache Kafka instance or a self-managed Kafka cluster.\n- DATAHUB: A DataHub project.\n- DB2: A self-managed Db2 for LUW database.\n- AS400: A self-managed Db2 for i database.\n- ODPS: A MaxCompute project.\n- Tablestore: A Tablestore instance.\n- ELK: An Elasticsearch cluster.\n- REDIS: An ApsaraDB for Redis instance or a self-managed Redis database.\nNote: The default value is MYSQL. If you set this parameter to KAFKA, MONGODB, or PolarDB, you must specify additional 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 not deployed in a Real Application Clusters (RAC) architecture."
            }
          },
          "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 of the destination instance."
      }
    },
    "ErrorNotice": {
      "Default": null,
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable notifications for task errors. If enabled, 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 files related to the DTS task."
      }
    },
    "Reserve": {
      "Default": null,
      "Type": "Json",
      "Description": {
        "en": "A reserved parameter that allows for specifying extended configurations. The value must be a JSON-formatted string. For example, you can 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 accounts on the Alibaba Cloud China site (aliyun.com). Only mobile numbers in mainland China are supported. You can specify up to 10 mobile numbers. Users on the Alibaba Cloud International site (alibabacloud.com) cannot receive alerts by using mobile numbers, but can configure alert rules for DTS tasks in the CloudMonitor console."
      }
    },
    "DelayNotice": {
      "Default": null,
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable notifications for task latency. If enabled, an alert is sent when the latency exceeds the threshold defined in DelayRuleTime. Valid values: true and false."
      }
    },
    "DataInitialization": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to perform a full data synchronization. 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 database objects to migrate or synchronize. The value must be a JSON-formatted string that specifies the databases, tables, and views."
      }
    },
    "DedicatedClusterId": {
      "Default": null,
      "Type": "String",
      "Description": {
        "en": "The ID of the DTS dedicated cluster on which the task runs."
      }
    }
  },
  "Resources": {
    "SynchronizationJob": {
      "Type": "ALIYUN::DTS::SynchronizationJob2",
      "Properties": {
        "SourceEndpoint": {
          "Ref": "SourceEndpoint"
        },
        "Checkpoint": {
          "Ref": "Checkpoint"
        },
        "Status": {
          "Ref": "Status"
        },
        "DisasterRecoveryJob": {
          "Ref": "DisasterRecoveryJob"
        },
        "DtsJobId": {
          "Ref": "DtsJobId"
        },
        "DtsJobName": {
          "Ref": "DtsJobName"
        },
        "DataSynchronization": {
          "Ref": "DataSynchronization"
        },
        "SynchronizationDirection": {
          "Ref": "SynchronizationDirection"
        },
        "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 task.",
      "Value": {
        "Fn::GetAtt": [
          "SynchronizationJob",
          "DtsJobName"
        ]
      }
    },
    "DtsInstanceId": {
      "Description": "The ID of the DTS instance.",
      "Value": {
        "Fn::GetAtt": [
          "SynchronizationJob",
          "DtsInstanceId"
        ]
      }
    },
    "DtsJobId": {
      "Description": "The ID of the DTS task.",
      "Value": {
        "Fn::GetAtt": [
          "SynchronizationJob",
          "DtsJobId"
        ]
      }
    }
  }
}