Browse Source

new service dts

wenzuochao 6 years ago
parent
commit
b7739de2ec
33 changed files with 4290 additions and 0 deletions
  1. 81 0
      services/dts/client.go
  2. 147 0
      services/dts/configure_migration_job.go
  3. 125 0
      services/dts/configure_subscription_instance.go
  4. 145 0
      services/dts/configure_synchronization_job.go
  5. 110 0
      services/dts/create_migration_job.go
  6. 112 0
      services/dts/create_subscription_instance.go
  7. 126 0
      services/dts/create_synchronization_job.go
  8. 107 0
      services/dts/delete_migration_job.go
  9. 107 0
      services/dts/delete_subscription_instance.go
  10. 107 0
      services/dts/delete_synchronization_job.go
  11. 107 0
      services/dts/describe_endpoint_switch_status.go
  12. 164 0
      services/dts/describe_initialization_status.go
  13. 175 0
      services/dts/describe_migration_job_detail.go
  14. 184 0
      services/dts/describe_migration_job_status.go
  15. 193 0
      services/dts/describe_migration_jobs.go
  16. 135 0
      services/dts/describe_subscription_instance_status.go
  17. 149 0
      services/dts/describe_subscription_instances.go
  18. 119 0
      services/dts/describe_subscription_object_modify_status.go
  19. 215 0
      services/dts/describe_synchronization_job_status.go
  20. 225 0
      services/dts/describe_synchronization_jobs.go
  21. 149 0
      services/dts/describe_synchronization_object_modify_status.go
  22. 108 0
      services/dts/modify_consumption_timestamp.go
  23. 109 0
      services/dts/modify_migration_object.go
  24. 108 0
      services/dts/modify_subscription_object.go
  25. 110 0
      services/dts/modify_synchronization_object.go
  26. 108 0
      services/dts/reset_synchronization_job.go
  27. 107 0
      services/dts/start_migration_job.go
  28. 108 0
      services/dts/start_subscription_instance.go
  29. 108 0
      services/dts/start_synchronization_job.go
  30. 108 0
      services/dts/stop_migration_job.go
  31. 108 0
      services/dts/suspend_migration_job.go
  32. 108 0
      services/dts/suspend_synchronization_job.go
  33. 118 0
      services/dts/switch_synchronization_endpoint.go

+ 81 - 0
services/dts/client.go

@@ -0,0 +1,81 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 147 - 0
services/dts/configure_migration_job.go

