All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::DTS::Instance

更新時間:Mar 28, 2026

Use the ALIYUN::DTS::Instance resource to create a new DTS instance.

Note

Use the new resource types to replace the previous ones.

ALIYUN::DTS::MigrationJob (previous) = ALIYUN::DTS::MigrationJob2 (new) + ALIYUN::DTS::Instance (new)

ALIYUN::DTS::SynchronizationJob (previous) = ALIYUN::DTS::SynchronizationJob2 (new) + ALIYUN::DTS::Instance (new)

ALIYUN::DTS::SubscriptionInstance (previous) = ALIYUN::DTS::SubscriptionJob2 (new) + ALIYUN::DTS::Instance (new)

Syntax

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

Properties

Property

Type

Required

Update allowed

Description

Constraints

ResourceGroupId

String

No

No

The ID of the resource group.

None

FeeType

String

No

No

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.

ComputeUnit

Integer

No

No

The specifications for the extract, transform, and load (ETL) task.

The unit is compute units (CUs). One CU is equivalent to 1 vCPU and 4 GB of memory. The value must be an integer greater than or equal to 2.

Note

If you specify this parameter, you can configure an ETL task in DAG mode to perform data cleansing and transformation.

Period

String

No

Yes

The unit of the subscription period.

Valid values:

  • Year

  • Month

Note

This parameter is required and takes effect only when the PayType parameter is set to PrePaid.

DestinationRegion

String

No

No

The region of the destination instance.

For more information, see List of supported regions.

Note

You must specify either this parameter or JobId.

InstanceClass

String

Yes

Yes

The instance class of a data migration or data synchronization instance.

Valid values:

  • 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

For more information about the performance of each instance class, see Specifications of data migration instances and Specifications of data synchronization instances.

PayType

String

Yes

Yes

The billing method.

Valid values:

  • PrePaid: subscription

  • PostPaid: pay-as-you-go

Type

String

Yes

No

The type of the DTS instance.

Valid values:

  • MIGRATION: data migration instance

  • SYNC: data synchronization instance

  • SUBSCRIBE: change tracking instance

AutoPay

Boolean

No

No

Indicates whether to enable auto-renewal for the subscription instance.

Valid values:

  • true: Auto-renewal is enabled.

  • false (default): Auto-renewal is disabled.

DestinationEndpointEngineName

String

No

No

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

For information about the supported source and destination databases, see Overview of data synchronization scenarios and Overview of data migration scenarios.

Note

You must specify either this parameter or JobId.

SourceEndpointEngineName

String

No

No

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

For a list of supported source and destination databases, see Synchronization Solution Overview and Migration Solution Overview.

InsightModule

Boolean

No

No

Indicates whether to enable the insight module.

None

SourceRegion

String

No

No

The region of the source instance.

For more information, see List of supported regions.

Note

You must specify either this parameter or JobId.

Du

Integer

No

No

The number of DTS units (DUs) for a DTS task that runs on a DTS dedicated cluster.

The value must be an integer from 1 to 100.

Note

The value must be within the range of the number of DUs available for the DTS dedicated cluster.

For more information about DTS dedicated clusters, see What is a DTS dedicated cluster?.

DatabaseCount

Integer

No

No

The number of private custom ApsaraDB RDS instances that constitute a PolarDB-X 1.0 instance.

Default value: 1.

Note

You must specify this parameter only if the SourceEndpointEngineName parameter is set to drds.

UsedTime

Integer

No

Yes

The subscription duration.

Valid values:

  • 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 when the PayType parameter is set to PrePaid.

You can set the Period parameter to specify the unit of the subscription duration.

AutoStart

Boolean

No

No

Indicates whether to automatically start the task after the instance is created.

Valid values:

  • true: The task is automatically started.

  • false (default): The task is not automatically started.

JobId

String

No

No

The ID of the task.

If you specify this parameter, you do not need to specify SourceRegion, DestinationRegion, SourceEndpointEngineName, or DestinationEndpointEngineName. The configuration from the specified job is used, and JobId takes precedence over the other parameters.

SyncArchitecture

String

No

No

The synchronization topology.

Valid values:

  • oneway (default): one-way synchronization

  • bidirectional: two-way synchronization

MaxDu

Integer

No

No

The maximum number of DUs for the Serverless instance.

This parameter applies only to Serverless instances.

MinDu

Integer

No

No

The minimum number of DUs for the Serverless instance.

This parameter applies only to Serverless instances.

Return values

Fn::GetAtt

  • InstanceId: The ID of the DTS instance.

  • JobId: The ID of the task.

Examples

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