Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::DTS::Instance

Última atualização: Jun 27, 2026

Cria uma instância do DTS para migração de dados, sincronização ou rastreamento de alterações.

Nota

Use os novos tipos de recurso em substituição aos anteriores.

ALIYUN::DTS::MigrationJob (anterior) = ALIYUN::DTS::MigrationJob2 (novo) + ALIYUN::DTS::Instance (novo)

ALIYUN::DTS::SynchronizationJob (anterior) = ALIYUN::DTS::SynchronizationJob2 (novo) + ALIYUN::DTS::Instance (novo)

ALIYUN::DTS::SubscriptionInstance (anterior) = ALIYUN::DTS::SubscriptionJob2 (novo) + ALIYUN::DTS::Instance (novo)

Sintaxe

{
  "Type": "ALIYUN::DTS::Instance",
  "Properties": {
    "ResourceGroupId": String,
    "FeeType": String,
    "ComputeUnit": Integer,
    "Period": String,
    "DestinationRegion": String,
    "InstanceClass": String,
    "SourceEndpointEngineName": String,
    "PayType": String,
    "AutoPay": Boolean,
    "DestinationEndpointEngineName": String,
    "SourceRegion": String,
    "Du": Integer,
    "Type": String,
    "DatabaseCount": Integer,
    "InsightModule": Boolean,
    "UsedTime": Integer,
    "AutoStart": Boolean,
    "JobId": String,
    "SyncArchitecture": String,
    "MaxDu": Integer,
    "MinDu": Integer
  }
}

Propriedades

Propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

ResourceGroupId

String

Não

Não

ID do grupo de recursos.

Nenhuma

FeeType

String

Não

Não

Tipo de faturamento da instância de rastreamento de alterações.

Valores válidos:

  • ONLY_CONFIGURATION_FEE: cobra apenas pela configuração e isenta as taxas de tráfego de dados.

  • CONFIGURATION_FEE_AND_DATA_FEE: cobra tanto pela configuração quanto pelo tráfego de dados.

ComputeUnit

Integer

Não

Não

Especificações da tarefa ETL.

A unidade é compute units (CUs). Uma CU equivale a 1 vCPU e 4 GB de memória. O valor deve ser um número inteiro maior ou igual a 2.

Nota

Se você especificar este parâmetro, poderá configurar uma tarefa ETL no modo DAG para limpar e transformar dados.

Period

String

Não

Sim

Unidade do período de assinatura.

Valores válidos:

  • Year

  • Month

Nota

Este parâmetro é obrigatório e tem efeito somente quando o parâmetro PayType está definido como PrePaid.

DestinationRegion

String

Não

Não

Região da instância de destino.

Para mais informações, consulte Lista de regiões suportadas.

Nota

Especifique este parâmetro ou JobId.

InstanceClass

String

Sim

Sim

Classe da instância de migração ou sincronização de dados.

Valores válidos:

  • Para instâncias de migração de dados: xxlarge, xlarge, large, medium e small.

  • Para instâncias de sincronização de dados: large, medium, small e micro.

Nota

Para mais informações sobre o desempenho de cada classe de instância, consulte Especificações de instâncias de migração de dados e Especificações de instâncias de sincronização de dados.

PayType

String

Sim

Sim

Método de faturamento.

Valores válidos:

  • PrePaid: assinatura

  • PostPaid: pagamento conforme o uso

Type

String

Sim

Não

Tipo da instância do DTS.

Valores válidos:

  • MIGRATION: instância de migração de dados

  • SYNC: instância de sincronização de dados

  • SUBSCRIBE: instância de rastreamento de alterações

AutoPay

Boolean

Não

Não

Defina se a renovação automática está ativada para a instância de assinatura.

Valores válidos:

  • true: renovação automática ativada.

  • false (padrão): renovação automática desativada.

DestinationEndpointEngineName

String

Não

Não

Mecanismo de banco de dados da instância de destino.

