All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::DTS::SubscriptionJob2

Last Updated:Aug 12, 2024

ALIYUN::DTS::SubscriptionJob2 is used to configure a change tracking task.

Syntax

{
  "Type": "ALIYUN::DTS::SubscriptionJob2",
  "Properties": {
    "Status": String,
    "Reserve": Map,
    "DelayPhone": String,
    "DedicatedClusterId": String,
    "ErrorNotice": Boolean,
    "DtsJobName": String,
    "DelayRuleTime": Integer,
    "DtsInstanceId": String,
    "DbList": Map,
    "DtsBisLabel": String,
    "SubscriptionDataType": Map,
    "Checkpoint": String,
    "DelayNotice": Boolean,
    "DtsJobId": String,
    "SubscriptionInstance": Map,
    "SourceEndpoint": Map,
    "ErrorPhone": String
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

Status

String

No

Yes

The status of the change tracking task.

Valid values:

  • Synchronizing

  • Suspending

  • Stopping

Reserve

Map

No

No

The reserved property of Data Transmission Service (DTS).

You can use this property to add more configurations of the source or destination instance to DTS tasks. For example, you can specify the data storage format of a destination ApsaraMQ for Kafka database and the ID of a destination Cloud Enterprise Network (CEN) instance.  

DelayPhone

String

No

No

The mobile numbers to which latency-related alerts are sent.

Separate multiple mobile numbers with commas (,).

Note
  • This property can be used only for users of the China site (aliyun.com). Only mobile numbers in the Chinese mainland are supported. You can specify up to 10 mobile numbers.

  • Users of the international site (alibabacloud.com) cannot receive alerts by using mobile numbers, but can configure alert rules for DTS tasks in the CloudMonitor console. For more information, see Configure alert rules for DTS tasks in the CloudMonitor console.

DedicatedClusterId

String

No

No

The ID of the DTS dedicated cluster.

You can schedule the change tracking task to the DTS dedicated cluster.

ErrorNotice

Boolean

No

No

Specifies whether to monitor the task status.

Valid values:

  • true

  • false

DtsJobName

String

Yes

Yes

The name of the change tracking task.

We recommend that you specify a descriptive name for easy identification. You do not need to use a unique name.

DelayRuleTime

Integer

No

No

The threshold for triggering latency-related alerts.

Unit: seconds. The value must be an integer. You can set the threshold based on your business requirements. To prevent jitters caused by network and database overloads, we recommend that you set the threshold to more than 10 seconds.

Note

You must specify this property when DelayNotice is set to true.

DtsInstanceId

String

No

No

The ID of the change tracking instance.

None.

DbList

Map

Yes

Yes

The objects whose changes you want to track.

The value is a JSON string. For more information, see Objects of DTS tasks.

DtsBisLabel

String

No

No

The environment tag of the DTS instance.

Valid values:

  • normal

  • online

SubscriptionDataType

Map

No

Yes

The type of the data for which you want to track changes.

For more information, see SubscriptionDataType properties.

Checkpoint

String

No

No

The start offset of incremental data migration or incremental data synchronization.

This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC. Unit: seconds.

DelayNotice

Boolean

No

No

Specifies whether to monitor the task latency.

Valid values:

  • true

  • false

DtsJobId

String

No

No

The ID of the change tracking task.

None.

SubscriptionInstance

Map

Yes

No

The configurations of the change tracking instance.

For more information, see SubscriptionInstance properties.

SourceEndpoint

Map

Yes

Yes

The configurations of the source instance.

For more information, see SourceEndpoint properties.

ErrorPhone

String

No

No

The mobile numbers to which status-related alerts are sent.

Separate multiple mobile numbers with commas (,).

Note
  • This property can be used only for users of the China site (aliyun.com). Only mobile numbers in the Chinese mainland are supported. You can specify up to 10 mobile numbers.

  • Users of the international site (alibabacloud.com) cannot receive alerts by using mobile numbers, but can configure alert rules for DTS tasks in the CloudMonitor console. For more information, see Configure alert rules for DTS tasks in the CloudMonitor console.

SubscriptionDataType syntax

"SubscriptionDataType": {
  "DML": Boolean,
  "DDL": Boolean
}

SubscriptionDataType properties

Property

Type

Required

Editable

Description

Constraint

DML

Boolean

No

Yes

Specifies whether to track changes of data manipulation language (DML) statements.

Valid values:

  • true (default)

  • false

DDL

Boolean

No

Yes

Specifies whether to track changes of data definition language (DDL) statements.

Valid values:

  • true (default)

  • false

SubscriptionInstance syntax

"SubscriptionInstance": {
  "VPCId": String,
  "NetworkType": String,
  "VSwitchId": String
}

SubscriptionInstance properties

Property

Type

Required

Editable

Description

Constraint

VPCId

String

No

No

The virtual private cloud (VPC) ID of the change tracking instance.

You must specify this property only when NetworkType is set to VPC.

NetworkType

String

Yes

No

The network type of the change tracking instance.

You can set the value of this property to VPC.

  • If you specify NetworkType, the new version of the change tracking instance is used. You must also specify SubscriptionInstance.VPCId and SubscriptionInstance.VSwitchID. If you do not specify NetworkType, the previous version of the change tracking instance is used.

  • The previous version of the change tracking instance supports self-managed MySQL databases, ApsaraDB RDS for MySQL instances, and PolarDB for Xscale (PolarDB-X) instances. The new version of the change tracking instance supports self-managed MySQL databases, ApsaraDB RDS for MySQL instances, PolarDB for MySQL clusters, and Oracle databases.

VSwitchId

String

No

No

The vSwitch ID of the change tracking instance.

You must specify this property only when NetworkType is set to VPC.

SourceEndpoint syntax

"SourceEndpoint": {
  "OracleSID": String,
  "UserName": String,
  "InstanceID": String,
  "IP": String,
  "Port": String,
  "VSwitchID": String,
  "DatabaseName": String,
  "EngineName": String,
  "Role": String,
  "OwnerID": String,
  "Region": String,
  "InstanceType": String,
  "Password": String
}

SourceEndpoint properties

Property

Type

Required

Editable

Description

Constraint

OracleSID

String

No

No

The system ID (SID) of the Oracle database.

You must specify this property only when SourceEndpoint.EngineName is set to Oracle and the Oracle database is not deployed in the Real Application Clusters (RAC) architecture.

UserName

String

No

No

The database account of the source database.

The permissions that are required for the database account vary based on migration scenarios. For more information, see Overview of data migration scenarios.

InstanceID

String

No

No

The ID of the instance that hosts the source database.

Valid values:

  • You must specify this property only when SourceEndpoint.InstanceType is set to RDS, ECS, Express, MongoDB, PolarDB, or PolarDB_o. For example, if SourceEndpoint.InstanceType is set to ECS, you must set SourceEndpoint.InstanceID to the ID of an Elastic Compute Service (ECS) instance.

  • If SourceEndpoint.InstanceType is set to Express, you must set SourceEndpoint.InstanceID to the ID of a VPC.

IP

String

No

No

The IP address of the source database.

You must specify this property only when SourceEndpoint.InstanceType is set to LocalInstance or Express.

Port

String

No

No

The service port of the source database.

You must specify this property only when SourceEndpoint.InstanceType is set to ECS, LocalInstance, or Express.

VSwitchID

String

No

No

The ID of the vSwitch that you want to use for the data transmission link.  

None.

DatabaseName

String

No

No

The name of the source database or authentication database.

  • You must specify this property only when SourceEndpoint.EngineName is set to PostgreSQL or MongoDB.

  • If SourceEndpoint.EngineName is set to PostgreSQL, you must set SourceEndpoint.DatabaseName to the name of the source database. If SourceEndpoint.EngineName is set to MongoDB, you must set SourceEndpoint.DatabaseName to the name of the authentication database.

EngineName

String

No

No

The engine type of the source database.

Valid values:

  • MySQL

  • TiDB

  • SQLServer

  • PostgreSQL

  • Oracle

  • MongoDB

  • Redis

  • PolarDB

  • polardb_pg

Note

You must specify this property only when SourceEndpoint.InstanceType is set to RDS, PolarDB, ECS, LocalInstance, or Express.

Role

String

No

No

The authorized Resource Access Management (RAM) role of the source instance.

You must specify this property when the source and destination instances belong to different Alibaba Cloud accounts. You can use the RAM role to authorize the Alibaba Cloud account that owns the destination instance to access the source instance.

Note

For more information about the permissions required by the RAM role and how to grant the permissions, see Configure RAM authorization for cross-account DTS tasks.

OwnerID

String

No

No

The ID of the Alibaba Cloud account to which the source instance belongs.

You must specify this property only when you configure data migration across different Alibaba Cloud accounts.

Region

String

No

No

The region ID of the source database.

If SourceEndpoint.InstanceType is set to LocalInstance, you can set SourceEndpoint.Region to cn-hangzhou or the ID of the region that is closest to the region of the self-managed database. For more information, see Supported regions.

InstanceType

String

No

No

The type of the source instance.

Valid values:

  • RDS: ApsaraDB RDS instance

  • ECS: self-managed database that is hosted on an ECS instance

  • LocalInstance: self-managed database with a public IP address

  • Express: self-managed database that is connected over Express Connect, VPN Gateway, or Smart Access Gateway (SAG)

  • dg: self-managed database that is connected over Database Gateway

  • cen: self-managed database that is connected over CEN

  • MongoDB: ApsaraDB for MongoDB instance

  • PolarDB: PolarDB for MySQL cluster or PolarDB for PostgreSQL cluster

  • PolarDB_o: PolarDB for Oracle cluster

Password

String

No

Yes

The password of the source database account.

None.

Return values

Fn::GetAtt

  • DtsJobId: the ID of the change tracking task.

  • DtsJobName: the name of the change tracking task.

  • DtsInstanceId: the ID of the change tracking instance.

Examples

  • YAML format

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      Checkpoint:
        Description:
          en: The start offset of incremental data migration or synchronization. This
            value is a UNIX timestamp representing the number of seconds that have elapsed
            since January 1, 1970, 00:00:00 UTC.
        Type: String
      DbList:
        Description:
          en: The objects for which you want to track data changes.
        Type: Json
      DedicatedClusterId:
        Description:
          en: The ID of the DTS dedicated cluster on which the task runs.
        Type: String
      DelayNotice:
        Description:
          en: 'Specifies whether to monitor the task latency. Valid values: **true** and
            **false**'
        Type: Boolean
      DelayPhone:
        Description:
          en: 'The mobile numbers that receive latency-related alerts. Separate multiple
            mobile numbers with commas (,).
    
            **Note**: This parameter is available only for users of the China site (aliyun.com).
            Only mobile numbers in the Chinese mainland are supported. You can specify
            up to 10 mobile numbers. Users of the international site (alibabacloud.com)
            cannot receive alerts by using mobile numbers, but can configure alert rules
            for DTS tasks in the CloudMonitor console.'
        Type: String
      DelayRuleTime:
        Description:
          en: 'The threshold for latency alerts. Unit: seconds. You can set the threshold
            based on your business requirements. To prevent jitters caused by network
            and database overloads, we recommend that you set the threshold to more than
            10 seconds.'
        Type: Number
      DtsBisLabel:
        Description:
          en: 'The environment tag of the DTS instance. Valid values: **normal** and **online**.'
        Type: String
      DtsInstanceId:
        Description:
          en: The ID of the DTS instance.
        Type: String
      DtsJobId:
        Description:
          en: The ID of the DTS task.
        Type: String
      DtsJobName:
        Description:
          en: The name of the DTS instance.
        Type: String
      ErrorNotice:
        Description:
          en: 'Specifies whether to monitor the task status. Valid values: **true** and
            **false**.'
        Type: Boolean
      ErrorPhone:
        Description:
          en: 'The mobile numbers that receive status-related alerts. Separate multiple
            mobile numbers with commas (,).
    
            **Note**: This parameter is available only for users of the China site (aliyun.com).
            Only mobile numbers in the Chinese mainland are supported. You can specify
            up to 10 mobile numbers. Users of the international site (alibabacloud.com)
            cannot receive alerts by using mobile numbers, but can configure alert rules
            for DTS tasks in the CloudMonitor console.'
        Type: String
      Reserve:
        Description:
          en: The reserved parameter of DTS. You can specify this parameter to add more
            configurations of the source or destination instance to the DTS task. For
            example, you can specify the data storage format of the destination Kafka
            database and the ID of the CEN instance.
        Type: Json
      SourceEndpoint:
        AssociationPropertyMetadata:
          Parameters:
            DatabaseName:
              Description:
                en: 'The name of the database which contains the objects to be migrated
                  in the source instance.
    
                  **Note**: This parameter is required only when the source instance is
                  a PolarDB for PostgreSQL cluster (compatible with Oracle), a PostgreSQL
                  database, or a MongoDB database.'
              Type: String
            EngineName:
              Description:
                en: 'The engine of the source database. Valid values: **MySQL**, **PostgreSQL**,
                  and **Oracle**.
    
                  **Note**: If the source database is a self-managed database, you must
                  specify this parameter.'
              Type: String
            IP:
              Description:
                en: "The IP address of the source instance. \n**Note**: This parameter\
                  \ is required only when **InstanceType** is set to **OTHER**, **EXPRESS**,\
                  \ **DG**, or **CEN**."
              Type: String
            InstanceID:
              Description:
                en: "The ID of the source instance. If the source instance is an Alibaba\
                  \ Cloud database instance, you must specify the ID of the database instance.\
                  \ For example, \n- If the source instance is an ApsaraDB RDS for MySQL\
                  \ instance, you must specify the ID of the ApsaraDB RDS for MySQL instance.\
                  \ \n- If the source instance is a self-managed database, the value of\
                  \ this parameter varies with the value of SourceEndpointInstanceType.\n\
                  - If InstanceType is set to ECS, you must specify the ID of the ECS\
                  \ instance.\n- If InstanceType is set to DG, you must specify the ID\
                  \ of the database gateway.\n- If InstanceType is set to EXPRESS or CEN,\
                  \ you must specify the ID of the VPC that is connected to the source\
                  \ instance.\n**Note**: If DestinationEndpointInstanceType is set to\
                  \ CEN, you must also specify the ID of the CEN instance in the Reserve\
                  \ parameter."
              Type: String
            InstanceType:
              Description:
                en: 'The type of the source instance. Valid values:
    
                  - **RDS**: ApsaraDB RDS for MySQL instance
    
                  - **PolarDB**: PolarDB for MySQL cluster
    
                  - **DRDS**: PolarDB-X 1.0 instance
    
                  - **LocalInstance**: self-managed database with a public IP address
    
                  - **ECS**: self-managed database hosted on an Elastic Compute Service
                  (ECS) instance
    
                  - **Express**: self-managed database connected over Express Connect
    
                  - **CEN**: self-managed database connected over Cloud Enterprise Network
                  (CEN)
    
                  - **dg**: self-managed database connected over Database Gateway'
              Type: String
            OracleSID:
              Description:
                en: 'The system ID (SID) of the Oracle database.
    
                  **Note**: This parameter is required only when **EngineName** is set
                  to **ORACLE** and the Oracle database is deployed in an architecture
                  that is not a Real Application Cluster (RAC).'
              Type: String
            OwnerID:
              Description:
                en: 'The ID of the Alibaba Cloud account to which the source database
                  belongs.
    
                  **Note**: You can specify this parameter to migrate or synchronize data
                  across different Alibaba Cloud accounts. In this case, you must specify
                  **Role**.'
              Type: String
            Password:
              Description:
                en: The password of the source database account.
              Type: String
            Port:
              Description:
                en: 'The port number of the source instance.
    
                  **Note**: This parameter is required only when the source instance is
                  a self-managed database.'
              Type: String
            Region:
              Description:
                en: 'The ID of the region in which the source instance resides.
    
                  **Note**: If the source instance is an Alibaba Cloud database instance,
                  this parameter is required.'
              Type: String
            Role:
              Description:
                en: 'The name of the Resource Access Management (RAM) role configured
                  for the Alibaba Cloud account that owns the source instance.
    
                  **Note**: This parameter is required when you migrate or synchronize
                  data across different Alibaba Cloud accounts.'
              Type: String
            UserName:
              Description:
                en: 'The database account of the source database.
    
                  **Note**: In most cases, this parameter is required. The permissions
                  that are required for the database account vary with the migration or
                  synchronization scenario.'
              Type: String
            VSwitchID:
              Description:
                en: The ID of the vSwitch used for the data shipping link.
              Type: String
        Description:
          en: Source instance configuration.
        Type: Json
      Status:
        AllowedValues:
        - Subscribing
        - Suspending
        - Stopping
        Description:
          en: 'The status of the resource. Valid values:
    
            - **Subscribing**: Start the task.
    
            - **Suspending**: Suspend the task.
    
            - **Stopping**: Stop the task.'
        Type: String
      SubscriptionDataType:
        AssociationPropertyMetadata:
          Parameters:
            DDL:
              Description:
                en: 'Specifies whether to track DDL statements. Default value: true. Valid
                  values:
    
                  - **true**: tracks DDL statements.
    
                  - **false**: does not track DDL statements.'
              Type: Boolean
            DML:
              Description:
                en: 'Specifies whether to track DML statements. Default value: true. Valid
                  values:
    
                  - **true**: tracks DML statements.
    
                  - **false**: does not track DML statements.'
              Type: Boolean
        Description:
          en: Subscription data type.
        Type: Json
      SubscriptionInstance:
        AssociationPropertyMetadata:
          Parameters:
            NetworkType:
              Description:
                en: 'The network type of the change tracking task. Set the value to **vpc**.
                  A value of vpc indicates the Virtual Private Cloud (VPC) network type.**Note**:
    
                  - To use the new version of the change tracking feature, you must specify
                  **NetworkType**. You must also specify **VPCId** and **VSwitchID**.
                  If you do not specify **NetworkType**, the previous version of the change
                  tracking feature is used.
    
                  - The previous version of the change tracking feature supports self-managed
                  MySQL databases, ApsaraDB RDS for MySQL instances, and PolarDB-X 1.0
                  instances. The new version of the change tracking feature supports self-managed
                  MySQL databases, ApsaraDB RDS for MySQL instances, PolarDB for MySQL
                  clusters, and Oracle databases.'
              Type: String
            VPCId:
              Description:
                en: 'The ID of the VPC in which the change tracking instance is deployed.
    
                  **Note**: This parameter takes effect and is required only when **NetworkType**
                  is set to **vpc**.'
              Type: String
            VSwitchId:
              AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
              AssociationPropertyMetadata:
                VpcId: ${.VpcId}
                ZoneId: ${.ZoneId}
              Description:
                en: 'The ID of the vSwitch in the specified VPC.
    
                  **Note**: This parameter takes effect and is required only when **NetworkType**
                  is set to **vpc**.'
              Type: String
        Description:
          en: Subscription instance configuration.
        Type: Json
    Resources:
      SubscriptionJob:
        Properties:
          Checkpoint:
            Ref: Checkpoint
          DbList:
            Ref: DbList
          DedicatedClusterId:
            Ref: DedicatedClusterId
          DelayNotice:
            Ref: DelayNotice
          DelayPhone:
            Ref: DelayPhone
          DelayRuleTime:
            Ref: DelayRuleTime
          DtsBisLabel:
            Ref: DtsBisLabel
          DtsInstanceId:
            Ref: DtsInstanceId
          DtsJobId:
            Ref: DtsJobId
          DtsJobName:
            Ref: DtsJobName
          ErrorNotice:
            Ref: ErrorNotice
          ErrorPhone:
            Ref: ErrorPhone
          Reserve:
            Ref: Reserve
          SourceEndpoint:
            Ref: SourceEndpoint
          Status:
            Ref: Status
          SubscriptionDataType:
            Ref: SubscriptionDataType
          SubscriptionInstance:
            Ref: SubscriptionInstance
        Type: ALIYUN::DTS::SubscriptionJob2
    Outputs:
      DtsInstanceId:
        Description: The ID of the DTS instance.
        Value:
          Fn::GetAtt:
          - SubscriptionJob
          - DtsInstanceId
      DtsJobId:
        Description: The ID of the task.
        Value:
          Fn::GetAtt:
          - SubscriptionJob
          - DtsJobId
      DtsJobName:
        Description: The name of the DTS job.
        Value:
          Fn::GetAtt:
          - SubscriptionJob
          - DtsJobName
                            
  • JSON format

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "Status": {
          "Type": "String",
          "Description": {
            "en": "The status of the resource. Valid values:\n- **Subscribing**: Start the task.\n- **Suspending**: Suspend the task.\n- **Stopping**: Stop the task."
          },
          "AllowedValues": [
            "Subscribing",
            "Suspending",
            "Stopping"
          ]
        },
        "Reserve": {
          "Type": "Json",
          "Description": {
            "en": "The reserved parameter of DTS. You can specify this parameter to add more configurations of the source or destination instance to the DTS task. For example, you can specify the data storage format of the destination Kafka database and the ID of the CEN instance."
          }
        },
        "DedicatedClusterId": {
          "Type": "String",
          "Description": {
            "en": "The ID of the DTS dedicated cluster on which the task runs."
          }
        },
        "DelayPhone": {
          "Type": "String",
          "Description": {
            "en": "The mobile numbers that receive latency-related alerts. Separate multiple mobile numbers with commas (,).\n**Note**: This parameter is available only for users of the China site (aliyun.com). Only mobile numbers in the Chinese mainland are supported. You can specify up to 10 mobile numbers. Users of the international site (alibabacloud.com) cannot receive alerts by using mobile numbers, but can configure alert rules for DTS tasks in the CloudMonitor console."
          }
        },
        "ErrorNotice": {
          "Type": "Boolean",
          "Description": {
            "en": "Specifies whether to monitor the task status. Valid values: **true** and **false**."
          }
        },
        "DtsJobName": {
          "Type": "String",
          "Description": {
            "en": "The name of the DTS instance."
          }
        },
        "DelayRuleTime": {
          "Type": "Number",
          "Description": {
            "en": "The threshold for latency alerts. Unit: seconds. You can set the threshold based on your business requirements. To prevent jitters caused by network and database overloads, we recommend that you set the threshold to more than 10 seconds."
          }
        },
        "DtsInstanceId": {
          "Type": "String",
          "Description": {
            "en": "The ID of the DTS instance."
          }
        },
        "DbList": {
          "Type": "Json",
          "Description": {
            "en": "The objects for which you want to track data changes."
          }
        },
        "DtsBisLabel": {
          "Type": "String",
          "Description": {
            "en": "The environment tag of the DTS instance. Valid values: **normal** and **online**."
          }
        },
        "SubscriptionDataType": {
          "AssociationPropertyMetadata": {
            "Parameters": {
              "DML": {
                "Type": "Boolean",
                "Description": {
                  "en": "Specifies whether to track DML statements. Default value: true. Valid values:\n- **true**: tracks DML statements.\n- **false**: does not track DML statements."
                }
              },
              "DDL": {
                "Type": "Boolean",
                "Description": {
                  "en": "Specifies whether to track DDL statements. Default value: true. Valid values:\n- **true**: tracks DDL statements.\n- **false**: does not track DDL statements."
                }
              }
            }
          },
          "Type": "Json",
          "Description": {
            "en": "Subscription data type."
          }
        },
        "Checkpoint": {
          "Type": "String",
          "Description": {
            "en": "The start offset of incremental data migration or synchronization. This value is a UNIX timestamp representing the number of seconds that have elapsed since January 1, 1970, 00:00:00 UTC."
          }
        },
        "DelayNotice": {
          "Type": "Boolean",
          "Description": {
            "en": "Specifies whether to monitor the task latency. Valid values: **true** and **false**"
          }
        },
        "DtsJobId": {
          "Type": "String",
          "Description": {
            "en": "The ID of the DTS task."
          }
        },
        "SubscriptionInstance": {
          "AssociationPropertyMetadata": {
            "Parameters": {
              "VPCId": {
                "Type": "String",
                "Description": {
                  "en": "The ID of the VPC in which the change tracking instance is deployed.\n**Note**: This parameter takes effect and is required only when **NetworkType** is set to **vpc**."
                }
              },
              "NetworkType": {
                "Type": "String",
                "Description": {
                  "en": "The network type of the change tracking task. Set the value to **vpc**. A value of vpc indicates the Virtual Private Cloud (VPC) network type.**Note**:\n- To use the new version of the change tracking feature, you must specify **NetworkType**. You must also specify **VPCId** and **VSwitchID**. If you do not specify **NetworkType**, the previous version of the change tracking feature is used.\n- The previous version of the change tracking feature supports self-managed MySQL databases, ApsaraDB RDS for MySQL instances, and PolarDB-X 1.0 instances. The new version of the change tracking feature supports self-managed MySQL databases, ApsaraDB RDS for MySQL instances, PolarDB for MySQL clusters, and Oracle databases."
                }
              },
              "VSwitchId": {
                "AssociationPropertyMetadata": {
                  "VpcId": "${.VpcId}",
                  "ZoneId": "${.ZoneId}"
                },
                "AssociationProperty": "ALIYUN::VPC::VSwitch::VSwitchId",
                "Type": "String",
                "Description": {
                  "en": "The ID of the vSwitch in the specified VPC.\n**Note**: This parameter takes effect and is required only when **NetworkType** is set to **vpc**."
                }
              }
            }
          },
          "Type": "Json",
          "Description": {
            "en": "Subscription instance configuration."
          }
        },
        "SourceEndpoint": {
          "AssociationPropertyMetadata": {
            "Parameters": {
              "OracleSID": {
                "Type": "String",
                "Description": {
                  "en": "The system ID (SID) of the Oracle database.\n**Note**: This parameter is required only when **EngineName** is set to **ORACLE** and the Oracle database is deployed in an architecture that is not a Real Application Cluster (RAC)."
                }
              },
              "UserName": {
                "Type": "String",
                "Description": {
                  "en": "The database account of the source database.\n**Note**: In most cases, this parameter is required. The permissions that are required for the database account vary with the migration or synchronization scenario."
                }
              },
              "InstanceID": {
                "Type": "String",
                "Description": {
                  "en": "The ID of the source instance. If the source instance is an Alibaba Cloud database instance, you must specify the ID of the database instance. For example, \n- If the source instance is an ApsaraDB RDS for MySQL instance, you must specify the ID of the ApsaraDB RDS for MySQL instance. \n- If the source instance is a self-managed database, the value of this parameter varies with the value of SourceEndpointInstanceType.\n- If InstanceType is set to ECS, you must specify the ID of the ECS instance.\n- If InstanceType is set to DG, you must specify the ID of the database gateway.\n- If InstanceType is set to EXPRESS or CEN, you must specify the ID of the VPC that is connected to the source instance.\n**Note**: If DestinationEndpointInstanceType is set to CEN, you must also specify the ID of the CEN instance in the Reserve parameter."
                }
              },
              "IP": {
                "Type": "String",
                "Description": {
                  "en": "The IP address of the source instance. \n**Note**: This parameter is required only when **InstanceType** is set to **OTHER**, **EXPRESS**, **DG**, or **CEN**."
                }
              },
              "Port": {
                "Type": "String",
                "Description": {
                  "en": "The port number of the source instance.\n**Note**: This parameter is required only when the source instance is a self-managed database."
                }
              },
              "VSwitchID": {
                "Type": "String",
                "Description": {
                  "en": "The ID of the vSwitch used for the data shipping link."
                }
              },
              "DatabaseName": {
                "Type": "String",
                "Description": {
                  "en": "The name of the database which contains the objects to be migrated in the source instance.\n**Note**: This parameter is required only when the source instance is a PolarDB for PostgreSQL cluster (compatible with Oracle), a PostgreSQL database, or a MongoDB database."
                }
              },
              "EngineName": {
                "Type": "String",
                "Description": {
                  "en": "The engine of the source database. Valid values: **MySQL**, **PostgreSQL**, and **Oracle**.\n**Note**: If the source database is a self-managed database, you must specify this parameter."
                }
              },
              "Role": {
                "Type": "String",
                "Description": {
                  "en": "The name of the Resource Access Management (RAM) role configured for the Alibaba Cloud account that owns the source instance.\n**Note**: This parameter is required when you migrate or synchronize data across different Alibaba Cloud accounts."
                }
              },
              "OwnerID": {
                "Type": "String",
                "Description": {
                  "en": "The ID of the Alibaba Cloud account to which the source database belongs.\n**Note**: You can specify this parameter to migrate or synchronize data across different Alibaba Cloud accounts. In this case, you must specify **Role**."
                }
              },
              "Region": {
                "Type": "String",
                "Description": {
                  "en": "The ID of the region in which the source instance resides.\n**Note**: If the source instance is an Alibaba Cloud database instance, this parameter is required."
                }
              },
              "InstanceType": {
                "Type": "String",
                "Description": {
                  "en": "The type of the source instance. Valid values:\n- **RDS**: ApsaraDB RDS for MySQL instance\n- **PolarDB**: PolarDB for MySQL cluster\n- **DRDS**: PolarDB-X 1.0 instance\n- **LocalInstance**: self-managed database with a public IP address\n- **ECS**: self-managed database hosted on an Elastic Compute Service (ECS) instance\n- **Express**: self-managed database connected over Express Connect\n- **CEN**: self-managed database connected over Cloud Enterprise Network (CEN)\n- **dg**: self-managed database connected over Database Gateway"
                }
              },
              "Password": {
                "Type": "String",
                "Description": {
                  "en": "The password of the source database account."
                }
              }
            }
          },
          "Type": "Json",
          "Description": {
            "en": "Source instance configuration."
          }
        },
        "ErrorPhone": {
          "Type": "String",
          "Description": {
            "en": "The mobile numbers that receive status-related alerts. Separate multiple mobile numbers with commas (,).\n**Note**: This parameter is available only for users of the China site (aliyun.com). Only mobile numbers in the Chinese mainland are supported. You can specify up to 10 mobile numbers. Users of the international site (alibabacloud.com) cannot receive alerts by using mobile numbers, but can configure alert rules for DTS tasks in the CloudMonitor console."
          }
        }
      },
      "Resources": {
        "SubscriptionJob": {
          "Type": "ALIYUN::DTS::SubscriptionJob2",
          "Properties": {
            "Status": {
              "Ref": "Status"
            },
            "Reserve": {
              "Ref": "Reserve"
            },
            "DedicatedClusterId": {
              "Ref": "DedicatedClusterId"
            },
            "DelayPhone": {
              "Ref": "DelayPhone"
            },
            "ErrorNotice": {
              "Ref": "ErrorNotice"
            },
            "DtsJobName": {
              "Ref": "DtsJobName"
            },
            "DelayRuleTime": {
              "Ref": "DelayRuleTime"
            },
            "DtsInstanceId": {
              "Ref": "DtsInstanceId"
            },
            "DbList": {
              "Ref": "DbList"
            },
            "DtsBisLabel": {
              "Ref": "DtsBisLabel"
            },
            "SubscriptionDataType": {
              "Ref": "SubscriptionDataType"
            },
            "Checkpoint": {
              "Ref": "Checkpoint"
            },
            "DelayNotice": {
              "Ref": "DelayNotice"
            },
            "DtsJobId": {
              "Ref": "DtsJobId"
            },
            "SubscriptionInstance": {
              "Ref": "SubscriptionInstance"
            },
            "SourceEndpoint": {
              "Ref": "SourceEndpoint"
            },
            "ErrorPhone": {
              "Ref": "ErrorPhone"
            }
          }
        }
      },
      "Outputs": {
        "DtsJobId": {
          "Description": "The ID of the task.",
          "Value": {
            "Fn::GetAtt": [
              "SubscriptionJob",
              "DtsJobId"
            ]
          }
        },
        "DtsJobName": {
          "Description": "The name of the DTS job.",
          "Value": {
            "Fn::GetAtt": [
              "SubscriptionJob",
              "DtsJobName"
            ]
          }
        },
        "DtsInstanceId": {
          "Description": "The ID of the DTS instance.",
          "Value": {
            "Fn::GetAtt": [
              "SubscriptionJob",
              "DtsInstanceId"
            ]
          }
        }
      }
    }