ALIYUN::DTS::Instance

ALIYUN::DTS::Instance类型用于购买DTS实例(新版)。

说明

建议使用新版资源替换旧版资源使用。

ALIYUN::DTS::MigrationJob(旧) = ALIYUN::DTS::MigrationJob2(新)+ ALIYUN::DTS::Instance(新)

ALIYUN::DTS::SynchronizationJob(旧) = ALIYUN::DTS::SynchronizationJob2(新)+ ALIYUN::DTS::Instance(新)

ALIYUN::DTS::SubscriptionInstance(旧) = ALIYUN::DTS::SubscriptionJob2(新)+ ALIYUN::DTS::Instance(新)

语法

{
  "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,
    "UsedTime": Integer,
    "AutoStart": Boolean,
    "JobId": String,
    "SyncArchitecture": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

ResourceGroupId

String

资源组ID。

FeeType

String

订阅计费类型。

取值:

  • ONLY_CONFIGURATION_FEE:仅收取配置费,免收数据流量费;

  • CONFIGURATION_FEE_AND_DATA_FEE:将额外收取数据流量费用。

ComputeUnit

Integer

ETL的规格。

单位为计算单元ComputeUnit(CU),1CU=1vCPU​+4 GB内存。取值范围为大于等于2的整数。

说明

传入该参数,开通配置流程通过DAG模式配置ETL任务,进行数据清洗和转换。

Period

String

预付费实例的计费方式。

取值:

  • Year

  • Month

说明

PayTypePrePaid(预付费)时,该参数才有效且必须传入。

DestinationRegion

String

目标实例区域。

更多信息,请参见支持的地域列表

说明

本参数或JobId必须传入其中之一。

InstanceClass

String

迁移或同步实例的规格。

取值:

  • 迁移实例支持的规格:xxlargexlargelargemediumsmall

  • 同步实例支持的规格:largemediumsmallmicro

说明

不同规格对应的性能说明,请参见数据迁移链路规格说明数据同步链路规格说明

SourceEndpointEngineName

String

源实例数据库引擎类型。

取值:

  • MySQL(默认值):MySQL数据库(包括RDS MySQL和自建MySQL)。

  • PolarDB:PolarDB MySQL。

  • polardb_o:PolarDB O引擎。

  • polardb_pg:PolarDB PostgreSQL。

  • Redis:Redis数据库(包括云数据库 Tair(兼容 Redis)和自建Redis)。

  • DRDS:云原生分布式数据库PolarDB-X 1.0和2.0。

  • PostgreSQL:自建PostgreSQL。

  • odps:MaxCompute。

  • oracle:自建Oracle。

  • mongodb:MongoDB数据库(包括云数据库MongoDB和自建MongoDB)。

  • tidb:TiDB数据库。

  • ADS:云原生数仓 AnalyticDB MySQL 2.0。

  • ADB30:云原生数仓 AnalyticDB MySQL 3.0。

  • Greenplum:云原生数仓 AnalyticDB PostgreSQL。

  • MSSQL:SQL Server数据库(包括RDS SQL Server和自建SQL Server)。

  • kafka:Kafka数据库(包括消息队列Kafka版和自建Kafka)。

  • DataHub:阿里云流式数据服务DataHub。

  • DB2:自建DB2 LUW。

  • as400:AS/400。

  • Tablestore:表格存储Tablestore。

说明

本参数或JobId必须传入其中之一。

关于支持的源库和目标库对应情况,请参见支持的同步方案概览,迁移方案概览

PayType

String

付费类型。

取值:

  • PrePaid:预付费。

  • PostPaid:后付费。

AutoPay

Boolean

到期是否自动续费。

取值:

  • true:到期自动续费。

  • false(默认值):到期不自动续费。

DestinationEndpointEngineName

String

目标数据库引擎类型。

取值:

  • MySQL(默认值):MySQL数据库(包括RDS MySQL和自建MySQL)。

  • PolarDB:PolarDB MySQL。

  • polardb_o:PolarDB O引擎。

  • polardb_pg:PolarDB PostgreSQL。

  • Redis:Redis数据库(包括云数据库 Tair(兼容 Redis)和自建Redis)。

  • DRDS:云原生分布式数据库PolarDB-X 1.0和2.0。

  • PostgreSQL:自建PostgreSQL。

  • odps:MaxCompute。

  • oracle:自建Oracle。

  • mongodb:MongoDB数据库(包括云数据库MongoDB和自建MongoDB)。

  • tidb:TiDB数据库。

  • ADS:云原生数仓 AnalyticDB MySQL 2.0。

  • ADB30:云原生数仓 AnalyticDB MySQL 3.0。

  • Greenplum:云原生数仓 AnalyticDB PostgreSQL。

  • MSSQL:SQL Server数据库(包括RDS SQL Server和自建SQL Server)。

  • kafka:Kafka数据库(包括消息队列Kafka版和自建Kafka)。

  • DataHub:阿里云流式数据服务DataHub。

  • DB2:自建DB2 LUW。

  • as400:AS/400。

  • Tablestore:表格存储Tablestore。

关于支持的源库和目标库对应情况,请参见支持的同步方案概览迁移方案概览

说明

本参数或JobId必须传入其中之一。

SourceRegion

String

源实例区域。

更多信息,请参见支持的地域列表

说明

本参数或JobId必须传入其中之一。

Du

Integer

分配指定数量的DU资源给DTS专属集群上的DTS任务。

取值范围:1~100

说明

传入的值必须在DTS专属集群可用DU数范围内。

关于DTS专属集群的信息,请参见什么是DTS专属集群

Type

String

实例类型。

取值:

  • MIGRATION:迁移。

  • SYNC:同步。

  • SUBSCRIBE:订阅。

DatabaseCount

Integer

PolarDB-X下的私有定制RDS实例的数量。

默认值为1

说明

SourceEndpointEngineNamedrds时需要传入该参数。

UsedTime

Integer

预付费实例购买时长。

取值:

  • PeriodMonth时,取值为:1、2、3、4、5、6、7、8、9。

  • PeriodYear时,取值为:1、2、3、5。

说明

PayTypePrePaid(预付费)时,该参数才有效且必须传入。

预付费实例的计费方式,您可在参数Period中进行设置。

AutoStart

Boolean

购买完成后是否自动启动任务。

取值:

  • true:自动启动任务。

  • false(默认值):不自动启动任务。

JobId

String

任务ID。

不需要指定SourceRegion、DestinationRegion、SourceEndpointEngineName、DestinationEndpointEngineName参数。 即使指定了这些参数,JobId参数的值也优先。

SyncArchitecture

String

同步拓扑。

取值:

  • oneway(默认值):单向同步。

  • bidirectional:双向同步。

返回值

Fn::GetAtt

  • InstanceId:实例ID。

  • JobId:任务ID。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      AutoPay:
        Description:
          en: 'Specifies whether to automatically renew the DTS instance when it expires.
            Valid values:
    
            - **false**: does not automatically renew the DTS instance when it expires.
            This is the default value.
    
            - **true**: automatically renews the DTS instance when it expires.'
        Type: Boolean
      AutoStart:
        Description:
          en: 'Specifies whether to automatically start the task after the DTS instance
            is purchased. Valid values:
    
            - **false**: does not automatically start the task after the DTS instance
            is purchased. This is the default value.
    
            - **true**: automatically starts the task after the DTS instance is purchased.'
        Type: Boolean
      ComputeUnit:
        Description:
          en: The specifications of the extract, transform, and load (ETL) instance. The
            unit is compute unit (CU). One CU is equal to 1 vCPU and 4 GB of memory. The
            value of this parameter must be an integer greater than or equal to 2.
        Type: Number
      DatabaseCount:
        Description:
          en: 'The number of private custom ApsaraDB RDS instances in a PolarDB-X instance.
            Default value: **1**.
    
            **Note**: You must specify this parameter only if the **SourceEndpointEngineName**
            parameter is set to **drds**.'
        Type: Number
      DestinationEndpointEngineName:
        Description:
          en: 'The database engine of the destination instance. Valid values:
    
            - **MySQL**: ApsaraDB RDS for MySQL instance or self-managed MySQL database
    
            - **PolarDB**: PolarDB for MySQL cluster
    
            - **polardb_o**: PolarDB for Oracle cluster
    
            - **polardb_pg**: PolarDB for PostgreSQL cluster
    
            - **Redis**: ApsaraDB for Redis instance or self-managed Redis database
    
            - **DRDS**: PolarDB-X 1.0 or PolarDB-X 2.0 instance
    
            - **PostgreSQL**: self-managed PostgreSQL database
    
            - **odps**: MaxCompute project
    
            - **oracle**: self-managed Oracle database
    
            - **mongodb**: ApsaraDB for MongoDB instance or self-managed MongoDB database
    
            - **tidb**: TiDB database
    
            - **ADS**: AnalyticDB for MySQL V2.0 cluster
    
            - **ADB30**: AnalyticDB for MySQL V3.0 cluster
    
            - **Greenplum**: AnalyticDB for PostgreSQL instance
    
            - **MSSQL**: ApsaraDB RDS for SQL Server instance or self-managed SQL Server
            database
    
            - **kafka**: Message Queue for Apache Kafka instance or self-managed Kafka
            cluster
    
            - **DataHub**: DataHub project
    
            - **DB2**: self-managed Db2 for LUW database
    
            - **as400**: AS/400
    
            - **Tablestore**: Tablestore instance
    
            **Note**: The default value is **MySQL**. You must specify one of this parameter
            and the **JobId** parameter.'
        Type: String
      DestinationRegion:
        Description:
          en: 'The ID of the region in which the destination instance resides.
    
            **Note**: You must specify one of this parameter and the **JobId** parameter.'
        Type: String
      Du:
        Description:
          en: 'The number of DTS units (DUs) that are assigned to a DTS task that is run
            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.'
        MaxValue: 100
        MinValue: 1
        Type: Number
      FeeType:
        Description:
          en: "The billing type for a change tracking instance. Valid values: ONLY_CONFIGURATION_FEE\
            \ and CONFIGURATION_FEE_AND_DATA_FEE. \n- **ONLY_CONFIGURATION_FEE**: charges\
            \ only configuration fees. \n- **CONFIGURATION_FEE_AND_DATA_FEE**: charges\
            \ configuration fees and data traffic fees."
        Type: String
      InstanceClass:
        AllowedValues:
        - xxlarge
        - xlarge
        - large
        - medium
        - small
        - micro
        Description:
          en: 'The instance class.
    
            - DTS supports the following instance classes for a data migration instance:
            **xxlarge**, **xlarge**, **large**, **medium**, and **small**.
    
            - DTS supports the following instance classes for a data synchronization instance:
            **large**, **medium**, **small**, and **micro**.
    
            **Note**: Although the instance specification supports modification after
            creation, the downgrade instance feature is currently in canary release and
            available only for specific users.'
        Type: String
      JobId:
        Description:
          en: 'The ID of the task.
    
            **Note**: If this parameter is specified, you do not need to specify the SourceRegion,
            DestinationRegion, SourceEndpointEngineName, or DestinationEndpointEngineName
            parameter. Even if these parameters are specified, the value of the JobId
            parameter takes precedence.'
        Type: String
      PayType:
        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'
        Type: String
      Period:
        AllowedValues:
        - Month
        - Year
        Description:
          en: 'The unit of the subscription duration. Valid values: **Year** and **Month**.
    
            **Note**: You must specify this parameter only if the **PayType** parameter
            is set to **PrePaid**.'
        Type: String
      ResourceGroupId:
        Description:
          en: The ID of the resource group.
        Type: String
      SourceEndpointEngineName:
        Description:
          en: 'The database engine of the source instance. Valid values:
    
            - **MySQL**: ApsaraDB RDS for MySQL instance or self-managed MySQL database
    
            - **PolarDB**: PolarDB for MySQL cluster
    
            - **polardb_o**: PolarDB for Oracle cluster
    
            - **polardb_pg**: PolarDB for PostgreSQL cluster
    
            - **Redis**: ApsaraDB for Redis instance or self-managed Redis database
    
            - **DRDS**: PolarDB-X 1.0 or PolarDB-X 2.0 instance
    
            - **PostgreSQL**: self-managed PostgreSQL database
    
            - **odps**: MaxCompute project
    
            - **oracle**: self-managed Oracle database
    
            - **mongodb**: ApsaraDB for MongoDB instance or self-managed MongoDB database
    
            - **tidb**: TiDB database
    
            - **ADS**: AnalyticDB for MySQL V2.0 cluster
    
            - **ADB30**: AnalyticDB for MySQL V3.0 cluster
    
            - **Greenplum**: AnalyticDB for PostgreSQL instance
    
            - **MSSQL**: ApsaraDB RDS for SQL Server instance or self-managed SQL Server
            database
    
            - **kafka**: Message Queue for Apache Kafka instance or self-managed Kafka
            cluster
    
            - **DataHub**: DataHub project
    
            - **DB2**: self-managed Db2 for LUW database
    
            - **as400**: AS/400
    
            - **Tablestore**: Tablestore instance
    
            **Note**: The default value is **MySQL**. You must specify one of this parameter
            and the **JobId** parameter.'
        Type: String
      SourceRegion:
        Description:
          en: 'The ID of the region in which the source instance resides.
    
            **Note**: You must specify one of this parameter and the **JobId** parameter.'
        Type: String
      SyncArchitecture:
        AllowedValues:
        - oneway
        - bidirectional
        Description:
          en: 'The synchronization topology. Valid values:
    
            - **oneway**: one-way synchronization. This is the default value.
    
            - **bidirectional**: two-way synchronization.'
        Type: String
      Type:
        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'
        Type: String
      UsedTime:
        AllowedValues:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        Description:
          en: 'The subscription duration.
    
            - Valid values if the **Period** parameter is set to **Month**: 1, 2, 3, 4,
            5, 6, 7, 8, and 9.
    
            - Valid values if the **Period** parameter is set to **Year**: 1, 2, 3, and
            5.
    
            **Note**: You must specify this parameter only if the **PayType** parameter
            is set to **PrePaid**. You can set the **Period** parameter to specify the
            unit of the subscription duration.'
        Type: Number
    Resources:
      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
          InstanceClass:
            Ref: InstanceClass
          JobId:
            Ref: JobId
          PayType:
            Ref: PayType
          Period:
            Ref: Period
          ResourceGroupId:
            Ref: ResourceGroupId
          SourceEndpointEngineName:
            Ref: SourceEndpointEngineName
          SourceRegion:
            Ref: SourceRegion
          SyncArchitecture:
            Ref: SyncArchitecture
          Type:
            Ref: Type
          UsedTime:
            Ref: UsedTime
        Type: ALIYUN::DTS::Instance
    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
                            
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "ResourceGroupId": {
          "Type": "String",
          "Description": {
            "en": "The ID of the resource group."
          }
        },
        "FeeType": {
          "Type": "String",
          "Description": {
            "en": "The billing type for a change tracking instance. Valid values: ONLY_CONFIGURATION_FEE and CONFIGURATION_FEE_AND_DATA_FEE. \n- **ONLY_CONFIGURATION_FEE**: charges only configuration fees. \n- **CONFIGURATION_FEE_AND_DATA_FEE**: charges configuration fees and data traffic fees."
          }
        },
        "ComputeUnit": {
          "Type": "Number",
          "Description": {
            "en": "The specifications of the extract, transform, and load (ETL) instance. The unit is compute unit (CU). One CU is equal to 1 vCPU and 4 GB of memory. The value of this parameter must be an integer greater than or equal to 2."
          }
        },
        "Period": {
          "Type": "String",
          "Description": {
            "en": "The unit of the subscription duration. Valid values: **Year** and **Month**.\n**Note**: You must specify this parameter only if the **PayType** parameter is set to **PrePaid**."
          },
          "AllowedValues": [
            "Month",
            "Year"
          ]
        },
        "DestinationRegion": {
          "Type": "String",
          "Description": {
            "en": "The ID of the region in which the destination instance resides.\n**Note**: You must specify one of this parameter and the **JobId** parameter."
          }
        },
        "InstanceClass": {
          "Type": "String",
          "Description": {
            "en": "The instance class.\n- DTS supports the following instance classes for a data migration instance: **xxlarge**, **xlarge**, **large**, **medium**, and **small**.\n- DTS supports the following instance classes for a data synchronization instance: **large**, **medium**, **small**, and **micro**.\n**Note**: Although the instance specification supports modification after creation, the downgrade instance feature is currently in canary release and available only for specific users."
          },
          "AllowedValues": [
            "xxlarge",
            "xlarge",
            "large",
            "medium",
            "small",
            "micro"
          ]
        },
        "SourceEndpointEngineName": {
          "Type": "String",
          "Description": {
            "en": "The database engine of the source instance. Valid values:\n- **MySQL**: ApsaraDB RDS for MySQL instance or self-managed MySQL database\n- **PolarDB**: PolarDB for MySQL cluster\n- **polardb_o**: PolarDB for Oracle cluster\n- **polardb_pg**: PolarDB for PostgreSQL cluster\n- **Redis**: ApsaraDB for Redis instance or self-managed Redis database\n- **DRDS**: PolarDB-X 1.0 or PolarDB-X 2.0 instance\n- **PostgreSQL**: self-managed PostgreSQL database\n- **odps**: MaxCompute project\n- **oracle**: self-managed Oracle database\n- **mongodb**: ApsaraDB for MongoDB instance or self-managed MongoDB database\n- **tidb**: TiDB database\n- **ADS**: AnalyticDB for MySQL V2.0 cluster\n- **ADB30**: AnalyticDB for MySQL V3.0 cluster\n- **Greenplum**: AnalyticDB for PostgreSQL instance\n- **MSSQL**: ApsaraDB RDS for SQL Server instance or self-managed SQL Server database\n- **kafka**: Message Queue for Apache Kafka instance or self-managed Kafka cluster\n- **DataHub**: DataHub project\n- **DB2**: self-managed Db2 for LUW database\n- **as400**: AS/400\n- **Tablestore**: Tablestore instance\n**Note**: The default value is **MySQL**. You must specify one of this parameter and the **JobId** parameter."
          }
        },
        "AutoPay": {
          "Type": "Boolean",
          "Description": {
            "en": "Specifies whether to automatically renew the DTS instance when it expires. Valid values:\n- **false**: does not automatically renew the DTS instance when it expires. This is the default value.\n- **true**: automatically renews the DTS instance when it expires."
          }
        },
        "PayType": {
          "Type": "String",
          "Description": {
            "en": "The billing method. Valid values:\n- **PrePaid**: subscription\n- **PostPaid**: pay-as-you-go"
          },
          "AllowedValues": [
            "PayAsYouGo",
            "PostPaid",
            "PayOnDemand",
            "Postpaid",
            "PostPay",
            "Postpay",
            "POSTPAY",
            "POST",
            "Subscription",
            "PrePaid",
            "Prepaid",
            "PrePay",
            "Prepay",
            "PREPAY",
            "PRE"
          ]
        },
        "DestinationEndpointEngineName": {
          "Type": "String",
          "Description": {
            "en": "The database engine of the destination instance. Valid values:\n- **MySQL**: ApsaraDB RDS for MySQL instance or self-managed MySQL database\n- **PolarDB**: PolarDB for MySQL cluster\n- **polardb_o**: PolarDB for Oracle cluster\n- **polardb_pg**: PolarDB for PostgreSQL cluster\n- **Redis**: ApsaraDB for Redis instance or self-managed Redis database\n- **DRDS**: PolarDB-X 1.0 or PolarDB-X 2.0 instance\n- **PostgreSQL**: self-managed PostgreSQL database\n- **odps**: MaxCompute project\n- **oracle**: self-managed Oracle database\n- **mongodb**: ApsaraDB for MongoDB instance or self-managed MongoDB database\n- **tidb**: TiDB database\n- **ADS**: AnalyticDB for MySQL V2.0 cluster\n- **ADB30**: AnalyticDB for MySQL V3.0 cluster\n- **Greenplum**: AnalyticDB for PostgreSQL instance\n- **MSSQL**: ApsaraDB RDS for SQL Server instance or self-managed SQL Server database\n- **kafka**: Message Queue for Apache Kafka instance or self-managed Kafka cluster\n- **DataHub**: DataHub project\n- **DB2**: self-managed Db2 for LUW database\n- **as400**: AS/400\n- **Tablestore**: Tablestore instance\n**Note**: The default value is **MySQL**. You must specify one of this parameter and the **JobId** parameter."
          }
        },
        "SourceRegion": {
          "Type": "String",
          "Description": {
            "en": "The ID of the region in which the source instance resides.\n**Note**: You must specify one of this parameter and the **JobId** parameter."
          }
        },
        "Du": {
          "Type": "Number",
          "Description": {
            "en": "The number of DTS units (DUs) that are assigned to a DTS task that is run 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."
          },
          "MinValue": 1,
          "MaxValue": 100
        },
        "Type": {
          "Type": "String",
          "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"
          },
          "AllowedValues": [
            "MIGRATION",
            "SYNC",
            "SUBSCRIBE"
          ]
        },
        "DatabaseCount": {
          "Type": "Number",
          "Description": {
            "en": "The number of private custom ApsaraDB RDS instances in a PolarDB-X instance. Default value: **1**.\n**Note**: You must specify this parameter only if the **SourceEndpointEngineName** parameter is set to **drds**."
          }
        },
        "UsedTime": {
          "Type": "Number",
          "Description": {
            "en": "The subscription duration.\n- Valid values if the **Period** parameter is set to **Month**: 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- Valid values if the **Period** parameter is set to **Year**: 1, 2, 3, and 5.\n**Note**: You must specify this parameter only if the **PayType** parameter is set to **PrePaid**. You can set the **Period** parameter to specify the unit of the subscription duration."
          },
          "AllowedValues": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9
          ]
        },
        "AutoStart": {
          "Type": "Boolean",
          "Description": {
            "en": "Specifies whether to automatically start the task after the DTS instance is purchased. Valid values:\n- **false**: does not automatically start the task after the DTS instance is purchased. This is the default value.\n- **true**: automatically starts the task after the DTS instance is purchased."
          }
        },
        "JobId": {
          "Type": "String",
          "Description": {
            "en": "The ID of the task.\n**Note**: If this parameter is specified, you do not need to specify the SourceRegion, DestinationRegion, SourceEndpointEngineName, or DestinationEndpointEngineName parameter. Even if these parameters are specified, the value of the JobId parameter takes precedence."
          }
        },
        "SyncArchitecture": {
          "Type": "String",
          "Description": {
            "en": "The synchronization topology. Valid values:\n- **oneway**: one-way synchronization. This is the default value.\n- **bidirectional**: two-way synchronization."
          },
          "AllowedValues": [
            "oneway",
            "bidirectional"
          ]
        }
      },
      "Resources": {
        "Instance": {
          "Type": "ALIYUN::DTS::Instance",
          "Properties": {
            "ResourceGroupId": {
              "Ref": "ResourceGroupId"
            },
            "FeeType": {
              "Ref": "FeeType"
            },
            "ComputeUnit": {
              "Ref": "ComputeUnit"
            },
            "Period": {
              "Ref": "Period"
            },
            "DestinationRegion": {
              "Ref": "DestinationRegion"
            },
            "InstanceClass": {
              "Ref": "InstanceClass"
            },
            "SourceEndpointEngineName": {
              "Ref": "SourceEndpointEngineName"
            },
            "AutoPay": {
              "Ref": "AutoPay"
            },
            "PayType": {
              "Ref": "PayType"
            },
            "DestinationEndpointEngineName": {
              "Ref": "DestinationEndpointEngineName"
            },
            "SourceRegion": {
              "Ref": "SourceRegion"
            },
            "Du": {
              "Ref": "Du"
            },
            "Type": {
              "Ref": "Type"
            },
            "DatabaseCount": {
              "Ref": "DatabaseCount"
            },
            "UsedTime": {
              "Ref": "UsedTime"
            },
            "AutoStart": {
              "Ref": "AutoStart"
            },
            "JobId": {
              "Ref": "JobId"
            },
            "SyncArchitecture": {
              "Ref": "SyncArchitecture"
            }
          }
        }
      },
      "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"
            ]
          }
        }
      }
    }