Valores válidos:

  • MySQL (padrão): instância do ApsaraDB RDS for MySQL ou banco de dados MySQL auto-gerenciado

  • PolarDB: cluster do PolarDB for MySQL

  • polardb_o: cluster do PolarDB for Oracle

  • polardb_pg: cluster do PolarDB for PostgreSQL

  • Redis: instância do Tair ou banco de dados Redis auto-gerenciado

  • DRDS: instância do PolarDB-X 1.0 ou 2.0

  • PostgreSQL: banco de dados PostgreSQL auto-gerenciado

  • odps: projeto do MaxCompute

  • oracle: banco de dados Oracle auto-gerenciado

  • mongodb: instância do ApsaraDB for MongoDB ou banco de dados MongoDB auto-gerenciado

  • tidb: banco de dados TiDB

  • ADS: cluster do AnalyticDB for MySQL 2.0

  • ADB30: cluster do AnalyticDB for MySQL 3.0

  • Greenplum: instância do AnalyticDB for PostgreSQL

  • MSSQL: instância do ApsaraDB RDS for SQL Server ou banco de dados SQL Server auto-gerenciado

  • kafka: instância do ApsaraMQ for Kafka ou cluster Kafka auto-gerenciado

  • DataHub: projeto do DataHub

  • DB2: banco de dados Db2 for LUW auto-gerenciado

  • as400: servidor AS/400

  • Tablestore: instância do Tablestore

Para bancos de dados de origem e destino suportados, consulte Visão geral dos cenários de sincronização de dados e Visão geral dos cenários de migração de dados.

Nota

Especifique este parâmetro ou JobId.

SourceEndpointEngineName

String

Não

Não

Mecanismo de banco de dados da instância de origem.

Valores válidos:

  • MySQL (padrão): instância do ApsaraDB RDS for MySQL ou banco de dados MySQL auto-gerenciado

  • PolarDB: cluster do PolarDB for MySQL

  • polardb_o: cluster do PolarDB for Oracle

  • polardb_pg: cluster do PolarDB for PostgreSQL

  • Redis: instância do Tair ou banco de dados Redis auto-gerenciado

  • DRDS: instância do PolarDB-X 1.0 ou 2.0

  • PostgreSQL: banco de dados PostgreSQL auto-gerenciado

  • odps: projeto do MaxCompute

  • oracle: banco de dados Oracle auto-gerenciado

  • mongodb: instância do ApsaraDB for MongoDB ou banco de dados MongoDB auto-gerenciado

  • tidb: banco de dados TiDB

  • ADS: cluster do AnalyticDB for MySQL 2.0

  • ADB30: cluster do AnalyticDB for MySQL 3.0

  • Greenplum: instância do AnalyticDB for PostgreSQL

  • MSSQL: instância do ApsaraDB RDS for SQL Server ou banco de dados SQL Server auto-gerenciado

  • kafka: instância do ApsaraMQ for Kafka ou cluster Kafka auto-gerenciado

  • DataHub: projeto do DataHub

  • DB2: banco de dados Db2 for LUW auto-gerenciado

  • as400: servidor AS/400

  • Tablestore: instância do Tablestore

Nota

Especifique este parâmetro ou JobId.

Para bancos de dados de origem e destino suportados, consulte Visão geral da solução de sincronização e Visão geral da solução de migração.

InsightModule

Boolean

Não

Não

Defina se o módulo insight está ativado.

Nenhuma

SourceRegion

String

Não

Não

Região da instância de origem.

Para mais informações, consulte Lista de regiões suportadas.

Nota

Especifique este parâmetro ou JobId.

Du

Integer

Não

Não

Número de unidades DTS (DUs) atribuídas a uma tarefa do DTS em um cluster dedicado.

O valor deve ser um número inteiro de 1 a 100.

Nota

O valor deve estar dentro do intervalo de DUs disponíveis para o cluster dedicado do DTS.

Para mais informações, consulte O que é um cluster dedicado do DTS?.

DatabaseCount

Integer

Não

Não

Número de instâncias personalizadas privadas do ApsaraDB RDS em uma instância do PolarDB-X 1.0.

Valor padrão: 1.

Nota

Especifique este parâmetro somente se o parâmetro SourceEndpointEngineName estiver definido como drds.

UsedTime

Integer

Não

Sim

Duração da assinatura.

Valores válidos:

  • Se o parâmetro Period estiver definido como Month, os valores válidos são 1, 2, 3, 4, 5, 6, 7, 8 e 9.

  • Se o parâmetro Period estiver definido como Year, os valores válidos são 1, 2, 3 e 5.

Nota

Este parâmetro é obrigatório e tem efeito somente quando o parâmetro PayType está definido como PrePaid.

