ALIYUN::DTS::SubscriptionJob2

ALIYUN::DTS::SubscriptionJob2类型用于配置订阅通道。

语法

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

属性

属性名称

类型

必须

允许更新

描述

约束

Status

String

资源的状态。

取值:

  • Synchronizing:同步中。

  • Suspending:暂停中。

  • Stopping:已停止。

Reserve

Map

DTS的保留参数。

通过指定此参数,可以向DTS任务添加源实例或目标实例的更多配置。 例如,指定目的Kafka数据库的数据存储格式和CEN实例的ID。 

DelayPhone

String

延迟报警的联系人手机号码。

多个手机号码以英文逗号(,)分隔。

说明

DedicatedClusterId

String

DTS专属集群ID。

用于将订阅任务调度到指定的DTS专属集群上。

ErrorNotice

Boolean

是否监控异常状态。

取值:

  • true:监控异常状态。

  • false:非监控异常状态。

DtsJobName

String

订阅任务名称。

建议配置具有业务意义的名称(无唯一性要求),便于后续识别。

DelayRuleTime

Integer

触发延迟报警的阈值。

单位为秒且需为整数,可根据业务需要设置阈值,建议设置10秒以上,避免因网络、数据库负载等原因导致的延迟波动。

说明

DelayNotice取值为true时,本参数必须传入。

DtsInstanceId

String

订阅实例ID。

DbList

Map

订阅对象。

格式为JSON串。更多信息,请参见迁移、同步或订阅对象说明

DtsBisLabel

String

DTS实例的环境标签。

取值:

  • normal:普通。

  • online:线上。

SubscriptionDataType

Map

订阅数据类型。

更多信息,请参见SubscriptionDataType属性

Checkpoint

String

增量数据迁移的启动位点或者同步位点。

格式为Unix时间戳,单位为秒。

DelayNotice

Boolean

是否监控延迟状态。

取值:

  • true:监控延迟状态。

  • false:非监控延迟状态。

DtsJobId

String

数据订阅任务ID。

SubscriptionInstance

Map

订阅实例配置。

更多信息,请参见SubscriptionInstance属性

SourceEndpoint

Map

源实例配置。

更多信息,请参见SourceEndpoint属性

ErrorPhone

String

异常报警的联系人手机号码。

多个手机号码以英文逗号(,)分隔。

说明

SubscriptionDataType语法

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

SubscriptionDataType属性

属性名称

类型

必须

允许更新

描述

约束

DML

Boolean

是否订阅DML类型的数据。

取值:

  • true(默认值):订阅DML类型的数据。

  • false:不订阅DML类型的数据。

DDL

Boolean

是否订阅DDL类型的数据。

取值:

  • true(默认值):订阅DDL类型的数据。

  • false:不订阅DDL类型的数据。

SubscriptionInstance语法

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

SubscriptionInstance属性

属性名称

类型

必须

允许更新

描述

约束

VPCId

String

订阅实例的专有网络ID。

当NetworkType取值为VPC时,本参数才可用且必须传入。

NetworkType

String

订阅实例的网络类型。

取值:VPC,表示专有网络。

  • 如果传入了本参数,则订阅实例被定义为新版,您还需要正确设置SubscriptionInstance.VPCIdSubscriptionInstance.VSwitchID参数;如果不传入该参数,则订阅实例被定义为旧版。

  • 旧版订阅实例支持订阅自建MySQL、RDS for MySQL和DRDS的数据,新版订阅实例支持订阅自建MySQL、RDS for MySQL、PolarDB MySQL和Oracle的数据。

VSwitchId

String

订阅实例的虚拟交换机ID。

当NetworkType取值为VPC时,本参数才可用且必须传入。

SourceEndpoint语法

"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属性

属性名称

类型

必须

允许更新

描述

约束

OracleSID

String

Oracle数据库的SID信息。

当EngineName取值为Oracle,且Oracle数据库为非RAC实例时,本参数才可用且必须传入。

UserName

String

源库的数据库账号。

迁移不同的数据库所需的权限有所差异,请参见迁移方案概览中对应的配置案例。

InstanceID

String

源库的实例ID。

取值:

  • SourceEndpoint.InstanceType取值为RDSECSExpressMongoDBPolarDBPolarDB_o时,本参数才可用且必须传入对应的实例ID(例如取值为ECS,则本参数传入ECS实例的ID)。

  • SourceEndpoint.InstanceType取值为Express时,本参数传入VPC ID(即专有网络ID)。

IP

String

源库的连接地址。

当InstanceType取值为LocalInstanceExpress时,本参数才可用且必须传入。

Port

String

源库的服务端口。

当InstanceType取值为ECSLocalInstanceExpress时,本参数才可用且必须传入。

VSwitchID

String

用于数据传输链路的vSwitch的ID。 

DatabaseName

String

待迁移的数据库名称或鉴权数据库名称。

  • SourceEndpoint.EngineName取值为PostgreSQLMongoDB时,本参数才可用且必须传入。

  • SourceEndpoint.EngineName取值为PostgreSQL时,传入待迁移的数据库名称;取值为MongoDB时,传入数据库账号的鉴权数据库名称。

EngineName

String

源库的数据库类型。

取值:

  • MySQL

  • TiDB

  • SQLServer

  • PostgreSQL

  • Oracle

  • MongoDB

  • Redis

  • PolarDB

  • polardb_pg

说明

当InstanceType取值为RDSPolarDBECSLocalInstanceExpress时,本参数才可用且必须传入。

Role

String

指定源实例的授权角色。

当源实例与目标实例所属阿里云账号不同时,需传入该参数,来指定源实例的授权角色,以允许目标实例阿里云账号访问源实例的实例信息。

说明

角色所需的权限及授权方式,请参见跨阿里云账号任务如何配置RAM授权

OwnerID

String

源实例所属的阿里云账号ID。

仅在配置跨阿里云账号的数据迁移时本参数才可用,且必须传入。

Region

String

源库所属的地域ID。

当InstanceType取值为LocalInstance时,您可以传入cn-hangzhou或者离自建数据库地理距离最近的地域ID,详情请参见支持的地域列表

InstanceType

String

源库的实例类型。

取值:

  • RDS:阿里云RDS实例。

  • ECS:ECS上的自建数据库。

  • LocalInstance:有公网IP的自建数据库。

  • Express:通过专线、VPN网关、智能接入网关接入的自建数据库。

  • dg:通过数据库网关DG接入的自建数据库。

  • cen:通过云企业网CEN接入的自建数据库。

  • MongoDB:阿里云MongoDB实例。

  • PolarDB:阿里云PolarDB MySQL、PolarDB PostgreSQL。

  • PolarDB_o:阿里云PolarDB O引擎集群。

Password

String

源库数据库账号的密码。

返回值

Fn::GetAtt

  • DtsJobId:任务ID。

  • DtsJobName:DTS作业的名称。

  • DtsInstanceId:DTS实例的ID。

示例

  • YAML格式

    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格式

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