@@ -0,0 +1,147 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ConfigureMigrationJob invokes the dts.ConfigureMigrationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/configuremigrationjob.html
+func (client *Client) ConfigureMigrationJob(request *ConfigureMigrationJobRequest) (response *ConfigureMigrationJobResponse, err error) {
+	response = CreateConfigureMigrationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ConfigureMigrationJobWithChan invokes the dts.ConfigureMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/configuremigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureMigrationJobWithChan(request *ConfigureMigrationJobRequest) (<-chan *ConfigureMigrationJobResponse, <-chan error) {
+	responseChan := make(chan *ConfigureMigrationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ConfigureMigrationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ConfigureMigrationJobWithCallback invokes the dts.ConfigureMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/configuremigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureMigrationJobWithCallback(request *ConfigureMigrationJobRequest, callback func(response *ConfigureMigrationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ConfigureMigrationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.ConfigureMigrationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ConfigureMigrationJobRequest is the request struct for api ConfigureMigrationJob
+type ConfigureMigrationJobRequest struct {
+	*requests.RpcRequest
+	MigrationJobId      string                                   `position:"Query" name:"MigrationJobId"`
+	MigrationJobName    string                                   `position:"Query" name:"MigrationJobName"`
+	MigrationObject     string                                   `position:"Query" name:"MigrationObject"`
+	MigrationReserved   string                                   `position:"Query" name:"MigrationReserved"`
+	Checkpoint          string                                   `position:"Query" name:"Checkpoint"`
+	OwnerId             string                                   `position:"Query" name:"OwnerId"`
+	SourceEndpoint      ConfigureMigrationJobSourceEndpoint      `position:"Query" name:"SourceEndpoint" type:"Struct"`
+	DestinationEndpoint ConfigureMigrationJobDestinationEndpoint `position:"Query" name:"DestinationEndpoint" type:"Struct"`
+	MigrationMode       ConfigureMigrationJobMigrationMode       `position:"Query" name:"MigrationMode" type:"Struct"`
+}
+
+type ConfigureMigrationJobSourceEndpoint struct {
+	InstanceType string `name:"InstanceType"`
+	InstanceID   string `name:"InstanceID"`
+	EngineName   string `name:"EngineName"`
+	Region       string `name:"Region"`
+	IP           string `name:"IP"`
+	Port         string `name:"Port"`
+	OracleSID    string `name:"OracleSID"`
+	DatabaseName string `name:"DatabaseName"`
+	UserName     string `name:"UserName"`
+	Password     string `name:"Password"`
+	OwnerID      string `name:"OwnerID"`
+	Role         string `name:"Role"`
+}
+
+type ConfigureMigrationJobDestinationEndpoint struct {
+	InstanceType string `name:"InstanceType"`
+	InstanceID   string `name:"InstanceID"`
+	EngineName   string `name:"EngineName"`
+	Region       string `name:"Region"`
+	IP           string `name:"IP"`
+	Port         string `name:"Port"`
+	DataBaseName string `name:"DataBaseName"`
+	UserName     string `name:"UserName"`
+	Password     string `name:"Password"`
+}
+
+type ConfigureMigrationJobMigrationMode struct {
+	StructureIntialization requests.Boolean `name:"StructureIntialization"`
+	DataIntialization      requests.Boolean `name:"DataIntialization"`
+	DataSynchronization    requests.Boolean `name:"DataSynchronization"`
+}
+
+// ConfigureMigrationJobResponse is the response struct for api ConfigureMigrationJob
+type ConfigureMigrationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateConfigureMigrationJobRequest creates a request to invoke ConfigureMigrationJob API
+func CreateConfigureMigrationJobRequest() (request *ConfigureMigrationJobRequest) {
+	request = &ConfigureMigrationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ConfigureMigrationJob", "dts", "openAPI")
+	return
+}
+
+// CreateConfigureMigrationJobResponse creates a response to parse from ConfigureMigrationJob response
+func CreateConfigureMigrationJobResponse() (response *ConfigureMigrationJobResponse) {
+	response = &ConfigureMigrationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 125 - 0
services/dts/configure_subscription_instance.go

@@ -0,0 +1,125 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ConfigureSubscriptionInstance invokes the dts.ConfigureSubscriptionInstance API synchronously
+// api document: https://help.aliyun.com/api/dts/configuresubscriptioninstance.html
+func (client *Client) ConfigureSubscriptionInstance(request *ConfigureSubscriptionInstanceRequest) (response *ConfigureSubscriptionInstanceResponse, err error) {
+	response = CreateConfigureSubscriptionInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ConfigureSubscriptionInstanceWithChan invokes the dts.ConfigureSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/configuresubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureSubscriptionInstanceWithChan(request *ConfigureSubscriptionInstanceRequest) (<-chan *ConfigureSubscriptionInstanceResponse, <-chan error) {
+	responseChan := make(chan *ConfigureSubscriptionInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ConfigureSubscriptionInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ConfigureSubscriptionInstanceWithCallback invokes the dts.ConfigureSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/configuresubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureSubscriptionInstanceWithCallback(request *ConfigureSubscriptionInstanceRequest, callback func(response *ConfigureSubscriptionInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ConfigureSubscriptionInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.ConfigureSubscriptionInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ConfigureSubscriptionInstanceRequest is the request struct for api ConfigureSubscriptionInstance
+type ConfigureSubscriptionInstanceRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId   string                                            `position:"Query" name:"SubscriptionInstanceId"`
+	SubscriptionInstanceName string                                            `position:"Query" name:"SubscriptionInstanceName"`
+	SubscriptionObject       string                                            `position:"Query" name:"SubscriptionObject"`
+	OwnerId                  string                                            `position:"Query" name:"OwnerId"`
+	SourceEndpoint           ConfigureSubscriptionInstanceSourceEndpoint       `position:"Query" name:"SourceEndpoint" type:"Struct"`
+	SubscriptionDataType     ConfigureSubscriptionInstanceSubscriptionDataType `position:"Query" name:"SubscriptionDataType" type:"Struct"`
+}
+
+type ConfigureSubscriptionInstanceSourceEndpoint struct {
+	InstanceType string `name:"InstanceType"`
+	InstanceID   string `name:"InstanceID"`
+	UserName     string `name:"UserName"`
+	Password     string `name:"Password"`
+	OwnerID      string `name:"OwnerID"`
+	Role         string `name:"Role"`
+}
+
+type ConfigureSubscriptionInstanceSubscriptionDataType struct {
+	DDL requests.Boolean `name:"DDL"`
+	DML requests.Boolean `name:"DML"`
+}
+
+// ConfigureSubscriptionInstanceResponse is the response struct for api ConfigureSubscriptionInstance
+type ConfigureSubscriptionInstanceResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateConfigureSubscriptionInstanceRequest creates a request to invoke ConfigureSubscriptionInstance API
+func CreateConfigureSubscriptionInstanceRequest() (request *ConfigureSubscriptionInstanceRequest) {
+	request = &ConfigureSubscriptionInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ConfigureSubscriptionInstance", "dts", "openAPI")
+	return
+}
+
+// CreateConfigureSubscriptionInstanceResponse creates a response to parse from ConfigureSubscriptionInstance response
+func CreateConfigureSubscriptionInstanceResponse() (response *ConfigureSubscriptionInstanceResponse) {
+	response = &ConfigureSubscriptionInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 145 - 0
services/dts/configure_synchronization_job.go

@@ -0,0 +1,145 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ConfigureSynchronizationJob invokes the dts.ConfigureSynchronizationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/configuresynchronizationjob.html
+func (client *Client) ConfigureSynchronizationJob(request *ConfigureSynchronizationJobRequest) (response *ConfigureSynchronizationJobResponse, err error) {
+	response = CreateConfigureSynchronizationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ConfigureSynchronizationJobWithChan invokes the dts.ConfigureSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/configuresynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureSynchronizationJobWithChan(request *ConfigureSynchronizationJobRequest) (<-chan *ConfigureSynchronizationJobResponse, <-chan error) {
+	responseChan := make(chan *ConfigureSynchronizationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ConfigureSynchronizationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ConfigureSynchronizationJobWithCallback invokes the dts.ConfigureSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/configuresynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureSynchronizationJobWithCallback(request *ConfigureSynchronizationJobRequest, callback func(response *ConfigureSynchronizationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ConfigureSynchronizationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.ConfigureSynchronizationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ConfigureSynchronizationJobRequest is the request struct for api ConfigureSynchronizationJob
+type ConfigureSynchronizationJobRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobName   string                                         `position:"Query" name:"SynchronizationJobName"`
+	SynchronizationJobId     string                                         `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationDirection string                                         `position:"Query" name:"SynchronizationDirection"`
+	StructureInitialization  requests.Boolean                               `position:"Query" name:"StructureInitialization"`
+	DataInitialization       requests.Boolean                               `position:"Query" name:"DataInitialization"`
+	SynchronizationObjects   string                                         `position:"Query" name:"SynchronizationObjects"`
+	MigrationReserved        string                                         `position:"Query" name:"MigrationReserved"`
+	Checkpoint               string                                         `position:"Query" name:"Checkpoint"`
+	OwnerId                  string                                         `position:"Query" name:"OwnerId"`
+	SourceEndpoint           ConfigureSynchronizationJobSourceEndpoint      `position:"Query" name:"SourceEndpoint" type:"Struct"`
+	DestinationEndpoint      ConfigureSynchronizationJobDestinationEndpoint `position:"Query" name:"DestinationEndpoint" type:"Struct"`
+	PartitionKey             ConfigureSynchronizationJobPartitionKey        `position:"Query" name:"PartitionKey" type:"Struct"`
+}
+
+type ConfigureSynchronizationJobSourceEndpoint struct {
+	InstanceId   string `name:"InstanceId"`
+	InstanceType string `name:"InstanceType"`
+	IP           string `name:"IP"`
+	Port         string `name:"Port"`
+	UserName     string `name:"UserName"`
+	Password     string `name:"Password"`
+	OwnerID      string `name:"OwnerID"`
+	Role         string `name:"Role"`
+}
+
+type ConfigureSynchronizationJobDestinationEndpoint struct {
+	InstanceId   string `name:"InstanceId"`
+	InstanceType string `name:"InstanceType"`
+	IP           string `name:"IP"`
+	Port         string `name:"Port"`
+	UserName     string `name:"UserName"`
+	Password     string `name:"Password"`
+}
+
+type ConfigureSynchronizationJobPartitionKey struct {
+	ModifyTime_Year   requests.Boolean `name:"ModifyTime_Year"`
+	ModifyTime_Month  requests.Boolean `name:"ModifyTime_Month"`
+	ModifyTime_Day    requests.Boolean `name:"ModifyTime_Day"`
+	ModifyTime_Hour   requests.Boolean `name:"ModifyTime_Hour"`
+	ModifyTime_Minute requests.Boolean `name:"ModifyTime_Minute"`
+}
+
+// ConfigureSynchronizationJobResponse is the response struct for api ConfigureSynchronizationJob
+type ConfigureSynchronizationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateConfigureSynchronizationJobRequest creates a request to invoke ConfigureSynchronizationJob API
+func CreateConfigureSynchronizationJobRequest() (request *ConfigureSynchronizationJobRequest) {
+	request = &ConfigureSynchronizationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ConfigureSynchronizationJob", "dts", "openAPI")
+	return
+}
+
+// CreateConfigureSynchronizationJobResponse creates a response to parse from ConfigureSynchronizationJob response
+func CreateConfigureSynchronizationJobResponse() (response *ConfigureSynchronizationJobResponse) {
+	response = &ConfigureSynchronizationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/dts/create_migration_job.go

@@ -0,0 +1,110 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateMigrationJob invokes the dts.CreateMigrationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/createmigrationjob.html
+func (client *Client) CreateMigrationJob(request *CreateMigrationJobRequest) (response *CreateMigrationJobResponse, err error) {
+	response = CreateCreateMigrationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateMigrationJobWithChan invokes the dts.CreateMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/createmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateMigrationJobWithChan(request *CreateMigrationJobRequest) (<-chan *CreateMigrationJobResponse, <-chan error) {
+	responseChan := make(chan *CreateMigrationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateMigrationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateMigrationJobWithCallback invokes the dts.CreateMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/createmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateMigrationJobWithCallback(request *CreateMigrationJobRequest, callback func(response *CreateMigrationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateMigrationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateMigrationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateMigrationJobRequest is the request struct for api CreateMigrationJob
+type CreateMigrationJobRequest struct {
+	*requests.RpcRequest
+	Region            string `position:"Query" name:"Region"`
+	MigrationJobClass string `position:"Query" name:"MigrationJobClass"`
+	OwnerId           string `position:"Query" name:"OwnerId"`
+	ClientToken       string `position:"Query" name:"ClientToken"`
+}
+
+// CreateMigrationJobResponse is the response struct for api CreateMigrationJob
+type CreateMigrationJobResponse struct {
+	*responses.BaseResponse
+	Success        string `json:"Success" xml:"Success"`
+	ErrCode        string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage     string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	MigrationJobId string `json:"MigrationJobId" xml:"MigrationJobId"`
+}
+
+// CreateCreateMigrationJobRequest creates a request to invoke CreateMigrationJob API
+func CreateCreateMigrationJobRequest() (request *CreateMigrationJobRequest) {
+	request = &CreateMigrationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "CreateMigrationJob", "dts", "openAPI")
+	return
+}
+
+// CreateCreateMigrationJobResponse creates a response to parse from CreateMigrationJob response
+func CreateCreateMigrationJobResponse() (response *CreateMigrationJobResponse) {
+	response = &CreateMigrationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/dts/create_subscription_instance.go

@@ -0,0 +1,112 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateSubscriptionInstance invokes the dts.CreateSubscriptionInstance API synchronously
+// api document: https://help.aliyun.com/api/dts/createsubscriptioninstance.html
+func (client *Client) CreateSubscriptionInstance(request *CreateSubscriptionInstanceRequest) (response *CreateSubscriptionInstanceResponse, err error) {
+	response = CreateCreateSubscriptionInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSubscriptionInstanceWithChan invokes the dts.CreateSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/createsubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSubscriptionInstanceWithChan(request *CreateSubscriptionInstanceRequest) (<-chan *CreateSubscriptionInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateSubscriptionInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSubscriptionInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSubscriptionInstanceWithCallback invokes the dts.CreateSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/createsubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSubscriptionInstanceWithCallback(request *CreateSubscriptionInstanceRequest, callback func(response *CreateSubscriptionInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSubscriptionInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSubscriptionInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSubscriptionInstanceRequest is the request struct for api CreateSubscriptionInstance
+type CreateSubscriptionInstanceRequest struct {
+	*requests.RpcRequest
+	Region      string           `position:"Query" name:"Region"`
+	PayType     string           `position:"Query" name:"PayType"`
+	Period      string           `position:"Query" name:"Period"`
+	UsedTime    requests.Integer `position:"Query" name:"UsedTime"`
+	ClientToken string           `position:"Query" name:"ClientToken"`
+	OwnerId     string           `position:"Query" name:"OwnerId"`
+}
+
+// CreateSubscriptionInstanceResponse is the response struct for api CreateSubscriptionInstance
+type CreateSubscriptionInstanceResponse struct {
+	*responses.BaseResponse
+	Success                string `json:"Success" xml:"Success"`
+	ErrCode                string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage             string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId              string `json:"RequestId" xml:"RequestId"`
+	SubscriptionInstanceId string `json:"SubscriptionInstanceId" xml:"SubscriptionInstanceId"`
+}
+
+// CreateCreateSubscriptionInstanceRequest creates a request to invoke CreateSubscriptionInstance API
+func CreateCreateSubscriptionInstanceRequest() (request *CreateSubscriptionInstanceRequest) {
+	request = &CreateSubscriptionInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "CreateSubscriptionInstance", "dts", "openAPI")
+	return
+}
+
+// CreateCreateSubscriptionInstanceResponse creates a response to parse from CreateSubscriptionInstance response
+func CreateCreateSubscriptionInstanceResponse() (response *CreateSubscriptionInstanceResponse) {
+	response = &CreateSubscriptionInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 126 - 0
services/dts/create_synchronization_job.go

@@ -0,0 +1,126 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateSynchronizationJob invokes the dts.CreateSynchronizationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/createsynchronizationjob.html
+func (client *Client) CreateSynchronizationJob(request *CreateSynchronizationJobRequest) (response *CreateSynchronizationJobResponse, err error) {
+	response = CreateCreateSynchronizationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSynchronizationJobWithChan invokes the dts.CreateSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/createsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSynchronizationJobWithChan(request *CreateSynchronizationJobRequest) (<-chan *CreateSynchronizationJobResponse, <-chan error) {
+	responseChan := make(chan *CreateSynchronizationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSynchronizationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSynchronizationJobWithCallback invokes the dts.CreateSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/createsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSynchronizationJobWithCallback(request *CreateSynchronizationJobRequest, callback func(response *CreateSynchronizationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSynchronizationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSynchronizationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSynchronizationJobRequest is the request struct for api CreateSynchronizationJob
+type CreateSynchronizationJobRequest struct {
+	*requests.RpcRequest
+	SourceRegion            string                                      `position:"Query" name:"SourceRegion"`
+	DestRegion              string                                      `position:"Query" name:"DestRegion"`
+	Topology                string                                      `position:"Query" name:"Topology"`
+	SynchronizationJobClass string                                      `position:"Query" name:"SynchronizationJobClass"`
+	PayType                 string                                      `position:"Query" name:"PayType"`
+	Period                  string                                      `position:"Query" name:"Period"`
+	UsedTime                requests.Integer                            `position:"Query" name:"UsedTime"`
+	ClientToken             string                                      `position:"Query" name:"ClientToken"`
+	NetworkType             string                                      `position:"Query" name:"NetworkType"`
+	OwnerId                 string                                      `position:"Query" name:"OwnerId"`
+	SourceEndpoint          CreateSynchronizationJobSourceEndpoint      `position:"Query" name:"SourceEndpoint" type:"Struct"`
+	DestinationEndpoint     CreateSynchronizationJobDestinationEndpoint `position:"Query" name:"DestinationEndpoint" type:"Struct"`
+}
+
+type CreateSynchronizationJobSourceEndpoint struct {
+	InstanceType string `name:"InstanceType"`
+}
+
+type CreateSynchronizationJobDestinationEndpoint struct {
+	InstanceType string `name:"InstanceType"`
+}
+
+// CreateSynchronizationJobResponse is the response struct for api CreateSynchronizationJob
+type CreateSynchronizationJobResponse struct {
+	*responses.BaseResponse
+	Success              string `json:"Success" xml:"Success"`
+	ErrCode              string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage           string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId            string `json:"RequestId" xml:"RequestId"`
+	SynchronizationJobId string `json:"SynchronizationJobId" xml:"SynchronizationJobId"`
+}
+
+// CreateCreateSynchronizationJobRequest creates a request to invoke CreateSynchronizationJob API
+func CreateCreateSynchronizationJobRequest() (request *CreateSynchronizationJobRequest) {
+	request = &CreateSynchronizationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "CreateSynchronizationJob", "dts", "openAPI")
+	return
+}
+
+// CreateCreateSynchronizationJobResponse creates a response to parse from CreateSynchronizationJob response
+func CreateCreateSynchronizationJobResponse() (response *CreateSynchronizationJobResponse) {
+	response = &CreateSynchronizationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/dts/delete_migration_job.go

@@ -0,0 +1,107 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteMigrationJob invokes the dts.DeleteMigrationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/deletemigrationjob.html
+func (client *Client) DeleteMigrationJob(request *DeleteMigrationJobRequest) (response *DeleteMigrationJobResponse, err error) {
+	response = CreateDeleteMigrationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteMigrationJobWithChan invokes the dts.DeleteMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/deletemigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteMigrationJobWithChan(request *DeleteMigrationJobRequest) (<-chan *DeleteMigrationJobResponse, <-chan error) {
+	responseChan := make(chan *DeleteMigrationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteMigrationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteMigrationJobWithCallback invokes the dts.DeleteMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/deletemigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteMigrationJobWithCallback(request *DeleteMigrationJobRequest, callback func(response *DeleteMigrationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteMigrationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteMigrationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteMigrationJobRequest is the request struct for api DeleteMigrationJob
+type DeleteMigrationJobRequest struct {
+	*requests.RpcRequest
+	MigrationJobId string `position:"Query" name:"MigrationJobId"`
+	OwnerId        string `position:"Query" name:"OwnerId"`
+}
+
+// DeleteMigrationJobResponse is the response struct for api DeleteMigrationJob
+type DeleteMigrationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteMigrationJobRequest creates a request to invoke DeleteMigrationJob API
+func CreateDeleteMigrationJobRequest() (request *DeleteMigrationJobRequest) {
+	request = &DeleteMigrationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DeleteMigrationJob", "dts", "openAPI")
+	return
+}
+
+// CreateDeleteMigrationJobResponse creates a response to parse from DeleteMigrationJob response
+func CreateDeleteMigrationJobResponse() (response *DeleteMigrationJobResponse) {
+	response = &DeleteMigrationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/dts/delete_subscription_instance.go

@@ -0,0 +1,107 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteSubscriptionInstance invokes the dts.DeleteSubscriptionInstance API synchronously
+// api document: https://help.aliyun.com/api/dts/deletesubscriptioninstance.html
+func (client *Client) DeleteSubscriptionInstance(request *DeleteSubscriptionInstanceRequest) (response *DeleteSubscriptionInstanceResponse, err error) {
+	response = CreateDeleteSubscriptionInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteSubscriptionInstanceWithChan invokes the dts.DeleteSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/deletesubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSubscriptionInstanceWithChan(request *DeleteSubscriptionInstanceRequest) (<-chan *DeleteSubscriptionInstanceResponse, <-chan error) {
+	responseChan := make(chan *DeleteSubscriptionInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteSubscriptionInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteSubscriptionInstanceWithCallback invokes the dts.DeleteSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/deletesubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSubscriptionInstanceWithCallback(request *DeleteSubscriptionInstanceRequest, callback func(response *DeleteSubscriptionInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteSubscriptionInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteSubscriptionInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteSubscriptionInstanceRequest is the request struct for api DeleteSubscriptionInstance
+type DeleteSubscriptionInstanceRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId string `position:"Query" name:"SubscriptionInstanceId"`
+	OwnerId                string `position:"Query" name:"OwnerId"`
+}
+
+// DeleteSubscriptionInstanceResponse is the response struct for api DeleteSubscriptionInstance
+type DeleteSubscriptionInstanceResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteSubscriptionInstanceRequest creates a request to invoke DeleteSubscriptionInstance API
+func CreateDeleteSubscriptionInstanceRequest() (request *DeleteSubscriptionInstanceRequest) {
+	request = &DeleteSubscriptionInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DeleteSubscriptionInstance", "dts", "openAPI")
+	return
+}
+
+// CreateDeleteSubscriptionInstanceResponse creates a response to parse from DeleteSubscriptionInstance response
+func CreateDeleteSubscriptionInstanceResponse() (response *DeleteSubscriptionInstanceResponse) {
+	response = &DeleteSubscriptionInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/dts/delete_synchronization_job.go

@@ -0,0 +1,107 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteSynchronizationJob invokes the dts.DeleteSynchronizationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/deletesynchronizationjob.html
+func (client *Client) DeleteSynchronizationJob(request *DeleteSynchronizationJobRequest) (response *DeleteSynchronizationJobResponse, err error) {
+	response = CreateDeleteSynchronizationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteSynchronizationJobWithChan invokes the dts.DeleteSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/deletesynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSynchronizationJobWithChan(request *DeleteSynchronizationJobRequest) (<-chan *DeleteSynchronizationJobResponse, <-chan error) {
+	responseChan := make(chan *DeleteSynchronizationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteSynchronizationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteSynchronizationJobWithCallback invokes the dts.DeleteSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/deletesynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSynchronizationJobWithCallback(request *DeleteSynchronizationJobRequest, callback func(response *DeleteSynchronizationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteSynchronizationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteSynchronizationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteSynchronizationJobRequest is the request struct for api DeleteSynchronizationJob
+type DeleteSynchronizationJobRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId string `position:"Query" name:"SynchronizationJobId"`
+	OwnerId              string `position:"Query" name:"OwnerId"`
+}
+
+// DeleteSynchronizationJobResponse is the response struct for api DeleteSynchronizationJob
+type DeleteSynchronizationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteSynchronizationJobRequest creates a request to invoke DeleteSynchronizationJob API
+func CreateDeleteSynchronizationJobRequest() (request *DeleteSynchronizationJobRequest) {
+	request = &DeleteSynchronizationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DeleteSynchronizationJob", "dts", "openAPI")
+	return
+}
+
+// CreateDeleteSynchronizationJobResponse creates a response to parse from DeleteSynchronizationJob response
+func CreateDeleteSynchronizationJobResponse() (response *DeleteSynchronizationJobResponse) {
+	response = &DeleteSynchronizationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/dts/describe_endpoint_switch_status.go

@@ -0,0 +1,107 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeEndpointSwitchStatus invokes the dts.DescribeEndpointSwitchStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describeendpointswitchstatus.html
+func (client *Client) DescribeEndpointSwitchStatus(request *DescribeEndpointSwitchStatusRequest) (response *DescribeEndpointSwitchStatusResponse, err error) {
+	response = CreateDescribeEndpointSwitchStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeEndpointSwitchStatusWithChan invokes the dts.DescribeEndpointSwitchStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describeendpointswitchstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEndpointSwitchStatusWithChan(request *DescribeEndpointSwitchStatusRequest) (<-chan *DescribeEndpointSwitchStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeEndpointSwitchStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeEndpointSwitchStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeEndpointSwitchStatusWithCallback invokes the dts.DescribeEndpointSwitchStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describeendpointswitchstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEndpointSwitchStatusWithCallback(request *DescribeEndpointSwitchStatusRequest, callback func(response *DescribeEndpointSwitchStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeEndpointSwitchStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeEndpointSwitchStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeEndpointSwitchStatusRequest is the request struct for api DescribeEndpointSwitchStatus
+type DescribeEndpointSwitchStatusRequest struct {
+	*requests.RpcRequest
+	TaskId      string `position:"Query" name:"TaskId"`
+	ClientToken string `position:"Query" name:"ClientToken"`
+	OwnerId     string `position:"Query" name:"OwnerId"`
+}
+
+// DescribeEndpointSwitchStatusResponse is the response struct for api DescribeEndpointSwitchStatus
+type DescribeEndpointSwitchStatusResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Status       string `json:"Status" xml:"Status"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateDescribeEndpointSwitchStatusRequest creates a request to invoke DescribeEndpointSwitchStatus API
+func CreateDescribeEndpointSwitchStatusRequest() (request *DescribeEndpointSwitchStatusRequest) {
+	request = &DescribeEndpointSwitchStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeEndpointSwitchStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeEndpointSwitchStatusResponse creates a response to parse from DescribeEndpointSwitchStatus response
+func CreateDescribeEndpointSwitchStatusResponse() (response *DescribeEndpointSwitchStatusResponse) {
+	response = &DescribeEndpointSwitchStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 164 - 0
services/dts/describe_initialization_status.go

@@ -0,0 +1,164 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInitializationStatus invokes the dts.DescribeInitializationStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describeinitializationstatus.html
+func (client *Client) DescribeInitializationStatus(request *DescribeInitializationStatusRequest) (response *DescribeInitializationStatusResponse, err error) {
+	response = CreateDescribeInitializationStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInitializationStatusWithChan invokes the dts.DescribeInitializationStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describeinitializationstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInitializationStatusWithChan(request *DescribeInitializationStatusRequest) (<-chan *DescribeInitializationStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeInitializationStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInitializationStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInitializationStatusWithCallback invokes the dts.DescribeInitializationStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describeinitializationstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInitializationStatusWithCallback(request *DescribeInitializationStatusRequest, callback func(response *DescribeInitializationStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInitializationStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInitializationStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInitializationStatusRequest is the request struct for api DescribeInitializationStatus
+type DescribeInitializationStatusRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId string           `position:"Query" name:"SynchronizationJobId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	PageNum              requests.Integer `position:"Query" name:"PageNum"`
+	OwnerId              string           `position:"Query" name:"OwnerId"`
+}
+
+// DescribeInitializationStatusResponse is the response struct for api DescribeInitializationStatus
+type DescribeInitializationStatusResponse struct {
+	*responses.BaseResponse
+	StructureInitializationDetails DescribeInitializationStatusStructureInitializationDetails0 `json:"StructureInitializationDetails" xml:"StructureInitializationDetails"`
+	DataInitializationDetails      DescribeInitializationStatusDataInitializationDetails0      `json:"DataInitializationDetails" xml:"DataInitializationDetails"`
+	DataSynchronizationDetails     DescribeInitializationStatusDataSynchronizationDetails0     `json:"DataSynchronizationDetails" xml:"DataSynchronizationDetails"`
+}
+
+type DescribeInitializationStatusStructureInitializationDetails0 struct {
+	StructureInitializationDetail []DescribeInitializationStatusStructureInitializationDetail1 `json:"StructureInitializationDetail" xml:"StructureInitializationDetail"`
+}
+
+type DescribeInitializationStatusStructureInitializationDetail1 struct {
+	ObjectName             string                                     `json:"ObjectName" xml:"ObjectName"`
+	ObjectType             string                                     `json:"ObjectType" xml:"ObjectType"`
+	SourceOwnerDBName      string                                     `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string                                     `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string                                     `json:"Status" xml:"Status"`
+	ErrorMessage           string                                     `json:"ErrorMessage" xml:"ErrorMessage"`
+	ObjectDefinition       string                                     `json:"ObjectDefinition" xml:"ObjectDefinition"`
+	Constraints            []DescribeInitializationStatusConstraints1 `json:"Constraints" xml:"Constraints"`
+}
+
+type DescribeInitializationStatusDataInitializationDetails0 struct {
+	DataInitializationDetail []DescribeInitializationStatusDataInitializationDetail1 `json:"DataInitializationDetail" xml:"DataInitializationDetail"`
+}
+
+type DescribeInitializationStatusDataInitializationDetail1 struct {
+	TableName              string `json:"TableName" xml:"TableName"`
+	SourceOwnerDBName      string `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string `json:"Status" xml:"Status"`
+	ErrorMessage           string `json:"ErrorMessage" xml:"ErrorMessage"`
+	TotalRowNum            string `json:"TotalRowNum" xml:"TotalRowNum"`
+	FinishRowNum           string `json:"FinishRowNum" xml:"FinishRowNum"`
+	UsedTime               string `json:"UsedTime" xml:"UsedTime"`
+}
+
+type DescribeInitializationStatusDataSynchronizationDetails0 struct {
+	DataSynchronizationDetail []DescribeInitializationStatusDataSynchronizationDetail1 `json:"DataSynchronizationDetail" xml:"DataSynchronizationDetail"`
+}
+
+type DescribeInitializationStatusDataSynchronizationDetail1 struct {
+	TableName              string `json:"TableName" xml:"TableName"`
+	SourceOwnerDBName      string `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string `json:"Status" xml:"Status"`
+	ErrorMessage           string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+type DescribeInitializationStatusConstraints1 struct {
+	StructureInitializationDetail []DescribeInitializationStatusStructureInitializationDetail2 `json:"StructureInitializationDetail" xml:"StructureInitializationDetail"`
+}
+
+type DescribeInitializationStatusStructureInitializationDetail2 struct {
+	ObjectName             string `json:"ObjectName" xml:"ObjectName"`
+	ObjectType             string `json:"ObjectType" xml:"ObjectType"`
+	SourceOwnerDBName      string `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string `json:"Status" xml:"Status"`
+	ErrorMessage           string `json:"ErrorMessage" xml:"ErrorMessage"`
+	ObjectDefinition       string `json:"ObjectDefinition" xml:"ObjectDefinition"`
+}
+
+// CreateDescribeInitializationStatusRequest creates a request to invoke DescribeInitializationStatus API
+func CreateDescribeInitializationStatusRequest() (request *DescribeInitializationStatusRequest) {
+	request = &DescribeInitializationStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeInitializationStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeInitializationStatusResponse creates a response to parse from DescribeInitializationStatus response
+func CreateDescribeInitializationStatusResponse() (response *DescribeInitializationStatusResponse) {
+	response = &DescribeInitializationStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 175 - 0
services/dts/describe_migration_job_detail.go

@@ -0,0 +1,175 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeMigrationJobDetail invokes the dts.DescribeMigrationJobDetail API synchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobdetail.html
+func (client *Client) DescribeMigrationJobDetail(request *DescribeMigrationJobDetailRequest) (response *DescribeMigrationJobDetailResponse, err error) {
+	response = CreateDescribeMigrationJobDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeMigrationJobDetailWithChan invokes the dts.DescribeMigrationJobDetail API asynchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMigrationJobDetailWithChan(request *DescribeMigrationJobDetailRequest) (<-chan *DescribeMigrationJobDetailResponse, <-chan error) {
+	responseChan := make(chan *DescribeMigrationJobDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeMigrationJobDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeMigrationJobDetailWithCallback invokes the dts.DescribeMigrationJobDetail API asynchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMigrationJobDetailWithCallback(request *DescribeMigrationJobDetailRequest, callback func(response *DescribeMigrationJobDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeMigrationJobDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeMigrationJobDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeMigrationJobDetailRequest is the request struct for api DescribeMigrationJobDetail
+type DescribeMigrationJobDetailRequest struct {
+	*requests.RpcRequest
+	PageSize       requests.Integer                        `position:"Query" name:"PageSize"`
+	PageNum        requests.Integer                        `position:"Query" name:"PageNum"`
+	MigrationJobId string                                  `position:"Query" name:"MigrationJobId"`
+	ClientToken    string                                  `position:"Query" name:"ClientToken"`
+	OwnerId        string                                  `position:"Query" name:"OwnerId"`
+	MigrationMode  DescribeMigrationJobDetailMigrationMode `position:"Query" name:"MigrationMode" type:"Struct"`
+}
+
+type DescribeMigrationJobDetailMigrationMode struct {
+	StructureInitialization requests.Boolean `name:"StructureInitialization"`
+	DataInitialization      requests.Boolean `name:"DataInitialization"`
+	DataSynchronization     requests.Boolean `name:"DataSynchronization"`
+}
+
+// DescribeMigrationJobDetailResponse is the response struct for api DescribeMigrationJobDetail
+type DescribeMigrationJobDetailResponse struct {
+	*responses.BaseResponse
+	PageNumber                        int                                                          `json:"PageNumber" xml:"PageNumber"`
+	TotalRecordCount                  int64                                                        `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageRecordCount                   int                                                          `json:"PageRecordCount" xml:"PageRecordCount"`
+	StructureInitializationDetailList DescribeMigrationJobDetailStructureInitializationDetailList0 `json:"StructureInitializationDetailList" xml:"StructureInitializationDetailList"`
+	DataInitializationDetailList      DescribeMigrationJobDetailDataInitializationDetailList0      `json:"DataInitializationDetailList" xml:"DataInitializationDetailList"`
+	DataSynchronizationDetailList     DescribeMigrationJobDetailDataSynchronizationDetailList0     `json:"DataSynchronizationDetailList" xml:"DataSynchronizationDetailList"`
+}
+
+type DescribeMigrationJobDetailStructureInitializationDetailList0 struct {
+	StructureInitializationDetail []DescribeMigrationJobDetailStructureInitializationDetail1 `json:"StructureInitializationDetail" xml:"StructureInitializationDetail"`
+}
+
+type DescribeMigrationJobDetailStructureInitializationDetail1 struct {
+	ObjectName             string                                      `json:"ObjectName" xml:"ObjectName"`
+	ObjectType             string                                      `json:"ObjectType" xml:"ObjectType"`
+	SourceOwnerDBName      string                                      `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string                                      `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string                                      `json:"Status" xml:"Status"`
+	ErrorMessage           string                                      `json:"ErrorMessage" xml:"ErrorMessage"`
+	ObjectDefinition       string                                      `json:"ObjectDefinition" xml:"ObjectDefinition"`
+	ConstraintList         []DescribeMigrationJobDetailConstraintList1 `json:"ConstraintList" xml:"ConstraintList"`
+}
+
+type DescribeMigrationJobDetailDataInitializationDetailList0 struct {
+	DataInitializationDetail []DescribeMigrationJobDetailDataInitializationDetail1 `json:"DataInitializationDetail" xml:"DataInitializationDetail"`
+}
+
+type DescribeMigrationJobDetailDataInitializationDetail1 struct {
+	TableName              string `json:"TableName" xml:"TableName"`
+	SourceOwnerDBName      string `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string `json:"Status" xml:"Status"`
+	ErrorMessage           string `json:"ErrorMessage" xml:"ErrorMessage"`
+	TotalRowNum            string `json:"TotalRowNum" xml:"TotalRowNum"`
+	FinishRowNum           string `json:"FinishRowNum" xml:"FinishRowNum"`
+	MigrationTime          string `json:"MigrationTime" xml:"MigrationTime"`
+}
+
+type DescribeMigrationJobDetailDataSynchronizationDetailList0 struct {
+	DataSynchronizationDetail []DescribeMigrationJobDetailDataSynchronizationDetail1 `json:"DataSynchronizationDetail" xml:"DataSynchronizationDetail"`
+}
+
+type DescribeMigrationJobDetailDataSynchronizationDetail1 struct {
+	TableName              string `json:"TableName" xml:"TableName"`
+	SourceOwnerDBName      string `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string `json:"Status" xml:"Status"`
+	ErrorMessage           string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+type DescribeMigrationJobDetailConstraintList1 struct {
+	StructureInitializationDetail []DescribeMigrationJobDetailStructureInitializationDetail2 `json:"StructureInitializationDetail" xml:"StructureInitializationDetail"`
+}
+
+type DescribeMigrationJobDetailStructureInitializationDetail2 struct {
+	ObjectName             string `json:"ObjectName" xml:"ObjectName"`
+	ObjectType             string `json:"ObjectType" xml:"ObjectType"`
+	SourceOwnerDBName      string `json:"SourceOwnerDBName" xml:"SourceOwnerDBName"`
+	DestinationOwnerDBName string `json:"DestinationOwnerDBName" xml:"DestinationOwnerDBName"`
+	Status                 string `json:"Status" xml:"Status"`
+	ErrorMessage           string `json:"ErrorMessage" xml:"ErrorMessage"`
+	ObjectDefinition       string `json:"ObjectDefinition" xml:"ObjectDefinition"`
+}
+
+// CreateDescribeMigrationJobDetailRequest creates a request to invoke DescribeMigrationJobDetail API
+func CreateDescribeMigrationJobDetailRequest() (request *DescribeMigrationJobDetailRequest) {
+	request = &DescribeMigrationJobDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeMigrationJobDetail", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeMigrationJobDetailResponse creates a response to parse from DescribeMigrationJobDetail response
+func CreateDescribeMigrationJobDetailResponse() (response *DescribeMigrationJobDetailResponse) {
+	response = &DescribeMigrationJobDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 184 - 0
services/dts/describe_migration_job_status.go

@@ -0,0 +1,184 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeMigrationJobStatus invokes the dts.DescribeMigrationJobStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobstatus.html
+func (client *Client) DescribeMigrationJobStatus(request *DescribeMigrationJobStatusRequest) (response *DescribeMigrationJobStatusResponse, err error) {
+	response = CreateDescribeMigrationJobStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeMigrationJobStatusWithChan invokes the dts.DescribeMigrationJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMigrationJobStatusWithChan(request *DescribeMigrationJobStatusRequest) (<-chan *DescribeMigrationJobStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeMigrationJobStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeMigrationJobStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeMigrationJobStatusWithCallback invokes the dts.DescribeMigrationJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMigrationJobStatusWithCallback(request *DescribeMigrationJobStatusRequest, callback func(response *DescribeMigrationJobStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeMigrationJobStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeMigrationJobStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeMigrationJobStatusRequest is the request struct for api DescribeMigrationJobStatus
+type DescribeMigrationJobStatusRequest struct {
+	*requests.RpcRequest
+	MigrationJobId string `position:"Query" name:"MigrationJobId"`
+	ClientToken    string `position:"Query" name:"ClientToken"`
+	OwnerId        string `position:"Query" name:"OwnerId"`
+}
+
+// DescribeMigrationJobStatusResponse is the response struct for api DescribeMigrationJobStatus
+type DescribeMigrationJobStatusResponse struct {
+	*responses.BaseResponse
+	MigrationJobId                string                                                   `json:"MigrationJobId" xml:"MigrationJobId"`
+	MigrationJobName              string                                                   `json:"MigrationJobName" xml:"MigrationJobName"`
+	PayType                       string                                                   `json:"PayType" xml:"PayType"`
+	MigrationJobClass             string                                                   `json:"MigrationJobClass" xml:"MigrationJobClass"`
+	MigrationObject               string                                                   `json:"MigrationObject" xml:"MigrationObject"`
+	MigrationJobStatus            string                                                   `json:"MigrationJobStatus" xml:"MigrationJobStatus"`
+	SourceEndpoint                DescribeMigrationJobStatusSourceEndpoint0                `json:"SourceEndpoint" xml:"SourceEndpoint"`
+	DestinationEndpoint           DescribeMigrationJobStatusDestinationEndpoint0           `json:"DestinationEndpoint" xml:"DestinationEndpoint"`
+	MigrationMode                 DescribeMigrationJobStatusMigrationMode0                 `json:"MigrationMode" xml:"MigrationMode"`
+	PrecheckStatus                DescribeMigrationJobStatusPrecheckStatus0                `json:"PrecheckStatus" xml:"PrecheckStatus"`
+	StructureInitializationStatus DescribeMigrationJobStatusStructureInitializationStatus0 `json:"StructureInitializationStatus" xml:"StructureInitializationStatus"`
+	DataInitializationStatus      DescribeMigrationJobStatusDataInitializationStatus0      `json:"DataInitializationStatus" xml:"DataInitializationStatus"`
+	DataSynchronizationStatus     DescribeMigrationJobStatusDataSynchronizationStatus0     `json:"DataSynchronizationStatus" xml:"DataSynchronizationStatus"`
+}
+
+type DescribeMigrationJobStatusSourceEndpoint0 struct {
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	DatabaseName string `json:"DatabaseName" xml:"DatabaseName"`
+	OracleSID    string `json:"OracleSID" xml:"OracleSID"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeMigrationJobStatusDestinationEndpoint0 struct {
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	DatabaseName string `json:"DatabaseName" xml:"DatabaseName"`
+	OracleSID    string `json:"OracleSID" xml:"OracleSID"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeMigrationJobStatusMigrationMode0 struct {
+	StructureInitialization bool `json:"StructureInitialization" xml:"StructureInitialization"`
+	DataInitialization      bool `json:"DataInitialization" xml:"DataInitialization"`
+	DataSynchronization     bool `json:"DataSynchronization" xml:"DataSynchronization"`
+}
+
+type DescribeMigrationJobStatusPrecheckStatus0 struct {
+	Status  string                              `json:"Status" xml:"Status"`
+	Percent string                              `json:"Percent" xml:"Percent"`
+	Detail  []DescribeMigrationJobStatusDetail1 `json:"Detail" xml:"Detail"`
+}
+
+type DescribeMigrationJobStatusStructureInitializationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeMigrationJobStatusDataInitializationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeMigrationJobStatusDataSynchronizationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay        string `json:"Delay" xml:"Delay"`
+	Checkpoint   string `json:"Checkpoint" xml:"Checkpoint"`
+}
+
+type DescribeMigrationJobStatusDetail1 struct {
+	CheckItem []DescribeMigrationJobStatusCheckItem2 `json:"CheckItem" xml:"CheckItem"`
+}
+
+type DescribeMigrationJobStatusCheckItem2 struct {
+	ItemName     string `json:"ItemName" xml:"ItemName"`
+	CheckStatus  string `json:"CheckStatus" xml:"CheckStatus"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	RepairMethod string `json:"RepairMethod" xml:"RepairMethod"`
+}
+
+// CreateDescribeMigrationJobStatusRequest creates a request to invoke DescribeMigrationJobStatus API
+func CreateDescribeMigrationJobStatusRequest() (request *DescribeMigrationJobStatusRequest) {
+	request = &DescribeMigrationJobStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeMigrationJobStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeMigrationJobStatusResponse creates a response to parse from DescribeMigrationJobStatus response
+func CreateDescribeMigrationJobStatusResponse() (response *DescribeMigrationJobStatusResponse) {
+	response = &DescribeMigrationJobStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 193 - 0
services/dts/describe_migration_jobs.go

@@ -0,0 +1,193 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeMigrationJobs invokes the dts.DescribeMigrationJobs API synchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobs.html
+func (client *Client) DescribeMigrationJobs(request *DescribeMigrationJobsRequest) (response *DescribeMigrationJobsResponse, err error) {
+	response = CreateDescribeMigrationJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeMigrationJobsWithChan invokes the dts.DescribeMigrationJobs API asynchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMigrationJobsWithChan(request *DescribeMigrationJobsRequest) (<-chan *DescribeMigrationJobsResponse, <-chan error) {
+	responseChan := make(chan *DescribeMigrationJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeMigrationJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeMigrationJobsWithCallback invokes the dts.DescribeMigrationJobs API asynchronously
+// api document: https://help.aliyun.com/api/dts/describemigrationjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMigrationJobsWithCallback(request *DescribeMigrationJobsRequest, callback func(response *DescribeMigrationJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeMigrationJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeMigrationJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeMigrationJobsRequest is the request struct for api DescribeMigrationJobs
+type DescribeMigrationJobsRequest struct {
+	*requests.RpcRequest
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+	PageNum          requests.Integer `position:"Query" name:"PageNum"`
+	MigrationJobName string           `position:"Query" name:"MigrationJobName"`
+	OwnerId          string           `position:"Query" name:"OwnerId"`
+}
+
+// DescribeMigrationJobsResponse is the response struct for api DescribeMigrationJobs
+type DescribeMigrationJobsResponse struct {
+	*responses.BaseResponse
+	PageNumber       int                                 `json:"PageNumber" xml:"PageNumber"`
+	TotalRecordCount int64                               `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageRecordCount  int                                 `json:"PageRecordCount" xml:"PageRecordCount"`
+	MigrationJobs    DescribeMigrationJobsMigrationJobs0 `json:"MigrationJobs" xml:"MigrationJobs"`
+}
+
+type DescribeMigrationJobsMigrationJobs0 struct {
+	MigrationJob []DescribeMigrationJobsMigrationJob1 `json:"MigrationJob" xml:"MigrationJob"`
+}
+
+type DescribeMigrationJobsMigrationJob1 struct {
+	MigrationJobID          string                                        `json:"MigrationJobID" xml:"MigrationJobID"`
+	MigrationJobName        string                                        `json:"MigrationJobName" xml:"MigrationJobName"`
+	PayType                 string                                        `json:"PayType" xml:"PayType"`
+	MigrationJobClass       string                                        `json:"MigrationJobClass" xml:"MigrationJobClass"`
+	MigrationJobStatus      string                                        `json:"MigrationJobStatus" xml:"MigrationJobStatus"`
+	MigrationObject         []DescribeMigrationJobsMigrationObject1       `json:"MigrationObject" xml:"MigrationObject"`
+	SourceEndpoint          DescribeMigrationJobsSourceEndpoint1          `json:"SourceEndpoint" xml:"SourceEndpoint"`
+	DestinationEndpoint     DescribeMigrationJobsDestinationEndpoint1     `json:"DestinationEndpoint" xml:"DestinationEndpoint"`
+	MigrationMode           DescribeMigrationJobsMigrationMode1           `json:"MigrationMode" xml:"MigrationMode"`
+	Precheck                DescribeMigrationJobsPrecheck1                `json:"Precheck" xml:"Precheck"`
+	StructureInitialization DescribeMigrationJobsStructureInitialization1 `json:"StructureInitialization" xml:"StructureInitialization"`
+	DataInitialization      DescribeMigrationJobsDataInitialization1      `json:"DataInitialization" xml:"DataInitialization"`
+	DataSynchronization     DescribeMigrationJobsDataSynchronization1     `json:"DataSynchronization" xml:"DataSynchronization"`
+}
+
+type DescribeMigrationJobsMigrationObject1 struct {
+	SynchronousObject []DescribeMigrationJobsSynchronousObject2 `json:"SynchronousObject" xml:"SynchronousObject"`
+}
+
+type DescribeMigrationJobsSynchronousObject2 struct {
+	DatabaseName  string   `json:"DatabaseName" xml:"DatabaseName"`
+	WholeDatabase string   `json:"WholeDatabase" xml:"WholeDatabase"`
+	TableList     []string `json:"TableList" xml:"TableList"`
+}
+
+type DescribeMigrationJobsSourceEndpoint1 struct {
+	InstanceID   string `json:"InstanceID" xml:"InstanceID"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	DatabaseName string `json:"DatabaseName" xml:"DatabaseName"`
+	OracleSID    string `json:"OracleSID" xml:"OracleSID"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeMigrationJobsDestinationEndpoint1 struct {
+	InstanceID   string `json:"InstanceID" xml:"InstanceID"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	DatabaseName string `json:"DatabaseName" xml:"DatabaseName"`
+	OracleSID    string `json:"OracleSID" xml:"OracleSID"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeMigrationJobsMigrationMode1 struct {
+	StructureInitialization bool `json:"StructureInitialization" xml:"StructureInitialization"`
+	DataInitialization      bool `json:"DataInitialization" xml:"DataInitialization"`
+	DataSynchronization     bool `json:"DataSynchronization" xml:"DataSynchronization"`
+}
+
+type DescribeMigrationJobsPrecheck1 struct {
+	Status  string `json:"Status" xml:"Status"`
+	Percent string `json:"Percent" xml:"Percent"`
+}
+
+type DescribeMigrationJobsStructureInitialization1 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeMigrationJobsDataInitialization1 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeMigrationJobsDataSynchronization1 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay        string `json:"Delay" xml:"Delay"`
+}
+
+// CreateDescribeMigrationJobsRequest creates a request to invoke DescribeMigrationJobs API
+func CreateDescribeMigrationJobsRequest() (request *DescribeMigrationJobsRequest) {
+	request = &DescribeMigrationJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeMigrationJobs", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeMigrationJobsResponse creates a response to parse from DescribeMigrationJobs response
+func CreateDescribeMigrationJobsResponse() (response *DescribeMigrationJobsResponse) {
+	response = &DescribeMigrationJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 135 - 0
services/dts/describe_subscription_instance_status.go

@@ -0,0 +1,135 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSubscriptionInstanceStatus invokes the dts.DescribeSubscriptionInstanceStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptioninstancestatus.html
+func (client *Client) DescribeSubscriptionInstanceStatus(request *DescribeSubscriptionInstanceStatusRequest) (response *DescribeSubscriptionInstanceStatusResponse, err error) {
+	response = CreateDescribeSubscriptionInstanceStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSubscriptionInstanceStatusWithChan invokes the dts.DescribeSubscriptionInstanceStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptioninstancestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSubscriptionInstanceStatusWithChan(request *DescribeSubscriptionInstanceStatusRequest) (<-chan *DescribeSubscriptionInstanceStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeSubscriptionInstanceStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSubscriptionInstanceStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSubscriptionInstanceStatusWithCallback invokes the dts.DescribeSubscriptionInstanceStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptioninstancestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSubscriptionInstanceStatusWithCallback(request *DescribeSubscriptionInstanceStatusRequest, callback func(response *DescribeSubscriptionInstanceStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSubscriptionInstanceStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSubscriptionInstanceStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSubscriptionInstanceStatusRequest is the request struct for api DescribeSubscriptionInstanceStatus
+type DescribeSubscriptionInstanceStatusRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId string `position:"Query" name:"SubscriptionInstanceId"`
+	OwnerId                string `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSubscriptionInstanceStatusResponse is the response struct for api DescribeSubscriptionInstanceStatus
+type DescribeSubscriptionInstanceStatusResponse struct {
+	*responses.BaseResponse
+	SubscriptionInstanceID   string                                                  `json:"SubscriptionInstanceID" xml:"SubscriptionInstanceID"`
+	SubscriptionInstanceName string                                                  `json:"SubscriptionInstanceName" xml:"SubscriptionInstanceName"`
+	PayType                  string                                                  `json:"PayType" xml:"PayType"`
+	Status                   string                                                  `json:"Status" xml:"Status"`
+	ErrorMessage             string                                                  `json:"ErrorMessage" xml:"ErrorMessage"`
+	ConsumptionCheckpoint    string                                                  `json:"ConsumptionCheckpoint" xml:"ConsumptionCheckpoint"`
+	BeginTimestamp           string                                                  `json:"BeginTimestamp" xml:"BeginTimestamp"`
+	EndTimestamp             string                                                  `json:"EndTimestamp" xml:"EndTimestamp"`
+	ConsumptionClient        string                                                  `json:"ConsumptionClient" xml:"ConsumptionClient"`
+	SubscriptionObject       DescribeSubscriptionInstanceStatusSubscriptionObject0   `json:"SubscriptionObject" xml:"SubscriptionObject"`
+	SourceEndpoint           DescribeSubscriptionInstanceStatusSourceEndpoint0       `json:"SourceEndpoint" xml:"SourceEndpoint"`
+	SubscriptionDataType     DescribeSubscriptionInstanceStatusSubscriptionDataType0 `json:"SubscriptionDataType" xml:"SubscriptionDataType"`
+}
+
+type DescribeSubscriptionInstanceStatusSubscriptionObject0 struct {
+	SynchronousObject []DescribeSubscriptionInstanceStatusSynchronousObject1 `json:"SynchronousObject" xml:"SynchronousObject"`
+}
+
+type DescribeSubscriptionInstanceStatusSynchronousObject1 struct {
+	DatabaseName  string   `json:"DatabaseName" xml:"DatabaseName"`
+	WholeDatabase string   `json:"WholeDatabase" xml:"WholeDatabase"`
+	TableList     []string `json:"TableList" xml:"TableList"`
+}
+
+type DescribeSubscriptionInstanceStatusSourceEndpoint0 struct {
+	InstanceID   string `json:"InstanceID" xml:"InstanceID"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+}
+
+type DescribeSubscriptionInstanceStatusSubscriptionDataType0 struct {
+	DDL bool `json:"DDL" xml:"DDL"`
+	DML bool `json:"DML" xml:"DML"`
+}
+
+// CreateDescribeSubscriptionInstanceStatusRequest creates a request to invoke DescribeSubscriptionInstanceStatus API
+func CreateDescribeSubscriptionInstanceStatusRequest() (request *DescribeSubscriptionInstanceStatusRequest) {
+	request = &DescribeSubscriptionInstanceStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeSubscriptionInstanceStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeSubscriptionInstanceStatusResponse creates a response to parse from DescribeSubscriptionInstanceStatus response
+func CreateDescribeSubscriptionInstanceStatusResponse() (response *DescribeSubscriptionInstanceStatusResponse) {
+	response = &DescribeSubscriptionInstanceStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 149 - 0
services/dts/describe_subscription_instances.go

@@ -0,0 +1,149 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSubscriptionInstances invokes the dts.DescribeSubscriptionInstances API synchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptioninstances.html
+func (client *Client) DescribeSubscriptionInstances(request *DescribeSubscriptionInstancesRequest) (response *DescribeSubscriptionInstancesResponse, err error) {
+	response = CreateDescribeSubscriptionInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSubscriptionInstancesWithChan invokes the dts.DescribeSubscriptionInstances API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptioninstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSubscriptionInstancesWithChan(request *DescribeSubscriptionInstancesRequest) (<-chan *DescribeSubscriptionInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeSubscriptionInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSubscriptionInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSubscriptionInstancesWithCallback invokes the dts.DescribeSubscriptionInstances API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptioninstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSubscriptionInstancesWithCallback(request *DescribeSubscriptionInstancesRequest, callback func(response *DescribeSubscriptionInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSubscriptionInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSubscriptionInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSubscriptionInstancesRequest is the request struct for api DescribeSubscriptionInstances
+type DescribeSubscriptionInstancesRequest struct {
+	*requests.RpcRequest
+	PageSize                 requests.Integer `position:"Query" name:"PageSize"`
+	PageNum                  requests.Integer `position:"Query" name:"PageNum"`
+	SubscriptionInstanceName string           `position:"Query" name:"SubscriptionInstanceName"`
+	ClientToken              string           `position:"Query" name:"ClientToken"`
+	OwnerId                  string           `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSubscriptionInstancesResponse is the response struct for api DescribeSubscriptionInstances
+type DescribeSubscriptionInstancesResponse struct {
+	*responses.BaseResponse
+	PageNumber            int                                                 `json:"PageNumber" xml:"PageNumber"`
+	TotalRecordCount      int64                                               `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageRecordCount       int                                                 `json:"PageRecordCount" xml:"PageRecordCount"`
+	SubscriptionInstances DescribeSubscriptionInstancesSubscriptionInstances0 `json:"SubscriptionInstances" xml:"SubscriptionInstances"`
+}
+
+type DescribeSubscriptionInstancesSubscriptionInstances0 struct {
+	SubscriptionInstance []DescribeSubscriptionInstancesSubscriptionInstance1 `json:"SubscriptionInstance" xml:"SubscriptionInstance"`
+}
+
+type DescribeSubscriptionInstancesSubscriptionInstance1 struct {
+	SubscriptionInstanceID   string                                             `json:"SubscriptionInstanceID" xml:"SubscriptionInstanceID"`
+	SubscriptionInstanceName string                                             `json:"SubscriptionInstanceName" xml:"SubscriptionInstanceName"`
+	PayType                  string                                             `json:"PayType" xml:"PayType"`
+	Status                   string                                             `json:"Status" xml:"Status"`
+	ErrorMessage             string                                             `json:"ErrorMessage" xml:"ErrorMessage"`
+	ConsumptionCheckpoint    string                                             `json:"ConsumptionCheckpoint" xml:"ConsumptionCheckpoint"`
+	BeginTimestamp           string                                             `json:"BeginTimestamp" xml:"BeginTimestamp"`
+	EndTimestamp             string                                             `json:"EndTimestamp" xml:"EndTimestamp"`
+	ConsumptionClient        string                                             `json:"ConsumptionClient" xml:"ConsumptionClient"`
+	SubscriptionObject       []DescribeSubscriptionInstancesSubscriptionObject1 `json:"SubscriptionObject" xml:"SubscriptionObject"`
+	SourceEndpoint           DescribeSubscriptionInstancesSourceEndpoint1       `json:"SourceEndpoint" xml:"SourceEndpoint"`
+	SubscriptionDataType     DescribeSubscriptionInstancesSubscriptionDataType1 `json:"SubscriptionDataType" xml:"SubscriptionDataType"`
+}
+
+type DescribeSubscriptionInstancesSubscriptionObject1 struct {
+	SynchronousObject []DescribeSubscriptionInstancesSynchronousObject2 `json:"SynchronousObject" xml:"SynchronousObject"`
+}
+
+type DescribeSubscriptionInstancesSynchronousObject2 struct {
+	DatabaseName  string   `json:"DatabaseName" xml:"DatabaseName"`
+	WholeDatabase string   `json:"WholeDatabase" xml:"WholeDatabase"`
+	TableList     []string `json:"TableList" xml:"TableList"`
+}
+
+type DescribeSubscriptionInstancesSourceEndpoint1 struct {
+	InstanceID   string `json:"InstanceID" xml:"InstanceID"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+}
+
+type DescribeSubscriptionInstancesSubscriptionDataType1 struct {
+	DDL bool `json:"DDL" xml:"DDL"`
+	DML bool `json:"DML" xml:"DML"`
+}
+
+// CreateDescribeSubscriptionInstancesRequest creates a request to invoke DescribeSubscriptionInstances API
+func CreateDescribeSubscriptionInstancesRequest() (request *DescribeSubscriptionInstancesRequest) {
+	request = &DescribeSubscriptionInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeSubscriptionInstances", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeSubscriptionInstancesResponse creates a response to parse from DescribeSubscriptionInstances response
+func CreateDescribeSubscriptionInstancesResponse() (response *DescribeSubscriptionInstancesResponse) {
+	response = &DescribeSubscriptionInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 119 - 0
services/dts/describe_subscription_object_modify_status.go

@@ -0,0 +1,119 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSubscriptionObjectModifyStatus invokes the dts.DescribeSubscriptionObjectModifyStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptionobjectmodifystatus.html
+func (client *Client) DescribeSubscriptionObjectModifyStatus(request *DescribeSubscriptionObjectModifyStatusRequest) (response *DescribeSubscriptionObjectModifyStatusResponse, err error) {
+	response = CreateDescribeSubscriptionObjectModifyStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSubscriptionObjectModifyStatusWithChan invokes the dts.DescribeSubscriptionObjectModifyStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptionobjectmodifystatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSubscriptionObjectModifyStatusWithChan(request *DescribeSubscriptionObjectModifyStatusRequest) (<-chan *DescribeSubscriptionObjectModifyStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeSubscriptionObjectModifyStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSubscriptionObjectModifyStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSubscriptionObjectModifyStatusWithCallback invokes the dts.DescribeSubscriptionObjectModifyStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesubscriptionobjectmodifystatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSubscriptionObjectModifyStatusWithCallback(request *DescribeSubscriptionObjectModifyStatusRequest, callback func(response *DescribeSubscriptionObjectModifyStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSubscriptionObjectModifyStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSubscriptionObjectModifyStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSubscriptionObjectModifyStatusRequest is the request struct for api DescribeSubscriptionObjectModifyStatus
+type DescribeSubscriptionObjectModifyStatusRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId string `position:"Query" name:"SubscriptionInstanceId"`
+	ClientToken            string `position:"Query" name:"ClientToken"`
+	OwnerId                string `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSubscriptionObjectModifyStatusResponse is the response struct for api DescribeSubscriptionObjectModifyStatus
+type DescribeSubscriptionObjectModifyStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string                                        `json:"RequestId" xml:"RequestId"`
+	Status    string                                        `json:"Status" xml:"Status"`
+	Percent   string                                        `json:"Percent" xml:"Percent"`
+	Detail    DescribeSubscriptionObjectModifyStatusDetail0 `json:"Detail" xml:"Detail"`
+}
+
+type DescribeSubscriptionObjectModifyStatusDetail0 struct {
+	CheckItem []DescribeSubscriptionObjectModifyStatusCheckItem1 `json:"CheckItem" xml:"CheckItem"`
+}
+
+type DescribeSubscriptionObjectModifyStatusCheckItem1 struct {
+	ItemName     string `json:"ItemName" xml:"ItemName"`
+	CheckStatus  string `json:"CheckStatus" xml:"CheckStatus"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	RepairMethod string `json:"RepairMethod" xml:"RepairMethod"`
+}
+
+// CreateDescribeSubscriptionObjectModifyStatusRequest creates a request to invoke DescribeSubscriptionObjectModifyStatus API
+func CreateDescribeSubscriptionObjectModifyStatusRequest() (request *DescribeSubscriptionObjectModifyStatusRequest) {
+	request = &DescribeSubscriptionObjectModifyStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeSubscriptionObjectModifyStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeSubscriptionObjectModifyStatusResponse creates a response to parse from DescribeSubscriptionObjectModifyStatus response
+func CreateDescribeSubscriptionObjectModifyStatusResponse() (response *DescribeSubscriptionObjectModifyStatusResponse) {
+	response = &DescribeSubscriptionObjectModifyStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 215 - 0
services/dts/describe_synchronization_job_status.go

@@ -0,0 +1,215 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSynchronizationJobStatus invokes the dts.DescribeSynchronizationJobStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationjobstatus.html
+func (client *Client) DescribeSynchronizationJobStatus(request *DescribeSynchronizationJobStatusRequest) (response *DescribeSynchronizationJobStatusResponse, err error) {
+	response = CreateDescribeSynchronizationJobStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSynchronizationJobStatusWithChan invokes the dts.DescribeSynchronizationJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationjobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSynchronizationJobStatusWithChan(request *DescribeSynchronizationJobStatusRequest) (<-chan *DescribeSynchronizationJobStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeSynchronizationJobStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSynchronizationJobStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSynchronizationJobStatusWithCallback invokes the dts.DescribeSynchronizationJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationjobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSynchronizationJobStatusWithCallback(request *DescribeSynchronizationJobStatusRequest, callback func(response *DescribeSynchronizationJobStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSynchronizationJobStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSynchronizationJobStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSynchronizationJobStatusRequest is the request struct for api DescribeSynchronizationJobStatus
+type DescribeSynchronizationJobStatusRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId     string `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationDirection string `position:"Query" name:"SynchronizationDirection"`
+	ClientToken              string `position:"Query" name:"ClientToken"`
+	OwnerId                  string `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSynchronizationJobStatusResponse is the response struct for api DescribeSynchronizationJobStatus
+type DescribeSynchronizationJobStatusResponse struct {
+	*responses.BaseResponse
+	RequestId                     string                                                         `json:"RequestId" xml:"RequestId"`
+	SynchronizationJobId          string                                                         `json:"SynchronizationJobId" xml:"SynchronizationJobId"`
+	SynchronizationJobName        string                                                         `json:"SynchronizationJobName" xml:"SynchronizationJobName"`
+	SynchronizationDirection      string                                                         `json:"SynchronizationDirection" xml:"SynchronizationDirection"`
+	SynchronizationJobClass       string                                                         `json:"SynchronizationJobClass" xml:"SynchronizationJobClass"`
+	PayType                       string                                                         `json:"PayType" xml:"PayType"`
+	ExpireTime                    string                                                         `json:"ExpireTime" xml:"ExpireTime"`
+	StructureInitialization       string                                                         `json:"StructureInitialization" xml:"StructureInitialization"`
+	DataInitialization            string                                                         `json:"DataInitialization" xml:"DataInitialization"`
+	Status                        string                                                         `json:"Status" xml:"Status"`
+	ErrorMessage                  string                                                         `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay                         string                                                         `json:"Delay" xml:"Delay"`
+	Checkpoint                    string                                                         `json:"Checkpoint" xml:"Checkpoint"`
+	SynchronizationObjects        DescribeSynchronizationJobStatusSynchronizationObjects0        `json:"SynchronizationObjects" xml:"SynchronizationObjects"`
+	SourceEndpoint                DescribeSynchronizationJobStatusSourceEndpoint0                `json:"SourceEndpoint" xml:"SourceEndpoint"`
+	DestinationEndpoint           DescribeSynchronizationJobStatusDestinationEndpoint0           `json:"DestinationEndpoint" xml:"DestinationEndpoint"`
+	PrecheckStatus                DescribeSynchronizationJobStatusPrecheckStatus0                `json:"PrecheckStatus" xml:"PrecheckStatus"`
+	StructureInitializationStatus DescribeSynchronizationJobStatusStructureInitializationStatus0 `json:"StructureInitializationStatus" xml:"StructureInitializationStatus"`
+	DataInitializationStatus      DescribeSynchronizationJobStatusDataInitializationStatus0      `json:"DataInitializationStatus" xml:"DataInitializationStatus"`
+	DataSynchronizationStatus     DescribeSynchronizationJobStatusDataSynchronizationStatus0     `json:"DataSynchronizationStatus" xml:"DataSynchronizationStatus"`
+	Performance                   DescribeSynchronizationJobStatusPerformance0                   `json:"Performance" xml:"Performance"`
+}
+
+type DescribeSynchronizationJobStatusSynchronizationObjects0 struct {
+	SynchronizationObject []DescribeSynchronizationJobStatusSynchronizationObject1 `json:"SynchronizationObject" xml:"SynchronizationObject"`
+}
+
+type DescribeSynchronizationJobStatusSynchronizationObject1 struct {
+	SchemaName    string                                           `json:"SchemaName" xml:"SchemaName"`
+	NewSchemaName string                                           `json:"NewSchemaName" xml:"NewSchemaName"`
+	TableIncludes []DescribeSynchronizationJobStatusTableIncludes1 `json:"TableIncludes" xml:"TableIncludes"`
+	TableExcludes []DescribeSynchronizationJobStatusTableExcludes1 `json:"TableExcludes" xml:"TableExcludes"`
+}
+
+type DescribeSynchronizationJobStatusSourceEndpoint0 struct {
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeSynchronizationJobStatusDestinationEndpoint0 struct {
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeSynchronizationJobStatusPrecheckStatus0 struct {
+	Status  string                                    `json:"Status" xml:"Status"`
+	Percent string                                    `json:"Percent" xml:"Percent"`
+	Detail  []DescribeSynchronizationJobStatusDetail1 `json:"Detail" xml:"Detail"`
+}
+
+type DescribeSynchronizationJobStatusStructureInitializationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeSynchronizationJobStatusDataInitializationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeSynchronizationJobStatusDataSynchronizationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay        string `json:"Delay" xml:"Delay"`
+	Checkpoint   string `json:"Checkpoint" xml:"Checkpoint"`
+}
+
+type DescribeSynchronizationJobStatusPerformance0 struct {
+	RPS  string `json:"RPS" xml:"RPS"`
+	FLOW string `json:"FLOW" xml:"FLOW"`
+}
+
+type DescribeSynchronizationJobStatusTableIncludes1 struct {
+	TableInclude []DescribeSynchronizationJobStatusTableInclude2 `json:"TableInclude" xml:"TableInclude"`
+}
+
+type DescribeSynchronizationJobStatusTableInclude2 struct {
+	TableName string `json:"TableName" xml:"TableName"`
+}
+
+type DescribeSynchronizationJobStatusTableExcludes1 struct {
+	TableExclude []DescribeSynchronizationJobStatusTableExclude2 `json:"TableExclude" xml:"TableExclude"`
+}
+
+type DescribeSynchronizationJobStatusTableExclude2 struct {
+	TableName string `json:"TableName" xml:"TableName"`
+}
+
+type DescribeSynchronizationJobStatusDetail1 struct {
+	CheckItem []DescribeSynchronizationJobStatusCheckItem2 `json:"CheckItem" xml:"CheckItem"`
+}
+
+type DescribeSynchronizationJobStatusCheckItem2 struct {
+	ItemName     string `json:"ItemName" xml:"ItemName"`
+	CheckStatus  string `json:"CheckStatus" xml:"CheckStatus"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	RepairMethod string `json:"RepairMethod" xml:"RepairMethod"`
+}
+
+// CreateDescribeSynchronizationJobStatusRequest creates a request to invoke DescribeSynchronizationJobStatus API
+func CreateDescribeSynchronizationJobStatusRequest() (request *DescribeSynchronizationJobStatusRequest) {
+	request = &DescribeSynchronizationJobStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeSynchronizationJobStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeSynchronizationJobStatusResponse creates a response to parse from DescribeSynchronizationJobStatus response
+func CreateDescribeSynchronizationJobStatusResponse() (response *DescribeSynchronizationJobStatusResponse) {
+	response = &DescribeSynchronizationJobStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 225 - 0
services/dts/describe_synchronization_jobs.go

@@ -0,0 +1,225 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSynchronizationJobs invokes the dts.DescribeSynchronizationJobs API synchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationjobs.html
+func (client *Client) DescribeSynchronizationJobs(request *DescribeSynchronizationJobsRequest) (response *DescribeSynchronizationJobsResponse, err error) {
+	response = CreateDescribeSynchronizationJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSynchronizationJobsWithChan invokes the dts.DescribeSynchronizationJobs API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSynchronizationJobsWithChan(request *DescribeSynchronizationJobsRequest) (<-chan *DescribeSynchronizationJobsResponse, <-chan error) {
+	responseChan := make(chan *DescribeSynchronizationJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSynchronizationJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSynchronizationJobsWithCallback invokes the dts.DescribeSynchronizationJobs API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSynchronizationJobsWithCallback(request *DescribeSynchronizationJobsRequest, callback func(response *DescribeSynchronizationJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSynchronizationJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSynchronizationJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSynchronizationJobsRequest is the request struct for api DescribeSynchronizationJobs
+type DescribeSynchronizationJobsRequest struct {
+	*requests.RpcRequest
+	PageSize               requests.Integer `position:"Query" name:"PageSize"`
+	PageNum                requests.Integer `position:"Query" name:"PageNum"`
+	SynchronizationJobName string           `position:"Query" name:"SynchronizationJobName"`
+	ClientToken            string           `position:"Query" name:"ClientToken"`
+	OwnerId                string           `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSynchronizationJobsResponse is the response struct for api DescribeSynchronizationJobs
+type DescribeSynchronizationJobsResponse struct {
+	*responses.BaseResponse
+	RequestId                string                                               `json:"RequestId" xml:"RequestId"`
+	PageNumber               int                                                  `json:"PageNumber" xml:"PageNumber"`
+	TotalRecordCount         int64                                                `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageRecordCount          int                                                  `json:"PageRecordCount" xml:"PageRecordCount"`
+	SynchronizationInstances DescribeSynchronizationJobsSynchronizationInstances0 `json:"SynchronizationInstances" xml:"SynchronizationInstances"`
+}
+
+type DescribeSynchronizationJobsSynchronizationInstances0 struct {
+	SynchronizationInstance []DescribeSynchronizationJobsSynchronizationInstance1 `json:"SynchronizationInstance" xml:"SynchronizationInstance"`
+}
+
+type DescribeSynchronizationJobsSynchronizationInstance1 struct {
+	SynchronizationJobId          string                                                    `json:"SynchronizationJobId" xml:"SynchronizationJobId"`
+	SynchronizationDirection      string                                                    `json:"SynchronizationDirection" xml:"SynchronizationDirection"`
+	SynchronizationJobName        string                                                    `json:"SynchronizationJobName" xml:"SynchronizationJobName"`
+	SynchronizationJobClass       string                                                    `json:"SynchronizationJobClass" xml:"SynchronizationJobClass"`
+	PayType                       string                                                    `json:"PayType" xml:"PayType"`
+	ExpireTime                    string                                                    `json:"ExpireTime" xml:"ExpireTime"`
+	StructureInitialization       string                                                    `json:"StructureInitialization" xml:"StructureInitialization"`
+	DataInitialization            string                                                    `json:"DataInitialization" xml:"DataInitialization"`
+	Status                        string                                                    `json:"Status" xml:"Status"`
+	ErrorMessage                  string                                                    `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay                         string                                                    `json:"Delay" xml:"Delay"`
+	SynchronizationObjects        []DescribeSynchronizationJobsSynchronizationObjects1      `json:"SynchronizationObjects" xml:"SynchronizationObjects"`
+	SourceEndpoint                DescribeSynchronizationJobsSourceEndpoint1                `json:"SourceEndpoint" xml:"SourceEndpoint"`
+	DestinationEndpoint           DescribeSynchronizationJobsDestinationEndpoint1           `json:"DestinationEndpoint" xml:"DestinationEndpoint"`
+	PrecheckStatus                DescribeSynchronizationJobsPrecheckStatus1                `json:"PrecheckStatus" xml:"PrecheckStatus"`
+	StructureInitializationStatus DescribeSynchronizationJobsStructureInitializationStatus1 `json:"StructureInitializationStatus" xml:"StructureInitializationStatus"`
+	DataInitializationStatus      DescribeSynchronizationJobsDataInitializationStatus1      `json:"DataInitializationStatus" xml:"DataInitializationStatus"`
+	DataSynchronizationStatus     DescribeSynchronizationJobsDataSynchronizationStatus1     `json:"DataSynchronizationStatus" xml:"DataSynchronizationStatus"`
+	Performance                   DescribeSynchronizationJobsPerformance1                   `json:"Performance" xml:"Performance"`
+}
+
+type DescribeSynchronizationJobsSynchronizationObjects1 struct {
+	SynchronizationObject []DescribeSynchronizationJobsSynchronizationObject2 `json:"SynchronizationObject" xml:"SynchronizationObject"`
+}
+
+type DescribeSynchronizationJobsSynchronizationObject2 struct {
+	SchemaName    string                                      `json:"SchemaName" xml:"SchemaName"`
+	NewSchemaName string                                      `json:"NewSchemaName" xml:"NewSchemaName"`
+	TableIncludes []DescribeSynchronizationJobsTableIncludes2 `json:"TableIncludes" xml:"TableIncludes"`
+	TableExcludes []DescribeSynchronizationJobsTableExcludes2 `json:"TableExcludes" xml:"TableExcludes"`
+}
+
+type DescribeSynchronizationJobsTableIncludes2 struct {
+	TableInclude []DescribeSynchronizationJobsTableInclude3 `json:"TableInclude" xml:"TableInclude"`
+}
+
+type DescribeSynchronizationJobsTableInclude3 struct {
+	TableName string `json:"TableName" xml:"TableName"`
+}
+
+type DescribeSynchronizationJobsTableExcludes2 struct {
+	TableExclude []DescribeSynchronizationJobsTableExclude3 `json:"TableExclude" xml:"TableExclude"`
+}
+
+type DescribeSynchronizationJobsTableExclude3 struct {
+	TableName string `json:"TableName" xml:"TableName"`
+}
+
+type DescribeSynchronizationJobsSourceEndpoint1 struct {
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeSynchronizationJobsDestinationEndpoint1 struct {
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+	EngineName   string `json:"EngineName" xml:"EngineName"`
+	IP           string `json:"IP" xml:"IP"`
+	Port         string `json:"Port" xml:"Port"`
+	UserName     string `json:"UserName" xml:"UserName"`
+}
+
+type DescribeSynchronizationJobsPrecheckStatus1 struct {
+	Status  string                               `json:"Status" xml:"Status"`
+	Percent string                               `json:"Percent" xml:"Percent"`
+	Detail  []DescribeSynchronizationJobsDetail2 `json:"Detail" xml:"Detail"`
+}
+
+type DescribeSynchronizationJobsDetail2 struct {
+	CheckItem []DescribeSynchronizationJobsCheckItem3 `json:"CheckItem" xml:"CheckItem"`
+}
+
+type DescribeSynchronizationJobsCheckItem3 struct {
+	ItemName     string `json:"ItemName" xml:"ItemName"`
+	CheckStatus  string `json:"CheckStatus" xml:"CheckStatus"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	RepairMethod string `json:"RepairMethod" xml:"RepairMethod"`
+}
+
+type DescribeSynchronizationJobsStructureInitializationStatus1 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeSynchronizationJobsDataInitializationStatus1 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeSynchronizationJobsDataSynchronizationStatus1 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay        string `json:"Delay" xml:"Delay"`
+}
+
+type DescribeSynchronizationJobsPerformance1 struct {
+	RPS  string `json:"RPS" xml:"RPS"`
+	FLOW string `json:"FLOW" xml:"FLOW"`
+}
+
+// CreateDescribeSynchronizationJobsRequest creates a request to invoke DescribeSynchronizationJobs API
+func CreateDescribeSynchronizationJobsRequest() (request *DescribeSynchronizationJobsRequest) {
+	request = &DescribeSynchronizationJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeSynchronizationJobs", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeSynchronizationJobsResponse creates a response to parse from DescribeSynchronizationJobs response
+func CreateDescribeSynchronizationJobsResponse() (response *DescribeSynchronizationJobsResponse) {
+	response = &DescribeSynchronizationJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 149 - 0
services/dts/describe_synchronization_object_modify_status.go

@@ -0,0 +1,149 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSynchronizationObjectModifyStatus invokes the dts.DescribeSynchronizationObjectModifyStatus API synchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationobjectmodifystatus.html
+func (client *Client) DescribeSynchronizationObjectModifyStatus(request *DescribeSynchronizationObjectModifyStatusRequest) (response *DescribeSynchronizationObjectModifyStatusResponse, err error) {
+	response = CreateDescribeSynchronizationObjectModifyStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSynchronizationObjectModifyStatusWithChan invokes the dts.DescribeSynchronizationObjectModifyStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationobjectmodifystatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSynchronizationObjectModifyStatusWithChan(request *DescribeSynchronizationObjectModifyStatusRequest) (<-chan *DescribeSynchronizationObjectModifyStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeSynchronizationObjectModifyStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSynchronizationObjectModifyStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSynchronizationObjectModifyStatusWithCallback invokes the dts.DescribeSynchronizationObjectModifyStatus API asynchronously
+// api document: https://help.aliyun.com/api/dts/describesynchronizationobjectmodifystatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSynchronizationObjectModifyStatusWithCallback(request *DescribeSynchronizationObjectModifyStatusRequest, callback func(response *DescribeSynchronizationObjectModifyStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSynchronizationObjectModifyStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSynchronizationObjectModifyStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSynchronizationObjectModifyStatusRequest is the request struct for api DescribeSynchronizationObjectModifyStatus
+type DescribeSynchronizationObjectModifyStatusRequest struct {
+	*requests.RpcRequest
+	TaskId      string `position:"Query" name:"TaskId"`
+	ClientToken string `position:"Query" name:"ClientToken"`
+	OwnerId     string `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSynchronizationObjectModifyStatusResponse is the response struct for api DescribeSynchronizationObjectModifyStatus
+type DescribeSynchronizationObjectModifyStatusResponse struct {
+	*responses.BaseResponse
+	RequestId                     string                                                                  `json:"RequestId" xml:"RequestId"`
+	Status                        string                                                                  `json:"Status" xml:"Status"`
+	ErrorMessage                  string                                                                  `json:"ErrorMessage" xml:"ErrorMessage"`
+	PrecheckStatus                DescribeSynchronizationObjectModifyStatusPrecheckStatus0                `json:"PrecheckStatus" xml:"PrecheckStatus"`
+	StructureInitializationStatus DescribeSynchronizationObjectModifyStatusStructureInitializationStatus0 `json:"StructureInitializationStatus" xml:"StructureInitializationStatus"`
+	DataInitializationStatus      DescribeSynchronizationObjectModifyStatusDataInitializationStatus0      `json:"DataInitializationStatus" xml:"DataInitializationStatus"`
+	DataSynchronizationStatus     DescribeSynchronizationObjectModifyStatusDataSynchronizationStatus0     `json:"DataSynchronizationStatus" xml:"DataSynchronizationStatus"`
+}
+
+type DescribeSynchronizationObjectModifyStatusPrecheckStatus0 struct {
+	Status  string                                             `json:"Status" xml:"Status"`
+	Percent string                                             `json:"Percent" xml:"Percent"`
+	Detail  []DescribeSynchronizationObjectModifyStatusDetail1 `json:"Detail" xml:"Detail"`
+}
+
+type DescribeSynchronizationObjectModifyStatusStructureInitializationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeSynchronizationObjectModifyStatusDataInitializationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Progress     string `json:"Progress" xml:"Progress"`
+}
+
+type DescribeSynchronizationObjectModifyStatusDataSynchronizationStatus0 struct {
+	Status       string `json:"Status" xml:"Status"`
+	Percent      string `json:"Percent" xml:"Percent"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Delay        string `json:"Delay" xml:"Delay"`
+}
+
+type DescribeSynchronizationObjectModifyStatusDetail1 struct {
+	CheckItem []DescribeSynchronizationObjectModifyStatusCheckItem2 `json:"CheckItem" xml:"CheckItem"`
+}
+
+type DescribeSynchronizationObjectModifyStatusCheckItem2 struct {
+	ItemName     string `json:"ItemName" xml:"ItemName"`
+	CheckStatus  string `json:"CheckStatus" xml:"CheckStatus"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	RepairMethod string `json:"RepairMethod" xml:"RepairMethod"`
+}
+
+// CreateDescribeSynchronizationObjectModifyStatusRequest creates a request to invoke DescribeSynchronizationObjectModifyStatus API
+func CreateDescribeSynchronizationObjectModifyStatusRequest() (request *DescribeSynchronizationObjectModifyStatusRequest) {
+	request = &DescribeSynchronizationObjectModifyStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "DescribeSynchronizationObjectModifyStatus", "dts", "openAPI")
+	return
+}
+
+// CreateDescribeSynchronizationObjectModifyStatusResponse creates a response to parse from DescribeSynchronizationObjectModifyStatus response
+func CreateDescribeSynchronizationObjectModifyStatusResponse() (response *DescribeSynchronizationObjectModifyStatusResponse) {
+	response = &DescribeSynchronizationObjectModifyStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/modify_consumption_timestamp.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyConsumptionTimestamp invokes the dts.ModifyConsumptionTimestamp API synchronously
+// api document: https://help.aliyun.com/api/dts/modifyconsumptiontimestamp.html
+func (client *Client) ModifyConsumptionTimestamp(request *ModifyConsumptionTimestampRequest) (response *ModifyConsumptionTimestampResponse, err error) {
+	response = CreateModifyConsumptionTimestampResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyConsumptionTimestampWithChan invokes the dts.ModifyConsumptionTimestamp API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifyconsumptiontimestamp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyConsumptionTimestampWithChan(request *ModifyConsumptionTimestampRequest) (<-chan *ModifyConsumptionTimestampResponse, <-chan error) {
+	responseChan := make(chan *ModifyConsumptionTimestampResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyConsumptionTimestamp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyConsumptionTimestampWithCallback invokes the dts.ModifyConsumptionTimestamp API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifyconsumptiontimestamp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyConsumptionTimestampWithCallback(request *ModifyConsumptionTimestampRequest, callback func(response *ModifyConsumptionTimestampResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyConsumptionTimestampResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyConsumptionTimestamp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyConsumptionTimestampRequest is the request struct for api ModifyConsumptionTimestamp
+type ModifyConsumptionTimestampRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId string `position:"Query" name:"SubscriptionInstanceId"`
+	ConsumptionTimestamp   string `position:"Query" name:"ConsumptionTimestamp"`
+	OwnerId                string `position:"Query" name:"OwnerId"`
+}
+
+// ModifyConsumptionTimestampResponse is the response struct for api ModifyConsumptionTimestamp
+type ModifyConsumptionTimestampResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyConsumptionTimestampRequest creates a request to invoke ModifyConsumptionTimestamp API
+func CreateModifyConsumptionTimestampRequest() (request *ModifyConsumptionTimestampRequest) {
+	request = &ModifyConsumptionTimestampRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ModifyConsumptionTimestamp", "dts", "openAPI")
+	return
+}
+
+// CreateModifyConsumptionTimestampResponse creates a response to parse from ModifyConsumptionTimestamp response
+func CreateModifyConsumptionTimestampResponse() (response *ModifyConsumptionTimestampResponse) {
+	response = &ModifyConsumptionTimestampResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/dts/modify_migration_object.go

@@ -0,0 +1,109 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyMigrationObject invokes the dts.ModifyMigrationObject API synchronously
+// api document: https://help.aliyun.com/api/dts/modifymigrationobject.html
+func (client *Client) ModifyMigrationObject(request *ModifyMigrationObjectRequest) (response *ModifyMigrationObjectResponse, err error) {
+	response = CreateModifyMigrationObjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyMigrationObjectWithChan invokes the dts.ModifyMigrationObject API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifymigrationobject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyMigrationObjectWithChan(request *ModifyMigrationObjectRequest) (<-chan *ModifyMigrationObjectResponse, <-chan error) {
+	responseChan := make(chan *ModifyMigrationObjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyMigrationObject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyMigrationObjectWithCallback invokes the dts.ModifyMigrationObject API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifymigrationobject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyMigrationObjectWithCallback(request *ModifyMigrationObjectRequest, callback func(response *ModifyMigrationObjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyMigrationObjectResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyMigrationObject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyMigrationObjectRequest is the request struct for api ModifyMigrationObject
+type ModifyMigrationObjectRequest struct {
+	*requests.RpcRequest
+	MigrationJobId  string `position:"Query" name:"MigrationJobId"`
+	MigrationObject string `position:"Query" name:"MigrationObject"`
+	ClientToken     string `position:"Query" name:"ClientToken"`
+	OwnerId         string `position:"Query" name:"OwnerId"`
+}
+
+// ModifyMigrationObjectResponse is the response struct for api ModifyMigrationObject
+type ModifyMigrationObjectResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyMigrationObjectRequest creates a request to invoke ModifyMigrationObject API
+func CreateModifyMigrationObjectRequest() (request *ModifyMigrationObjectRequest) {
+	request = &ModifyMigrationObjectRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ModifyMigrationObject", "dts", "openAPI")
+	return
+}
+
+// CreateModifyMigrationObjectResponse creates a response to parse from ModifyMigrationObject response
+func CreateModifyMigrationObjectResponse() (response *ModifyMigrationObjectResponse) {
+	response = &ModifyMigrationObjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/modify_subscription_object.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifySubscriptionObject invokes the dts.ModifySubscriptionObject API synchronously
+// api document: https://help.aliyun.com/api/dts/modifysubscriptionobject.html
+func (client *Client) ModifySubscriptionObject(request *ModifySubscriptionObjectRequest) (response *ModifySubscriptionObjectResponse, err error) {
+	response = CreateModifySubscriptionObjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifySubscriptionObjectWithChan invokes the dts.ModifySubscriptionObject API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifysubscriptionobject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySubscriptionObjectWithChan(request *ModifySubscriptionObjectRequest) (<-chan *ModifySubscriptionObjectResponse, <-chan error) {
+	responseChan := make(chan *ModifySubscriptionObjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifySubscriptionObject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifySubscriptionObjectWithCallback invokes the dts.ModifySubscriptionObject API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifysubscriptionobject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySubscriptionObjectWithCallback(request *ModifySubscriptionObjectRequest, callback func(response *ModifySubscriptionObjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifySubscriptionObjectResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifySubscriptionObject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifySubscriptionObjectRequest is the request struct for api ModifySubscriptionObject
+type ModifySubscriptionObjectRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId string `position:"Query" name:"SubscriptionInstanceId"`
+	SubscriptionObject     string `position:"Query" name:"SubscriptionObject"`
+	OwnerId                string `position:"Query" name:"OwnerId"`
+}
+
+// ModifySubscriptionObjectResponse is the response struct for api ModifySubscriptionObject
+type ModifySubscriptionObjectResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifySubscriptionObjectRequest creates a request to invoke ModifySubscriptionObject API
+func CreateModifySubscriptionObjectRequest() (request *ModifySubscriptionObjectRequest) {
+	request = &ModifySubscriptionObjectRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ModifySubscriptionObject", "dts", "openAPI")
+	return
+}
+
+// CreateModifySubscriptionObjectResponse creates a response to parse from ModifySubscriptionObject response
+func CreateModifySubscriptionObjectResponse() (response *ModifySubscriptionObjectResponse) {
+	response = &ModifySubscriptionObjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/dts/modify_synchronization_object.go

@@ -0,0 +1,110 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifySynchronizationObject invokes the dts.ModifySynchronizationObject API synchronously
+// api document: https://help.aliyun.com/api/dts/modifysynchronizationobject.html
+func (client *Client) ModifySynchronizationObject(request *ModifySynchronizationObjectRequest) (response *ModifySynchronizationObjectResponse, err error) {
+	response = CreateModifySynchronizationObjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifySynchronizationObjectWithChan invokes the dts.ModifySynchronizationObject API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifysynchronizationobject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySynchronizationObjectWithChan(request *ModifySynchronizationObjectRequest) (<-chan *ModifySynchronizationObjectResponse, <-chan error) {
+	responseChan := make(chan *ModifySynchronizationObjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifySynchronizationObject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifySynchronizationObjectWithCallback invokes the dts.ModifySynchronizationObject API asynchronously
+// api document: https://help.aliyun.com/api/dts/modifysynchronizationobject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySynchronizationObjectWithCallback(request *ModifySynchronizationObjectRequest, callback func(response *ModifySynchronizationObjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifySynchronizationObjectResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifySynchronizationObject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifySynchronizationObjectRequest is the request struct for api ModifySynchronizationObject
+type ModifySynchronizationObjectRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId     string `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationObjects   string `position:"Query" name:"SynchronizationObjects"`
+	SynchronizationDirection string `position:"Query" name:"SynchronizationDirection"`
+	OwnerId                  string `position:"Query" name:"OwnerId"`
+}
+
+// ModifySynchronizationObjectResponse is the response struct for api ModifySynchronizationObject
+type ModifySynchronizationObjectResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	TaskId     string `json:"TaskId" xml:"TaskId"`
+}
+
+// CreateModifySynchronizationObjectRequest creates a request to invoke ModifySynchronizationObject API
+func CreateModifySynchronizationObjectRequest() (request *ModifySynchronizationObjectRequest) {
+	request = &ModifySynchronizationObjectRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ModifySynchronizationObject", "dts", "openAPI")
+	return
+}
+
+// CreateModifySynchronizationObjectResponse creates a response to parse from ModifySynchronizationObject response
+func CreateModifySynchronizationObjectResponse() (response *ModifySynchronizationObjectResponse) {
+	response = &ModifySynchronizationObjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/reset_synchronization_job.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ResetSynchronizationJob invokes the dts.ResetSynchronizationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/resetsynchronizationjob.html
+func (client *Client) ResetSynchronizationJob(request *ResetSynchronizationJobRequest) (response *ResetSynchronizationJobResponse, err error) {
+	response = CreateResetSynchronizationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ResetSynchronizationJobWithChan invokes the dts.ResetSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/resetsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetSynchronizationJobWithChan(request *ResetSynchronizationJobRequest) (<-chan *ResetSynchronizationJobResponse, <-chan error) {
+	responseChan := make(chan *ResetSynchronizationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ResetSynchronizationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ResetSynchronizationJobWithCallback invokes the dts.ResetSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/resetsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetSynchronizationJobWithCallback(request *ResetSynchronizationJobRequest, callback func(response *ResetSynchronizationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ResetSynchronizationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.ResetSynchronizationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ResetSynchronizationJobRequest is the request struct for api ResetSynchronizationJob
+type ResetSynchronizationJobRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId     string `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationDirection string `position:"Query" name:"SynchronizationDirection"`
+	OwnerId                  string `position:"Query" name:"OwnerId"`
+}
+
+// ResetSynchronizationJobResponse is the response struct for api ResetSynchronizationJob
+type ResetSynchronizationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateResetSynchronizationJobRequest creates a request to invoke ResetSynchronizationJob API
+func CreateResetSynchronizationJobRequest() (request *ResetSynchronizationJobRequest) {
+	request = &ResetSynchronizationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "ResetSynchronizationJob", "dts", "openAPI")
+	return
+}
+
+// CreateResetSynchronizationJobResponse creates a response to parse from ResetSynchronizationJob response
+func CreateResetSynchronizationJobResponse() (response *ResetSynchronizationJobResponse) {
+	response = &ResetSynchronizationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/dts/start_migration_job.go

@@ -0,0 +1,107 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StartMigrationJob invokes the dts.StartMigrationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/startmigrationjob.html
+func (client *Client) StartMigrationJob(request *StartMigrationJobRequest) (response *StartMigrationJobResponse, err error) {
+	response = CreateStartMigrationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartMigrationJobWithChan invokes the dts.StartMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/startmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartMigrationJobWithChan(request *StartMigrationJobRequest) (<-chan *StartMigrationJobResponse, <-chan error) {
+	responseChan := make(chan *StartMigrationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartMigrationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartMigrationJobWithCallback invokes the dts.StartMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/startmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartMigrationJobWithCallback(request *StartMigrationJobRequest, callback func(response *StartMigrationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartMigrationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.StartMigrationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartMigrationJobRequest is the request struct for api StartMigrationJob
+type StartMigrationJobRequest struct {
+	*requests.RpcRequest
+	MigrationJobId string `position:"Query" name:"MigrationJobId"`
+	OwnerId        string `position:"Query" name:"OwnerId"`
+}
+
+// StartMigrationJobResponse is the response struct for api StartMigrationJob
+type StartMigrationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStartMigrationJobRequest creates a request to invoke StartMigrationJob API
+func CreateStartMigrationJobRequest() (request *StartMigrationJobRequest) {
+	request = &StartMigrationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "StartMigrationJob", "dts", "openAPI")
+	return
+}
+
+// CreateStartMigrationJobResponse creates a response to parse from StartMigrationJob response
+func CreateStartMigrationJobResponse() (response *StartMigrationJobResponse) {
+	response = &StartMigrationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/start_subscription_instance.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StartSubscriptionInstance invokes the dts.StartSubscriptionInstance API synchronously
+// api document: https://help.aliyun.com/api/dts/startsubscriptioninstance.html
+func (client *Client) StartSubscriptionInstance(request *StartSubscriptionInstanceRequest) (response *StartSubscriptionInstanceResponse, err error) {
+	response = CreateStartSubscriptionInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartSubscriptionInstanceWithChan invokes the dts.StartSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/startsubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartSubscriptionInstanceWithChan(request *StartSubscriptionInstanceRequest) (<-chan *StartSubscriptionInstanceResponse, <-chan error) {
+	responseChan := make(chan *StartSubscriptionInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartSubscriptionInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartSubscriptionInstanceWithCallback invokes the dts.StartSubscriptionInstance API asynchronously
+// api document: https://help.aliyun.com/api/dts/startsubscriptioninstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartSubscriptionInstanceWithCallback(request *StartSubscriptionInstanceRequest, callback func(response *StartSubscriptionInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartSubscriptionInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.StartSubscriptionInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartSubscriptionInstanceRequest is the request struct for api StartSubscriptionInstance
+type StartSubscriptionInstanceRequest struct {
+	*requests.RpcRequest
+	SubscriptionInstanceId string `position:"Query" name:"SubscriptionInstanceId"`
+	OwnerId                string `position:"Query" name:"OwnerId"`
+}
+
+// StartSubscriptionInstanceResponse is the response struct for api StartSubscriptionInstance
+type StartSubscriptionInstanceResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TaskId     string `json:"TaskId" xml:"TaskId"`
+}
+
+// CreateStartSubscriptionInstanceRequest creates a request to invoke StartSubscriptionInstance API
+func CreateStartSubscriptionInstanceRequest() (request *StartSubscriptionInstanceRequest) {
+	request = &StartSubscriptionInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "StartSubscriptionInstance", "dts", "openAPI")
+	return
+}
+
+// CreateStartSubscriptionInstanceResponse creates a response to parse from StartSubscriptionInstance response
+func CreateStartSubscriptionInstanceResponse() (response *StartSubscriptionInstanceResponse) {
+	response = &StartSubscriptionInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/start_synchronization_job.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StartSynchronizationJob invokes the dts.StartSynchronizationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/startsynchronizationjob.html
+func (client *Client) StartSynchronizationJob(request *StartSynchronizationJobRequest) (response *StartSynchronizationJobResponse, err error) {
+	response = CreateStartSynchronizationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartSynchronizationJobWithChan invokes the dts.StartSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/startsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartSynchronizationJobWithChan(request *StartSynchronizationJobRequest) (<-chan *StartSynchronizationJobResponse, <-chan error) {
+	responseChan := make(chan *StartSynchronizationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartSynchronizationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartSynchronizationJobWithCallback invokes the dts.StartSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/startsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartSynchronizationJobWithCallback(request *StartSynchronizationJobRequest, callback func(response *StartSynchronizationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartSynchronizationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.StartSynchronizationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartSynchronizationJobRequest is the request struct for api StartSynchronizationJob
+type StartSynchronizationJobRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId     string `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationDirection string `position:"Query" name:"SynchronizationDirection"`
+	OwnerId                  string `position:"Query" name:"OwnerId"`
+}
+
+// StartSynchronizationJobResponse is the response struct for api StartSynchronizationJob
+type StartSynchronizationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStartSynchronizationJobRequest creates a request to invoke StartSynchronizationJob API
+func CreateStartSynchronizationJobRequest() (request *StartSynchronizationJobRequest) {
+	request = &StartSynchronizationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "StartSynchronizationJob", "dts", "openAPI")
+	return
+}
+
+// CreateStartSynchronizationJobResponse creates a response to parse from StartSynchronizationJob response
+func CreateStartSynchronizationJobResponse() (response *StartSynchronizationJobResponse) {
+	response = &StartSynchronizationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/stop_migration_job.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StopMigrationJob invokes the dts.StopMigrationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/stopmigrationjob.html
+func (client *Client) StopMigrationJob(request *StopMigrationJobRequest) (response *StopMigrationJobResponse, err error) {
+	response = CreateStopMigrationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StopMigrationJobWithChan invokes the dts.StopMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/stopmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopMigrationJobWithChan(request *StopMigrationJobRequest) (<-chan *StopMigrationJobResponse, <-chan error) {
+	responseChan := make(chan *StopMigrationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StopMigrationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StopMigrationJobWithCallback invokes the dts.StopMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/stopmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopMigrationJobWithCallback(request *StopMigrationJobRequest, callback func(response *StopMigrationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StopMigrationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.StopMigrationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StopMigrationJobRequest is the request struct for api StopMigrationJob
+type StopMigrationJobRequest struct {
+	*requests.RpcRequest
+	MigrationJobId string `position:"Query" name:"MigrationJobId"`
+	ClientToken    string `position:"Query" name:"ClientToken"`
+	OwnerId        string `position:"Query" name:"OwnerId"`
+}
+
+// StopMigrationJobResponse is the response struct for api StopMigrationJob
+type StopMigrationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStopMigrationJobRequest creates a request to invoke StopMigrationJob API
+func CreateStopMigrationJobRequest() (request *StopMigrationJobRequest) {
+	request = &StopMigrationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "StopMigrationJob", "dts", "openAPI")
+	return
+}
+
+// CreateStopMigrationJobResponse creates a response to parse from StopMigrationJob response
+func CreateStopMigrationJobResponse() (response *StopMigrationJobResponse) {
+	response = &StopMigrationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/suspend_migration_job.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// SuspendMigrationJob invokes the dts.SuspendMigrationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/suspendmigrationjob.html
+func (client *Client) SuspendMigrationJob(request *SuspendMigrationJobRequest) (response *SuspendMigrationJobResponse, err error) {
+	response = CreateSuspendMigrationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SuspendMigrationJobWithChan invokes the dts.SuspendMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/suspendmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SuspendMigrationJobWithChan(request *SuspendMigrationJobRequest) (<-chan *SuspendMigrationJobResponse, <-chan error) {
+	responseChan := make(chan *SuspendMigrationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SuspendMigrationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SuspendMigrationJobWithCallback invokes the dts.SuspendMigrationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/suspendmigrationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SuspendMigrationJobWithCallback(request *SuspendMigrationJobRequest, callback func(response *SuspendMigrationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SuspendMigrationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.SuspendMigrationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SuspendMigrationJobRequest is the request struct for api SuspendMigrationJob
+type SuspendMigrationJobRequest struct {
+	*requests.RpcRequest
+	MigrationJobId string `position:"Query" name:"MigrationJobId"`
+	ClientToken    string `position:"Query" name:"ClientToken"`
+	OwnerId        string `position:"Query" name:"OwnerId"`
+}
+
+// SuspendMigrationJobResponse is the response struct for api SuspendMigrationJob
+type SuspendMigrationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSuspendMigrationJobRequest creates a request to invoke SuspendMigrationJob API
+func CreateSuspendMigrationJobRequest() (request *SuspendMigrationJobRequest) {
+	request = &SuspendMigrationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "SuspendMigrationJob", "dts", "openAPI")
+	return
+}
+
+// CreateSuspendMigrationJobResponse creates a response to parse from SuspendMigrationJob response
+func CreateSuspendMigrationJobResponse() (response *SuspendMigrationJobResponse) {
+	response = &SuspendMigrationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/dts/suspend_synchronization_job.go

@@ -0,0 +1,108 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// SuspendSynchronizationJob invokes the dts.SuspendSynchronizationJob API synchronously
+// api document: https://help.aliyun.com/api/dts/suspendsynchronizationjob.html
+func (client *Client) SuspendSynchronizationJob(request *SuspendSynchronizationJobRequest) (response *SuspendSynchronizationJobResponse, err error) {
+	response = CreateSuspendSynchronizationJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SuspendSynchronizationJobWithChan invokes the dts.SuspendSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/suspendsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SuspendSynchronizationJobWithChan(request *SuspendSynchronizationJobRequest) (<-chan *SuspendSynchronizationJobResponse, <-chan error) {
+	responseChan := make(chan *SuspendSynchronizationJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SuspendSynchronizationJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SuspendSynchronizationJobWithCallback invokes the dts.SuspendSynchronizationJob API asynchronously
+// api document: https://help.aliyun.com/api/dts/suspendsynchronizationjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SuspendSynchronizationJobWithCallback(request *SuspendSynchronizationJobRequest, callback func(response *SuspendSynchronizationJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SuspendSynchronizationJobResponse
+		var err error
+		defer close(result)
+		response, err = client.SuspendSynchronizationJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SuspendSynchronizationJobRequest is the request struct for api SuspendSynchronizationJob
+type SuspendSynchronizationJobRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId     string `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationDirection string `position:"Query" name:"SynchronizationDirection"`
+	OwnerId                  string `position:"Query" name:"OwnerId"`
+}
+
+// SuspendSynchronizationJobResponse is the response struct for api SuspendSynchronizationJob
+type SuspendSynchronizationJobResponse struct {
+	*responses.BaseResponse
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSuspendSynchronizationJobRequest creates a request to invoke SuspendSynchronizationJob API
+func CreateSuspendSynchronizationJobRequest() (request *SuspendSynchronizationJobRequest) {
+	request = &SuspendSynchronizationJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "SuspendSynchronizationJob", "dts", "openAPI")
+	return
+}
+
+// CreateSuspendSynchronizationJobResponse creates a response to parse from SuspendSynchronizationJob response
+func CreateSuspendSynchronizationJobResponse() (response *SuspendSynchronizationJobResponse) {
+	response = &SuspendSynchronizationJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/dts/switch_synchronization_endpoint.go

@@ -0,0 +1,118 @@
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+package dts
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// SwitchSynchronizationEndpoint invokes the dts.SwitchSynchronizationEndpoint API synchronously
+// api document: https://help.aliyun.com/api/dts/switchsynchronizationendpoint.html
+func (client *Client) SwitchSynchronizationEndpoint(request *SwitchSynchronizationEndpointRequest) (response *SwitchSynchronizationEndpointResponse, err error) {
+	response = CreateSwitchSynchronizationEndpointResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SwitchSynchronizationEndpointWithChan invokes the dts.SwitchSynchronizationEndpoint API asynchronously
+// api document: https://help.aliyun.com/api/dts/switchsynchronizationendpoint.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SwitchSynchronizationEndpointWithChan(request *SwitchSynchronizationEndpointRequest) (<-chan *SwitchSynchronizationEndpointResponse, <-chan error) {
+	responseChan := make(chan *SwitchSynchronizationEndpointResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SwitchSynchronizationEndpoint(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SwitchSynchronizationEndpointWithCallback invokes the dts.SwitchSynchronizationEndpoint API asynchronously
+// api document: https://help.aliyun.com/api/dts/switchsynchronizationendpoint.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SwitchSynchronizationEndpointWithCallback(request *SwitchSynchronizationEndpointRequest, callback func(response *SwitchSynchronizationEndpointResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SwitchSynchronizationEndpointResponse
+		var err error
+		defer close(result)
+		response, err = client.SwitchSynchronizationEndpoint(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SwitchSynchronizationEndpointRequest is the request struct for api SwitchSynchronizationEndpoint
+type SwitchSynchronizationEndpointRequest struct {
+	*requests.RpcRequest
+	SynchronizationJobId     string                                `position:"Query" name:"SynchronizationJobId"`
+	SynchronizationDirection string                                `position:"Query" name:"SynchronizationDirection"`
+	OwnerId                  string                                `position:"Query" name:"OwnerId"`
+	Endpoint                 SwitchSynchronizationEndpointEndpoint `position:"Query" name:"Endpoint" type:"Struct"`
+}
+
+type SwitchSynchronizationEndpointEndpoint struct {
+	Type         string `name:"Type"`
+	InstanceType string `name:"InstanceType"`
+	InstanceId   string `name:"InstanceId"`
+	IP           string `name:"IP"`
+	Port         string `name:"Port"`
+}
+
+// SwitchSynchronizationEndpointResponse is the response struct for api SwitchSynchronizationEndpoint
+type SwitchSynchronizationEndpointResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	Success    string `json:"Success" xml:"Success"`
+	ErrCode    string `json:"ErrCode" xml:"ErrCode"`
+	ErrMessage string `json:"ErrMessage" xml:"ErrMessage"`
+	TaskId     string `json:"TaskId" xml:"TaskId"`
+}
+
+// CreateSwitchSynchronizationEndpointRequest creates a request to invoke SwitchSynchronizationEndpoint API
+func CreateSwitchSynchronizationEndpointRequest() (request *SwitchSynchronizationEndpointRequest) {
+	request = &SwitchSynchronizationEndpointRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Dts", "2018-08-01", "SwitchSynchronizationEndpoint", "dts", "openAPI")
+	return
+}
+
+// CreateSwitchSynchronizationEndpointResponse creates a response to parse from SwitchSynchronizationEndpoint response
+func CreateSwitchSynchronizationEndpointResponse() (response *SwitchSynchronizationEndpointResponse) {
+	response = &SwitchSynchronizationEndpointResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}