Defina o parâmetro Period para especificar a unidade da duração da assinatura.

AutoStart

Boolean

Não

Não

Defina se a tarefa inicia automaticamente após a criação da instância.

Valores válidos:

  • true: a tarefa inicia automaticamente.

  • false (padrão): a tarefa não inicia automaticamente.

JobId

String

Não

Não

ID da tarefa.

Se você especificar este parâmetro, não será necessário especificar SourceRegion, DestinationRegion, SourceEndpointEngineName ou DestinationEndpointEngineName. A configuração da tarefa especificada será utilizada, e JobId terá precedência sobre esses parâmetros.

SyncArchitecture

String

Não

Não

Topologia de sincronização.

Valores válidos:

  • oneway (padrão): sincronização unidirecional

  • bidirectional: sincronização bidirecional

MaxDu

Integer

Não

Não

Número máximo de DUs para a instância Serverless.

Aplica-se apenas a instâncias Serverless.

MinDu

Integer

Não

Não

Número mínimo de DUs para a instância Serverless.

Aplica-se apenas a instâncias Serverless.

Valores de retorno

Fn::GetAtt

  • InstanceId: ID da instância do DTS.

  • JobId: ID da tarefa.

Exemplos

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  AutoPay:
    Type: Boolean
    Description:
      en: 'Specifies whether to automatically renew the DTS instance when it expires.
        Valid values:

        - **true**: enables auto-renewal.

        - **false**: disables auto-renewal. This is the default value.'
  AutoStart:
    Type: Boolean
    Description:
      en: 'Specifies whether to automatically start the task after the DTS instance
        is created. Valid values:

        - **true**: automatically starts the task.

        - **false**: does not automatically start the task. This is the default value.'
  ComputeUnit:
    Type: Number
    Description:
      en: The specifications of the extract, transform, and load (ETL) instance. The
        unit is compute unit (CU). One CU is equivalent to 1 vCPU and 4 GB of memory.
        The value must be an integer that is greater than or equal to 2.
  DatabaseCount:
    Type: Number
    Description:
      en: 'The number of private custom ApsaraDB RDS instances in a PolarDB-X 1.0 instance.
        Default value: **1**.

        **Note**: You must specify this parameter only if the **SourceEndpointEngineName**
        parameter is set to **drds**.'
  DestinationEndpointEngineName:
    Type: String
    Description:
      en: 'The database engine of the destination instance. Valid values:

        - **MySQL** (default): an ApsaraDB RDS for MySQL instance or a self-managed MySQL database

        - **PolarDB**: a PolarDB for MySQL cluster

        - **polardb_o**: a PolarDB for Oracle cluster

        - **polardb_pg**: a PolarDB for PostgreSQL cluster

        - **Redis**: a Tair instance or a self-managed Redis database

        - **DRDS**: a PolarDB-X 1.0 or 2.0 instance

        - **PostgreSQL**: a self-managed PostgreSQL database

        - **odps**: a MaxCompute project

        - **oracle**: a self-managed Oracle database

        - **mongodb**: an ApsaraDB for MongoDB instance or a self-managed MongoDB database

        - **tidb**: a TiDB database

        - **ADS**: an AnalyticDB for MySQL 2.0 cluster

        - **ADB30**: an AnalyticDB for MySQL 3.0 cluster

        - **Greenplum**: an AnalyticDB for PostgreSQL instance

        - **MSSQL**: an ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database

        - **kafka**: an ApsaraMQ for Kafka instance or a self-managed Kafka cluster

        - **DataHub**: a DataHub project

        - **DB2**: a self-managed Db2 for LUW database

        - **as400**: an AS/400 server

        - **Tablestore**: a Tablestore instance

        **Note**: You must specify either this parameter or the **JobId** parameter.'
  DestinationRegion:
    Type: String
    Description:
      en: 'The ID of the region in which the destination instance resides.

        **Note**: You must specify either this parameter or the **JobId** parameter.'
  Du:
    Type: Number
    MinValue: 1
    MaxValue: 100
    Description:
      en: 'The number of DTS units (DUs) that are assigned to a DTS task that runs
        on a DTS dedicated cluster. Valid values: 1 to 100.

        **Note**: The value of this parameter must be within the range of the number
        of DUs available for the DTS dedicated cluster.'
  FeeType:
    Type: String
    Description:
      en: 'The billing type of the change tracking instance. Valid values:

        - **ONLY_CONFIGURATION_FEE**: charges only for the configuration and waives data traffic fees.

        - **CONFIGURATION_FEE_AND_DATA_FEE**: charges for both the configuration and data traffic.'
  InsightModule:
    Type: Boolean
    Description:
      en: 'Specifies whether to enable the insight module.'
  InstanceClass:
    Type: String
    AllowedValues:
    - xxlarge
    - xlarge
    - large
    - medium
    - small
    - micro
    Description:
      en: 'The instance class of a data migration or data synchronization instance.

        - For a data migration instance, the valid values are **xxlarge**, **xlarge**, **large**, **medium**, and **small**.

        - For a data synchronization instance, the valid values are **large**, **medium**, **small**, and **micro**.

        **Note**: The instance class can be changed after the instance is created. However, the instance downgrade feature is in canary release and is available only to specific users.'
  JobId:
    Type: String
    Description:
      en: 'The ID of the task.

        **Note**: If you specify this parameter, you do not need to specify the `SourceRegion`, `DestinationRegion`, `SourceEndpointEngineName`, or `DestinationEndpointEngineName` parameter. The value of the `JobId` parameter takes precedence even if these other parameters are specified.'
  MaxDu:
    Type: Number
    Description:
      en: 'The maximum number of DUs for the Serverless instance. This parameter applies only to Serverless instances.'
  MinDu:
    Type: Number
    Description:
      en: 'The minimum number of DUs for the Serverless instance. This parameter applies only to Serverless instances.'
  PayType:
    Type: String
    AllowedValues:
    - PayAsYouGo
    - PostPaid
    - PayOnDemand
    - Postpaid
    - PostPay
    - Postpay
    - POSTPAY
    - POST
    - Subscription
    - PrePaid
    - Prepaid
    - PrePay
    - Prepay
    - PREPAY
    - PRE
    Description:
      en: 'The billing method. Valid values:

        - **PrePaid**: subscription

        - **PostPaid**: pay-as-you-go'
  Period:
    Type: String
    AllowedValues:
    - Year
    - Month
    Description:
      en: 'The unit of the subscription duration for a subscription instance. Valid values: **Year** and **Month**.

        **Note**: This parameter is required and takes effect only if the **PayType** parameter is set to **PrePaid**.'
  ResourceGroupId:
    Type: String
    Description:
      en: The ID of the resource group.
  SourceEndpointEngineName:
    Type: String
    Description:
      en: 'The database engine of the source instance. Valid values:

        - **MySQL** (default): an ApsaraDB RDS for MySQL instance or a self-managed MySQL database

        - **PolarDB**: a PolarDB for MySQL cluster

        - **polardb_o**: a PolarDB for Oracle cluster

        - **polardb_pg**: a PolarDB for PostgreSQL cluster

        - **Redis**: a Tair instance or a self-managed Redis database

        - **DRDS**: a PolarDB-X 1.0 or 2.0 instance

        - **PostgreSQL**: a self-managed PostgreSQL database

        - **odps**: a MaxCompute project

        - **oracle**: a self-managed Oracle database

        - **mongodb**: an ApsaraDB for MongoDB instance or a self-managed MongoDB database

        - **tidb**: a TiDB database

        - **ADS**: an AnalyticDB for MySQL 2.0 cluster

        - **ADB30**: an AnalyticDB for MySQL 3.0 cluster

        - **Greenplum**: an AnalyticDB for PostgreSQL instance

        - **MSSQL**: an ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database

        - **kafka**: an ApsaraMQ for Kafka instance or a self-managed Kafka cluster

        - **DataHub**: a DataHub project

        - **DB2**: a self-managed Db2 for LUW database

        - **as400**: an AS/400 server

        - **Tablestore**: a Tablestore instance

        **Note**: You must specify either this parameter or the **JobId** parameter.'
  SourceRegion:
    Type: String
    Description:
      en: 'The ID of the region in which the source instance resides.

        **Note**: You must specify either this parameter or the **JobId** parameter.'
  SyncArchitecture:
    Type: String
    AllowedValues:
    - oneway
    - bidirectional
    Description:
      en: 'The synchronization topology. Valid values:

        - **oneway** (default): one-way synchronization

        - **bidirectional**: two-way synchronization'
  Type:
    Type: String
    AllowedValues:
    - MIGRATION
    - SYNC
    - SUBSCRIBE
    Description:
      en: 'The type of the DTS instance. Valid values:

        - **MIGRATION**: data migration instance

        - **SYNC**: data synchronization instance

        - **SUBSCRIBE**: change tracking instance'
  UsedTime:
    Type: Number
    AllowedValues:
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    Description:
      en: 'The subscription duration.

        - If the **Period** parameter is set to **Month**, the valid values are 1, 2, 3, 4, 5, 6, 7, 8, and 9.

        - If the **Period** parameter is set to **Year**, the valid values are 1, 2, 3, and 5.

        **Note**: This parameter is required and takes effect only if the **PayType** parameter is set to **PrePaid**. You can set the **Period** parameter to specify the unit of the subscription duration.'
