Todos los productos
Search
Centro de documentos

Resource Orchestration Service:ALIYUN::DTS::Instance

Última actualización: Sep 04, 2026

Crea una instancia de DTS para la migración de datos, la sincronización o el seguimiento de cambios.

Nota

Utilice los nuevos tipos de recursos para reemplazar a los anteriores.

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

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

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

Sintaxis

{
  "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
  }
}

Propiedades

Propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

ResourceGroupId

String

No

No

El ID del resource group.

Ninguna

FeeType

String

No

No

El tipo de facturación de la instancia de seguimiento de cambios.

Valores válidos:

  • ONLY_CONFIGURATION_FEE: cobra solo por la configuración y exime las tarifas de tráfico de datos.

  • CONFIGURATION_FEE_AND_DATA_FEE: cobra tanto por la configuración como por el tráfico de datos.

ComputeUnit

Integer

No

No

Las especificaciones de la tarea ETL.

La unidad es compute units (CUs). Una CU equivale a 1 vCPU y 4 GB de memoria. El valor debe ser un número entero mayor o igual a 2.

Nota

Si especifica este parámetro, puede configure an ETL task in DAG mode para limpiar y transformar datos.

Period

String

No

Sí

La unidad del periodo de suscripción.

Valores válidos:

  • Year

  • Month

Nota

Este parámetro es obligatorio y surte efecto únicamente cuando el parámetro PayType se establece en PrePaid.

DestinationRegion

String

No

No

La región de la instancia de destino.

Para obtener más información, consulte List of supported regions.

Nota

Debe especificar este parámetro o bien JobId.

InstanceClass

String

Sí

Sí

La clase de la instancia de migración o sincronización de datos.

Valores válidos:

  • Para una instancia de migración de datos, los valores válidos son xxlarge, xlarge, large, medium y small.

  • Para una instancia de sincronización de datos, los valores válidos son large, medium, small y micro.

Nota

Para obtener más información sobre el rendimiento de cada clase de instancia, consulte Specifications of data migration instances y Specifications of data synchronization instances.

PayType

String

Sí

Sí

El método de facturación.

Valores válidos:

  • PrePaid: suscripción

  • PostPaid: pay-as-you-go

Type

String

Sí

No

El tipo de instancia de DTS.

Valores válidos:

  • MIGRATION: instancia de migración de datos

  • SYNC: instancia de sincronización de datos

  • SUBSCRIBE: instancia de seguimiento de cambios

AutoPay

Boolean

No

No

Indica si se habilita la renovación automática para la instancia de suscripción.

Valores válidos:

  • true: la renovación automática está habilitada.

  • false (predeterminado): la renovación automática está deshabilitada.

DestinationEndpointEngineName

String

No

No

El motor de base de datos de la instancia de destino.

Valores válidos:

  • MySQL (predeterminado): una instancia de ApsaraDB RDS for MySQL o una base de datos MySQL autogestionada

  • PolarDB: un clúster de PolarDB for MySQL

  • polardb_o: un clúster de PolarDB for Oracle

  • polardb_pg: un clúster de PolarDB for PostgreSQL

  • Redis: una instancia de Tair o una base de datos Redis autogestionada

  • DRDS: una instancia de PolarDB-X 1.0 o 2.0

  • PostgreSQL: una base de datos PostgreSQL autogestionada

  • odps: un proyecto de MaxCompute

  • oracle: una base de datos Oracle autogestionada

  • mongodb: una instancia de ApsaraDB for MongoDB o una base de datos MongoDB autogestionada

  • tidb: una base de datos TiDB

  • ADS: un clúster de AnalyticDB for MySQL 2.0

  • ADB30: un clúster de AnalyticDB for MySQL 3.0

  • Greenplum: una instancia de AnalyticDB for PostgreSQL

  • MSSQL: una instancia de ApsaraDB RDS for SQL Server o una base de datos SQL Server autogestionada

  • kafka: una instancia de ApsaraMQ for Kafka o un clúster de Kafka autogestionado

  • DataHub: un proyecto de DataHub

  • DB2: una base de datos Db2 for LUW autogestionada

  • as400: un servidor AS/400

  • Tablestore: una instancia de Tablestore

Para consultar las bases de datos de origen y destino compatibles, consulte Overview of data synchronization scenarios y Overview of data migration scenarios.

Nota