Resources:
  Instance:
    Type: ALIYUN::DTS::Instance
    Properties:
      AutoPay:
        Ref: AutoPay
      AutoStart:
        Ref: AutoStart
      ComputeUnit:
        Ref: ComputeUnit
      DatabaseCount:
        Ref: DatabaseCount
      DestinationEndpointEngineName:
        Ref: DestinationEndpointEngineName
      DestinationRegion:
        Ref: DestinationRegion
      Du:
        Ref: Du
      FeeType:
        Ref: FeeType
      InsightModule:
        Ref: InsightModule
      InstanceClass:
        Ref: InstanceClass
      JobId:
        Ref: JobId
      MaxDu:
        Ref: MaxDu
      MinDu:
        Ref: MinDu
      PayType:
        Ref: PayType
      Period:
        Ref: Period
      ResourceGroupId:
        Ref: ResourceGroupId
      SourceEndpointEngineName:
        Ref: SourceEndpointEngineName
      SourceRegion:
        Ref: SourceRegion
      SyncArchitecture:
        Ref: SyncArchitecture
      Type:
        Ref: Type
      UsedTime:
        Ref: UsedTime
Outputs:
  InstanceId:
    Description: The ID of the DTS instance.
    Value:
      Fn::GetAtt:
      - Instance
      - InstanceId
  JobId:
    Description: The ID of the task.
    Value:
      Fn::GetAtt:
      - Instance
      - JobId
                        
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "AutoPay": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to automatically renew the DTS instance when it expires.\nValid values:\n- **true**: enables auto-renewal.\n- **false**: disables auto-renewal. This is the default value."
      }
    },
    "AutoStart": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to automatically start the task after the DTS instance is created.\nValid values:\n- **true**: automatically starts the task.\n- **false**: does not automatically start the task. This is the default value."
      }
    },
    "ComputeUnit": {
      "Type": "Number",
      "Description": {
        "en": "The specifications of the extract, transform, and load (ETL) instance. The unit is compute unit (CU). One CU is equivalent to 1 vCPU and 4 GB of memory. The value must be an integer that is greater than or equal to 2."
      }
    },
    "DatabaseCount": {
      "Type": "Number",
      "Description": {
        "en": "The number of private custom ApsaraDB RDS instances in a PolarDB-X 1.0 instance. Default value: **1**.\n**Note**: You must specify this parameter only if the **SourceEndpointEngineName** parameter is set to **drds**."
      }
    },
    "DestinationEndpointEngineName": {
      "Type": "String",
      "Description": {
        "en": "The database engine of the destination instance. Valid values:\n- **MySQL** (default): an ApsaraDB RDS for MySQL instance or a self-managed MySQL database\n- **PolarDB**: a PolarDB for MySQL cluster\n- **polardb_o**: a PolarDB for Oracle cluster\n- **polardb_pg**: a PolarDB for PostgreSQL cluster\n- **Redis**: a Tair instance or a self-managed Redis database\n- **DRDS**: a PolarDB-X 1.0 or 2.0 instance\n- **PostgreSQL**: a self-managed PostgreSQL database\n- **odps**: a MaxCompute project\n- **oracle**: a self-managed Oracle database\n- **mongodb**: an ApsaraDB for MongoDB instance or a self-managed MongoDB database\n- **tidb**: a TiDB database\n- **ADS**: an AnalyticDB for MySQL 2.0 cluster\n- **ADB30**: an AnalyticDB for MySQL 3.0 cluster\n- **Greenplum**: an AnalyticDB for PostgreSQL instance\n- **MSSQL**: an ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database\n- **kafka**: an ApsaraMQ for Kafka instance or a self-managed Kafka cluster\n- **DataHub**: a DataHub project\n- **DB2**: a self-managed Db2 for LUW database\n- **as400**: an AS/400 server\n- **Tablestore**: a Tablestore instance\n**Note**: You must specify either this parameter or the **JobId** parameter."
      }
    },
    "DestinationRegion": {
      "Type": "String",
      "Description": {
        "en": "The ID of the region in which the destination instance resides.\n**Note**: You must specify either this parameter or the **JobId** parameter."
      }
    },
    "Du": {
      "Type": "Number",
      "MinValue": 1,
      "MaxValue": 100,
      "Description": {
        "en": "The number of DTS units (DUs) that are assigned to a DTS task that runs on a DTS dedicated cluster. Valid values: 1 to 100.\n**Note**: The value of this parameter must be within the range of the number of DUs available for the DTS dedicated cluster."
      }
    },
    "FeeType": {
      "Type": "String",
      "Description": {
        "en": "The billing type of the change tracking instance. Valid values:\n- **ONLY_CONFIGURATION_FEE**: charges only for the configuration and waives data traffic fees.\n- **CONFIGURATION_FEE_AND_DATA_FEE**: charges for both the configuration and data traffic."
      }
    },
    "InsightModule": {
      "Type": "Boolean",
      "Description": {
        "en": "Specifies whether to enable the insight module."
      }
    },
    "InstanceClass": {
      "Type": "String",
      "AllowedValues": [
        "xxlarge",
        "xlarge",
        "large",
        "medium",
        "small",
        "micro"
      ],
      "Description": {
        "en": "The instance class of a data migration or data synchronization instance.\n- For a data migration instance, the valid values are **xxlarge**, **xlarge**, **large**, **medium**, and **small**.\n- For a data synchronization instance, the valid values are **large**, **medium**, **small**, and **micro**.\n**Note**: The instance class can be changed after the instance is created. However, the instance downgrade feature is in canary release and is available only to specific users."
      }
    },
    "JobId": {
      "Type": "String",
      "Description": {
        "en": "The ID of the task.\n**Note**: If you specify this parameter, you do not need to specify the `SourceRegion`, `DestinationRegion`, `SourceEndpointEngineName`, or `DestinationEndpointEngineName` parameter. The value of the `JobId` parameter takes precedence even if these other parameters are specified."
      }
    },
    "MaxDu": {
      "Type": "Number",
      "Description": {
        "en": "The maximum number of DUs for the Serverless instance. This parameter applies only to Serverless instances."
      }
    },
    "MinDu": {
      "Type": "Number",
      "Description": {
        "en": "The minimum number of DUs for the Serverless instance. This parameter applies only to Serverless instances."
      }
    },
    "PayType": {
      "Type": "String",
      "AllowedValues": [
        "PayAsYouGo",
        "PostPaid",
        "PayOnDemand",
        "Postpaid",
        "PostPay",
        "Postpay",
        "POSTPAY",
        "POST",
        "Subscription",
        "PrePaid",
        "Prepaid",
        "PrePay",
        "Prepay",
        "PREPAY",
        "PRE"
      ],
      "Description": {
        "en": "The billing method. Valid values:\n- **PrePaid**: subscription\n- **PostPaid**: pay-as-you-go"
      }
    },
    "Period": {
      "Type": "String",
      "AllowedValues": [
        "Year",
        "Month"
      ],
      "Description": {
        "en": "The unit of the subscription duration for a subscription instance. Valid values: **Year** and **Month**.\n**Note**: This parameter is required and takes effect only if the **PayType** parameter is set to **PrePaid**."
      }
    },
    "ResourceGroupId": {
      "Type": "String",
      "Description": {
        "en": "The ID of the resource group."
      }
    },
    "SourceEndpointEngineName": {
      "Type": "String",
      "Description": {
        "en": "The database engine of the source instance. Valid values:\n- **MySQL** (default): an ApsaraDB RDS for MySQL instance or a self-managed MySQL database\n- **PolarDB**: a PolarDB for MySQL cluster\n- **polardb_o**: a PolarDB for Oracle cluster\n- **polardb_pg**: a PolarDB for PostgreSQL cluster\n- **Redis**: a Tair instance or a self-managed Redis database\n- **DRDS**: a PolarDB-X 1.0 or 2.0 instance\n- **PostgreSQL**: a self-managed PostgreSQL database\n- **odps**: a MaxCompute project\n- **oracle**: a self-managed Oracle database\n- **mongodb**: an ApsaraDB for MongoDB instance or a self-managed MongoDB database\n- **tidb**: a TiDB database\n- **ADS**: an AnalyticDB for MySQL 2.0 cluster\n- **ADB30**: an AnalyticDB for MySQL 3.0 cluster\n- **Greenplum**: an AnalyticDB for PostgreSQL instance\n- **MSSQL**: an ApsaraDB RDS for SQL Server instance or a self-managed SQL Server database\n- **kafka**: an ApsaraMQ for Kafka instance or a self-managed Kafka cluster\n- **DataHub**: a DataHub project\n- **DB2**: a self-managed Db2 for LUW database\n- **as400**: an AS/400 server\n- **Tablestore**: a Tablestore instance\n**Note**: You must specify either this parameter or the **JobId** parameter."
      }
    },
    "SourceRegion": {
      "Type": "String",
      "Description": {
        "en": "The ID of the region in which the source instance resides.\n**Note**: You must specify either this parameter or the **JobId** parameter."
      }
    },
    "SyncArchitecture": {
      "Type": "String",
      "AllowedValues": [
        "oneway",
        "bidirectional"
      ],
      "Description": {
        "en": "The synchronization topology. Valid values:\n- **oneway** (default): one-way synchronization\n- **bidirectional**: two-way synchronization"
      }
    },
    "Type": {
      "Type": "String",
      "AllowedValues": [
        "MIGRATION",
        "SYNC",
        "SUBSCRIBE"
      ],
      "Description": {
        "en": "The type of the DTS instance. Valid values:\n- **MIGRATION**: data migration instance\n- **SYNC**: data synchronization instance\n- **SUBSCRIBE**: change tracking instance"
      }
    },
    "UsedTime": {
      "Type": "Number",
      "AllowedValues": [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9
      ],
      "Description": {
        "en": "The subscription duration.\n- If the **Period** parameter is set to **Month**, the valid values are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- If the **Period** parameter is set to **Year**, the valid values are 1, 2, 3, and 5.\n**Note**: This parameter is required and takes effect only if the **PayType** parameter is set to **PrePaid**. You can set the **Period** parameter to specify the unit of the subscription duration."
      }
    }
  },
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::DTS::Instance",
      "Properties": {
        "AutoPay": {
          "Ref": "AutoPay"
        },
        "AutoStart": {
          "Ref": "AutoStart"
        },
        "ComputeUnit": {
          "Ref": "ComputeUnit"
        },
        "DatabaseCount": {
          "Ref": "DatabaseCount"
        },
        "DestinationEndpointEngineName": {
          "Ref": "DestinationEndpointEngineName"
        },
        "DestinationRegion": {
          "Ref": "DestinationRegion"
        },
        "Du": {
          "Ref": "Du"
        },
        "FeeType": {
          "Ref": "FeeType"
        },
        "InsightModule": {
          "Ref": "InsightModule"
        },
        "InstanceClass": {
          "Ref": "InstanceClass"
        },
        "JobId": {
          "Ref": "JobId"
        },
        "MaxDu": {
          "Ref": "MaxDu"
        },
        "MinDu": {
          "Ref": "MinDu"
        },
        "PayType": {
          "Ref": "PayType"
        },
        "Period": {
          "Ref": "Period"
        },
        "ResourceGroupId": {
          "Ref": "ResourceGroupId"
        },
        "SourceEndpointEngineName": {
          "Ref": "SourceEndpointEngineName"
        },
        "SourceRegion": {
          "Ref": "SourceRegion"
        },
        "SyncArchitecture": {
          "Ref": "SyncArchitecture"
        },
        "Type": {
          "Ref": "Type"
        },
        "UsedTime": {
          "Ref": "UsedTime"
        }
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": "The ID of the DTS instance.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "InstanceId"
        ]
      }
    },
    "JobId": {
      "Description": "The ID of the task.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "JobId"
        ]
      }
    }
  }
}