Debe especificar este parámetro o bien JobId.

SourceEndpointEngineName

String

No

No

El motor de base de datos de la instancia de origen.

Valores válidos:

  • MySQL (predeterminado): una instancia de ApsaraDB RDS for MySQL o una base de datos MySQL autogestionada

  • PolarDB: un clúster de PolarDB for MySQL

  • polardb_o: un clúster de PolarDB for Oracle

  • polardb_pg: un clúster de PolarDB for PostgreSQL

  • Redis: una instancia de Tair o una base de datos Redis autogestionada

  • DRDS: una instancia de PolarDB-X 1.0 o 2.0

  • PostgreSQL: una base de datos PostgreSQL autogestionada

  • odps: un proyecto de MaxCompute

  • oracle: una base de datos Oracle autogestionada

  • mongodb: una instancia de ApsaraDB for MongoDB o una base de datos MongoDB autogestionada

  • tidb: una base de datos TiDB

  • ADS: un clúster de AnalyticDB for MySQL 2.0

  • ADB30: un clúster de AnalyticDB for MySQL 3.0

  • Greenplum: una instancia de AnalyticDB for PostgreSQL

  • MSSQL: una instancia de ApsaraDB RDS for SQL Server o una base de datos SQL Server autogestionada

  • kafka: una instancia de ApsaraMQ for Kafka o un clúster de Kafka autogestionado

  • DataHub: un proyecto de DataHub

  • DB2: una base de datos Db2 for LUW autogestionada

  • as400: un servidor AS/400

  • Tablestore: una instancia de Tablestore

Nota

Debe especificar este parámetro o bien JobId.

Para consultar las bases de datos de origen y destino compatibles, consulte Synchronization Solution Overview y Migration Solution Overview.

InsightModule

Boolean

No

No

Indica si se habilita el módulo de insight.

Ninguna

SourceRegion

String

No

No

La región de la instancia de origen.

Para obtener más información, consulte List of supported regions.

Nota

Debe especificar este parámetro o bien JobId.

Du

Integer

No

No

El número de unidades DTS (DUs) asignadas a una tarea de DTS en un clúster dedicado.

El valor debe ser un número entero entre 1 y 100.

Nota

El valor debe estar dentro del rango de DUs disponibles para el clúster dedicado de DTS.

Para obtener más información, consulte What is a DTS dedicated cluster?.

DatabaseCount

Integer

No

No

El número de instancias privadas personalizadas de ApsaraDB RDS en una instancia de PolarDB-X 1.0.

Valor predeterminado: 1.

Nota

Especifique este parámetro únicamente si el parámetro SourceEndpointEngineName se establece en drds.

UsedTime

Integer

No

Sí

La duración de la suscripción.

Valores válidos:

  • Si el parámetro Period se establece en Month, los valores válidos son 1, 2, 3, 4, 5, 6, 7, 8 y 9.

  • Si el parámetro Period se establece en Year, los valores válidos son 1, 2, 3 y 5.

Nota

Este parámetro es obligatorio y surte efecto únicamente cuando el parámetro PayType se establece en PrePaid.

Establezca el parámetro Period para especificar la unidad de la duración de la suscripción.

AutoStart

Boolean

No

No

Indica si se inicia automáticamente la tarea después de crear la instancia.

Valores válidos:

  • true: la tarea se inicia automáticamente.

  • false (predeterminado): la tarea no se inicia automáticamente.

JobId

String

No

No

El ID de la tarea.

Si especifica este parámetro, no necesita especificar SourceRegion, DestinationRegion, SourceEndpointEngineName ni DestinationEndpointEngineName. Se utiliza la configuración de la tarea especificada, y JobId tiene prioridad sobre estos parámetros.

SyncArchitecture

String

No

No

La topología de sincronización.

Valores válidos:

  • oneway (predeterminado): sincronización unidireccional

  • bidirectional: sincronización bidireccional

MaxDu

Integer

No

No

El número máximo de DUs para la instancia Serverless.

Este parámetro aplica únicamente a instancias Serverless.

MinDu

Integer

No

No

El número mínimo de DUs para la instancia Serverless.

Este parámetro aplica únicamente a instancias Serverless.

Valores de retorno

Fn::GetAtt

  • InstanceId: el ID de la instancia de DTS.

  • JobId: el ID de la tarea.

Ejemplos

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"
        ]
      }
    }
  }
}