Parcourir la source

Support latest DRDS Open API for version 2019-01-23.

sdk-team il y a 6 ans
Parent
commit
ff074b8d06
100 fichiers modifiés avec 10667 ajouts et 0 suppressions
  1. 3 0
      ChangeLog.txt
  2. 106 0
      services/drds/change_account_password.go
  3. 107 0
      services/drds/change_instance_azone.go
  4. 109 0
      services/drds/change_instance_network.go
  5. 106 0
      services/drds/check_capacity_data_ready.go
  6. 106 0
      services/drds/check_drds_db_name.go
  7. 104 0
      services/drds/check_drds_default_role.go
  8. 106 0
      services/drds/check_expand_status.go
  9. 107 0
      services/drds/check_rds_expand_status.go
  10. 107 0
      services/drds/check_rds_super_account.go
  11. 104 0
      services/drds/check_sls_status.go
  12. 106 0
      services/drds/check_sql_audit_enable_status.go
  13. 113 0
      services/drds/configure_drds_db_instances.go
  14. 128 0
      services/drds/create_drds_db_pre_check.go
  15. 119 0
      services/drds/create_drds_db_preview.go
  16. 113 0
      services/drds/create_instance_account.go
  17. 107 0
      services/drds/create_instance_internet_address.go
  18. 105 0
      services/drds/create_order_for_rds.go
  19. 109 0
      services/drds/create_shard_task.go
  20. 108 0
      services/drds/datalink_replication_precheck.go
  21. 113 0
      services/drds/delete_shard_tasks.go
  22. 105 0
      services/drds/describe_back_menu.go
  23. 107 0
      services/drds/describe_backup_dbs.go
  24. 105 0
      services/drds/describe_backup_local.go
  25. 105 0
      services/drds/describe_backup_policy.go
  26. 107 0
      services/drds/describe_backup_sets.go
  27. 105 0
      services/drds/describe_backup_times.go
  28. 113 0
      services/drds/describe_broadcast_tables.go
  29. 107 0
      services/drds/describe_can_expand_instance_detail_list.go
  30. 110 0
      services/drds/describe_candidate_instance_list.go
  31. 105 0
      services/drds/describe_console_config.go
  32. 110 0
      services/drds/describe_db_instance_dbs.go
  33. 108 0
      services/drds/describe_db_instances.go
  34. 107 0
      services/drds/describe_drds_db_cluster.go
  35. 107 0
      services/drds/describe_drds_db_instance.go
  36. 111 0
      services/drds/describe_drds_db_instances.go
  37. 106 0
      services/drds/describe_drds_db_rds_name_list.go
  38. 106 0
      services/drds/describe_drds_db_rds_relation_info.go
  39. 106 0
      services/drds/describe_drds_db_relation_info.go
  40. 107 0
      services/drds/describe_drds_db_tasks.go
  41. 105 0
      services/drds/describe_drds_instance_level_tasks.go
  42. 105 0
      services/drds/describe_drds_instance_version.go
  43. 107 0
      services/drds/describe_drds_params.go
  44. 103 0
      services/drds/describe_drds_regions.go
  45. 107 0
      services/drds/describe_drds_sharding_dbs.go
  46. 114 0
      services/drds/describe_drds_slow_sqls.go
  47. 105 0
      services/drds/describe_drds_sql_audit_status.go
  48. 107 0
      services/drds/describe_drds_tasks.go
  49. 106 0
      services/drds/describe_expand_logic_table_info_list.go
  50. 106 0
      services/drds/describe_global_broadcast_type.go
  51. 106 0
      services/drds/describe_hi_store_instance_info.go
  52. 107 0
      services/drds/describe_hot_db_list.go
  53. 106 0
      services/drds/describe_inst_db_log_info.go
  54. 106 0
      services/drds/describe_inst_db_sls_info.go
  55. 105 0
      services/drds/describe_instance_accounts.go
  56. 105 0
      services/drds/describe_instance_menu_switch.go
  57. 105 0
      services/drds/describe_instance_switch_azone.go
  58. 105 0
      services/drds/describe_instance_switch_network.go
  59. 106 0
      services/drds/describe_pre_check_result.go
  60. 107 0
      services/drds/describe_rds_commodity.go
  61. 110 0
      services/drds/describe_rds_performance.go
  62. 106 0
      services/drds/describe_rds_performance_summary.go
  63. 105 0
      services/drds/describe_rds_price.go
  64. 106 0
      services/drds/describe_rds_super_account_instances.go
  65. 105 0
      services/drds/describe_rds_vpc_for_zone.go
  66. 106 0
      services/drds/describe_recycle_bin_status.go
  67. 106 0
      services/drds/describe_recycle_bin_tables.go
  68. 110 0
      services/drds/describe_restore_order.go
  69. 108 0
      services/drds/describe_shard_task_info.go
  70. 113 0
      services/drds/describe_shard_task_list.go
  71. 105 0
      services/drds/describe_sql_flashbak_task.go
  72. 116 0
      services/drds/describe_src_rds_list.go
  73. 108 0
      services/drds/describe_storage_instance_sub_db_info.go
  74. 107 0
      services/drds/describe_table.go
  75. 113 0
      services/drds/describe_table_list_by_type.go
  76. 112 0
      services/drds/describe_tables.go
  77. 106 0
      services/drds/disable_sql_audit.go
  78. 105 0
      services/drds/enable_instance_ipv6_address.go
  79. 109 0
      services/drds/enable_sql_audit.go
  80. 106 0
      services/drds/enable_sql_flashback_match_switch.go
  81. 107 0
      services/drds/flashback_recycle_bin_table.go
  82. 109 0
      services/drds/get_candidate_instance_list.go
  83. 105 0
      services/drds/get_expand_logic_table_info_list.go
  84. 105 0
      services/drds/get_hot_db_list.go
  85. 105 0
      services/drds/get_logic_table_info_list.go
  86. 115 0
      services/drds/get_src_rds_list.go
  87. 116 0
      services/drds/list_tag_resources.go
  88. 107 0
      services/drds/migrate_jst_drds_db_across_region.go
  89. 106 0
      services/drds/modify_account_description.go
  90. 112 0
      services/drds/modify_account_privilege.go
  91. 108 0
      services/drds/modify_polar_db_read_weight.go
  92. 105 0
      services/drds/pre_check_create_hi_store_instance.go
  93. 108 0
      services/drds/pre_check_sql_flashback_task.go
  94. 110 0
      services/drds/put_restore_pre_check.go
  95. 108 0
      services/drds/put_start_backup.go
  96. 110 0
      services/drds/rearrange_db_to_instance.go
  97. 106 0
      services/drds/refresh_drds_atom_url.go
  98. 106 0
      services/drds/refresh_jst_migrate_drds_db_atom_url.go
  99. 106 0
      services/drds/release_hi_store_instance.go
  100. 105 0
      services/drds/release_instance_internet_address.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-08-30 Version: 1.60.129
+- Support latest DRDS Open API for version 2019-01-23.
+
 2019-08-30 Version: 1.60.128
 - Supported Meida complex for IMM.
 

+ 106 - 0
services/drds/change_account_password.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ChangeAccountPassword invokes the drds.ChangeAccountPassword API synchronously
+// api document: https://help.aliyun.com/api/drds/changeaccountpassword.html
+func (client *Client) ChangeAccountPassword(request *ChangeAccountPasswordRequest) (response *ChangeAccountPasswordResponse, err error) {
+	response = CreateChangeAccountPasswordResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ChangeAccountPasswordWithChan invokes the drds.ChangeAccountPassword API asynchronously
+// api document: https://help.aliyun.com/api/drds/changeaccountpassword.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeAccountPasswordWithChan(request *ChangeAccountPasswordRequest) (<-chan *ChangeAccountPasswordResponse, <-chan error) {
+	responseChan := make(chan *ChangeAccountPasswordResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ChangeAccountPassword(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ChangeAccountPasswordWithCallback invokes the drds.ChangeAccountPassword API asynchronously
+// api document: https://help.aliyun.com/api/drds/changeaccountpassword.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeAccountPasswordWithCallback(request *ChangeAccountPasswordRequest, callback func(response *ChangeAccountPasswordResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ChangeAccountPasswordResponse
+		var err error
+		defer close(result)
+		response, err = client.ChangeAccountPassword(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ChangeAccountPasswordRequest is the request struct for api ChangeAccountPassword
+type ChangeAccountPasswordRequest struct {
+	*requests.RpcRequest
+	Password       string `position:"Query" name:"Password"`
+	AccountName    string `position:"Query" name:"AccountName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ChangeAccountPasswordResponse is the response struct for api ChangeAccountPassword
+type ChangeAccountPasswordResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateChangeAccountPasswordRequest creates a request to invoke ChangeAccountPassword API
+func CreateChangeAccountPasswordRequest() (request *ChangeAccountPasswordRequest) {
+	request = &ChangeAccountPasswordRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ChangeAccountPassword", "drds", "openAPI")
+	return
+}
+
+// CreateChangeAccountPasswordResponse creates a response to parse from ChangeAccountPassword response
+func CreateChangeAccountPasswordResponse() (response *ChangeAccountPasswordResponse) {
+	response = &ChangeAccountPasswordResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/change_instance_azone.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ChangeInstanceAzone invokes the drds.ChangeInstanceAzone API synchronously
+// api document: https://help.aliyun.com/api/drds/changeinstanceazone.html
+func (client *Client) ChangeInstanceAzone(request *ChangeInstanceAzoneRequest) (response *ChangeInstanceAzoneResponse, err error) {
+	response = CreateChangeInstanceAzoneResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ChangeInstanceAzoneWithChan invokes the drds.ChangeInstanceAzone API asynchronously
+// api document: https://help.aliyun.com/api/drds/changeinstanceazone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeInstanceAzoneWithChan(request *ChangeInstanceAzoneRequest) (<-chan *ChangeInstanceAzoneResponse, <-chan error) {
+	responseChan := make(chan *ChangeInstanceAzoneResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ChangeInstanceAzone(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ChangeInstanceAzoneWithCallback invokes the drds.ChangeInstanceAzone API asynchronously
+// api document: https://help.aliyun.com/api/drds/changeinstanceazone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeInstanceAzoneWithCallback(request *ChangeInstanceAzoneRequest, callback func(response *ChangeInstanceAzoneResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ChangeInstanceAzoneResponse
+		var err error
+		defer close(result)
+		response, err = client.ChangeInstanceAzone(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ChangeInstanceAzoneRequest is the request struct for api ChangeInstanceAzone
+type ChangeInstanceAzoneRequest struct {
+	*requests.RpcRequest
+	OriginAzoneId  string `position:"Query" name:"OriginAzoneId"`
+	TargetAzoneId  string `position:"Query" name:"TargetAzoneId"`
+	DrdsRegionId   string `position:"Query" name:"DrdsRegionId"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ChangeInstanceAzoneResponse is the response struct for api ChangeInstanceAzone
+type ChangeInstanceAzoneResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateChangeInstanceAzoneRequest creates a request to invoke ChangeInstanceAzone API
+func CreateChangeInstanceAzoneRequest() (request *ChangeInstanceAzoneRequest) {
+	request = &ChangeInstanceAzoneRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ChangeInstanceAzone", "drds", "openAPI")
+	return
+}
+
+// CreateChangeInstanceAzoneResponse creates a response to parse from ChangeInstanceAzone response
+func CreateChangeInstanceAzoneResponse() (response *ChangeInstanceAzoneResponse) {
+	response = &ChangeInstanceAzoneResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/drds/change_instance_network.go

@@ -0,0 +1,109 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ChangeInstanceNetwork invokes the drds.ChangeInstanceNetwork API synchronously
+// api document: https://help.aliyun.com/api/drds/changeinstancenetwork.html
+func (client *Client) ChangeInstanceNetwork(request *ChangeInstanceNetworkRequest) (response *ChangeInstanceNetworkResponse, err error) {
+	response = CreateChangeInstanceNetworkResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ChangeInstanceNetworkWithChan invokes the drds.ChangeInstanceNetwork API asynchronously
+// api document: https://help.aliyun.com/api/drds/changeinstancenetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeInstanceNetworkWithChan(request *ChangeInstanceNetworkRequest) (<-chan *ChangeInstanceNetworkResponse, <-chan error) {
+	responseChan := make(chan *ChangeInstanceNetworkResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ChangeInstanceNetwork(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ChangeInstanceNetworkWithCallback invokes the drds.ChangeInstanceNetwork API asynchronously
+// api document: https://help.aliyun.com/api/drds/changeinstancenetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChangeInstanceNetworkWithCallback(request *ChangeInstanceNetworkRequest, callback func(response *ChangeInstanceNetworkResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ChangeInstanceNetworkResponse
+		var err error
+		defer close(result)
+		response, err = client.ChangeInstanceNetwork(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ChangeInstanceNetworkRequest is the request struct for api ChangeInstanceNetwork
+type ChangeInstanceNetworkRequest struct {
+	*requests.RpcRequest
+	VswitchId              string           `position:"Query" name:"VswitchId"`
+	RetainClassic          requests.Boolean `position:"Query" name:"RetainClassic"`
+	ClassicExpiredDays     requests.Integer `position:"Query" name:"ClassicExpiredDays"`
+	VpcId                  string           `position:"Query" name:"VpcId"`
+	SrcInstanceNetworkType string           `position:"Query" name:"SrcInstanceNetworkType"`
+	DrdsInstanceId         string           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ChangeInstanceNetworkResponse is the response struct for api ChangeInstanceNetwork
+type ChangeInstanceNetworkResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateChangeInstanceNetworkRequest creates a request to invoke ChangeInstanceNetwork API
+func CreateChangeInstanceNetworkRequest() (request *ChangeInstanceNetworkRequest) {
+	request = &ChangeInstanceNetworkRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ChangeInstanceNetwork", "drds", "openAPI")
+	return
+}
+
+// CreateChangeInstanceNetworkResponse creates a response to parse from ChangeInstanceNetwork response
+func CreateChangeInstanceNetworkResponse() (response *ChangeInstanceNetworkResponse) {
+	response = &ChangeInstanceNetworkResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/check_capacity_data_ready.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckCapacityDataReady invokes the drds.CheckCapacityDataReady API synchronously
+// api document: https://help.aliyun.com/api/drds/checkcapacitydataready.html
+func (client *Client) CheckCapacityDataReady(request *CheckCapacityDataReadyRequest) (response *CheckCapacityDataReadyResponse, err error) {
+	response = CreateCheckCapacityDataReadyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckCapacityDataReadyWithChan invokes the drds.CheckCapacityDataReady API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkcapacitydataready.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckCapacityDataReadyWithChan(request *CheckCapacityDataReadyRequest) (<-chan *CheckCapacityDataReadyResponse, <-chan error) {
+	responseChan := make(chan *CheckCapacityDataReadyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckCapacityDataReady(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckCapacityDataReadyWithCallback invokes the drds.CheckCapacityDataReady API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkcapacitydataready.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckCapacityDataReadyWithCallback(request *CheckCapacityDataReadyRequest, callback func(response *CheckCapacityDataReadyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckCapacityDataReadyResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckCapacityDataReady(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckCapacityDataReadyRequest is the request struct for api CheckCapacityDataReady
+type CheckCapacityDataReadyRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CheckCapacityDataReadyResponse is the response struct for api CheckCapacityDataReady
+type CheckCapacityDataReadyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateCheckCapacityDataReadyRequest creates a request to invoke CheckCapacityDataReady API
+func CreateCheckCapacityDataReadyRequest() (request *CheckCapacityDataReadyRequest) {
+	request = &CheckCapacityDataReadyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckCapacityDataReady", "drds", "openAPI")
+	return
+}
+
+// CreateCheckCapacityDataReadyResponse creates a response to parse from CheckCapacityDataReady response
+func CreateCheckCapacityDataReadyResponse() (response *CheckCapacityDataReadyResponse) {
+	response = &CheckCapacityDataReadyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/check_drds_db_name.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckDrdsDbName invokes the drds.CheckDrdsDbName API synchronously
+// api document: https://help.aliyun.com/api/drds/checkdrdsdbname.html
+func (client *Client) CheckDrdsDbName(request *CheckDrdsDbNameRequest) (response *CheckDrdsDbNameResponse, err error) {
+	response = CreateCheckDrdsDbNameResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckDrdsDbNameWithChan invokes the drds.CheckDrdsDbName API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkdrdsdbname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckDrdsDbNameWithChan(request *CheckDrdsDbNameRequest) (<-chan *CheckDrdsDbNameResponse, <-chan error) {
+	responseChan := make(chan *CheckDrdsDbNameResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckDrdsDbName(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckDrdsDbNameWithCallback invokes the drds.CheckDrdsDbName API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkdrdsdbname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckDrdsDbNameWithCallback(request *CheckDrdsDbNameRequest, callback func(response *CheckDrdsDbNameResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckDrdsDbNameResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckDrdsDbName(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckDrdsDbNameRequest is the request struct for api CheckDrdsDbName
+type CheckDrdsDbNameRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CheckDrdsDbNameResponse is the response struct for api CheckDrdsDbName
+type CheckDrdsDbNameResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateCheckDrdsDbNameRequest creates a request to invoke CheckDrdsDbName API
+func CreateCheckDrdsDbNameRequest() (request *CheckDrdsDbNameRequest) {
+	request = &CheckDrdsDbNameRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckDrdsDbName", "drds", "openAPI")
+	return
+}
+
+// CreateCheckDrdsDbNameResponse creates a response to parse from CheckDrdsDbName response
+func CreateCheckDrdsDbNameResponse() (response *CheckDrdsDbNameResponse) {
+	response = &CheckDrdsDbNameResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/drds/check_drds_default_role.go

@@ -0,0 +1,104 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckDrdsDefaultRole invokes the drds.CheckDrdsDefaultRole API synchronously
+// api document: https://help.aliyun.com/api/drds/checkdrdsdefaultrole.html
+func (client *Client) CheckDrdsDefaultRole(request *CheckDrdsDefaultRoleRequest) (response *CheckDrdsDefaultRoleResponse, err error) {
+	response = CreateCheckDrdsDefaultRoleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckDrdsDefaultRoleWithChan invokes the drds.CheckDrdsDefaultRole API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkdrdsdefaultrole.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckDrdsDefaultRoleWithChan(request *CheckDrdsDefaultRoleRequest) (<-chan *CheckDrdsDefaultRoleResponse, <-chan error) {
+	responseChan := make(chan *CheckDrdsDefaultRoleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckDrdsDefaultRole(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckDrdsDefaultRoleWithCallback invokes the drds.CheckDrdsDefaultRole API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkdrdsdefaultrole.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckDrdsDefaultRoleWithCallback(request *CheckDrdsDefaultRoleRequest, callback func(response *CheckDrdsDefaultRoleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckDrdsDefaultRoleResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckDrdsDefaultRole(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckDrdsDefaultRoleRequest is the request struct for api CheckDrdsDefaultRole
+type CheckDrdsDefaultRoleRequest struct {
+	*requests.RpcRequest
+}
+
+// CheckDrdsDefaultRoleResponse is the response struct for api CheckDrdsDefaultRole
+type CheckDrdsDefaultRoleResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	Success   bool      `json:"Success" xml:"Success"`
+	RoleAuths RoleAuths `json:"RoleAuths" xml:"RoleAuths"`
+}
+
+// CreateCheckDrdsDefaultRoleRequest creates a request to invoke CheckDrdsDefaultRole API
+func CreateCheckDrdsDefaultRoleRequest() (request *CheckDrdsDefaultRoleRequest) {
+	request = &CheckDrdsDefaultRoleRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckDrdsDefaultRole", "drds", "openAPI")
+	return
+}
+
+// CreateCheckDrdsDefaultRoleResponse creates a response to parse from CheckDrdsDefaultRole response
+func CreateCheckDrdsDefaultRoleResponse() (response *CheckDrdsDefaultRoleResponse) {
+	response = &CheckDrdsDefaultRoleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/check_expand_status.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckExpandStatus invokes the drds.CheckExpandStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/checkexpandstatus.html
+func (client *Client) CheckExpandStatus(request *CheckExpandStatusRequest) (response *CheckExpandStatusResponse, err error) {
+	response = CreateCheckExpandStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckExpandStatusWithChan invokes the drds.CheckExpandStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkexpandstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckExpandStatusWithChan(request *CheckExpandStatusRequest) (<-chan *CheckExpandStatusResponse, <-chan error) {
+	responseChan := make(chan *CheckExpandStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckExpandStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckExpandStatusWithCallback invokes the drds.CheckExpandStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkexpandstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckExpandStatusWithCallback(request *CheckExpandStatusRequest, callback func(response *CheckExpandStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckExpandStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckExpandStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckExpandStatusRequest is the request struct for api CheckExpandStatus
+type CheckExpandStatusRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CheckExpandStatusResponse is the response struct for api CheckExpandStatus
+type CheckExpandStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateCheckExpandStatusRequest creates a request to invoke CheckExpandStatus API
+func CreateCheckExpandStatusRequest() (request *CheckExpandStatusRequest) {
+	request = &CheckExpandStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckExpandStatus", "drds", "openAPI")
+	return
+}
+
+// CreateCheckExpandStatusResponse creates a response to parse from CheckExpandStatus response
+func CreateCheckExpandStatusResponse() (response *CheckExpandStatusResponse) {
+	response = &CheckExpandStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/check_rds_expand_status.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckRdsExpandStatus invokes the drds.CheckRdsExpandStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/checkrdsexpandstatus.html
+func (client *Client) CheckRdsExpandStatus(request *CheckRdsExpandStatusRequest) (response *CheckRdsExpandStatusResponse, err error) {
+	response = CreateCheckRdsExpandStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckRdsExpandStatusWithChan invokes the drds.CheckRdsExpandStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkrdsexpandstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRdsExpandStatusWithChan(request *CheckRdsExpandStatusRequest) (<-chan *CheckRdsExpandStatusResponse, <-chan error) {
+	responseChan := make(chan *CheckRdsExpandStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckRdsExpandStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckRdsExpandStatusWithCallback invokes the drds.CheckRdsExpandStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkrdsexpandstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRdsExpandStatusWithCallback(request *CheckRdsExpandStatusRequest, callback func(response *CheckRdsExpandStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckRdsExpandStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckRdsExpandStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckRdsExpandStatusRequest is the request struct for api CheckRdsExpandStatus
+type CheckRdsExpandStatusRequest struct {
+	*requests.RpcRequest
+	InstanceList   *[]string `position:"Query" name:"InstanceList"  type:"Repeated"`
+	DbName         string    `position:"Query" name:"DbName"`
+	DrdsInstanceId string    `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CheckRdsExpandStatusResponse is the response struct for api CheckRdsExpandStatus
+type CheckRdsExpandStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateCheckRdsExpandStatusRequest creates a request to invoke CheckRdsExpandStatus API
+func CreateCheckRdsExpandStatusRequest() (request *CheckRdsExpandStatusRequest) {
+	request = &CheckRdsExpandStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckRdsExpandStatus", "drds", "openAPI")
+	return
+}
+
+// CreateCheckRdsExpandStatusResponse creates a response to parse from CheckRdsExpandStatus response
+func CreateCheckRdsExpandStatusResponse() (response *CheckRdsExpandStatusResponse) {
+	response = &CheckRdsExpandStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/check_rds_super_account.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckRdsSuperAccount invokes the drds.CheckRdsSuperAccount API synchronously
+// api document: https://help.aliyun.com/api/drds/checkrdssuperaccount.html
+func (client *Client) CheckRdsSuperAccount(request *CheckRdsSuperAccountRequest) (response *CheckRdsSuperAccountResponse, err error) {
+	response = CreateCheckRdsSuperAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckRdsSuperAccountWithChan invokes the drds.CheckRdsSuperAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkrdssuperaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRdsSuperAccountWithChan(request *CheckRdsSuperAccountRequest) (<-chan *CheckRdsSuperAccountResponse, <-chan error) {
+	responseChan := make(chan *CheckRdsSuperAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckRdsSuperAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckRdsSuperAccountWithCallback invokes the drds.CheckRdsSuperAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkrdssuperaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRdsSuperAccountWithCallback(request *CheckRdsSuperAccountRequest, callback func(response *CheckRdsSuperAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckRdsSuperAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckRdsSuperAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckRdsSuperAccountRequest is the request struct for api CheckRdsSuperAccount
+type CheckRdsSuperAccountRequest struct {
+	*requests.RpcRequest
+	Password       string `position:"Query" name:"Password"`
+	AccountName    string `position:"Query" name:"AccountName"`
+	DbInstanceId   string `position:"Query" name:"DbInstanceId"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CheckRdsSuperAccountResponse is the response struct for api CheckRdsSuperAccount
+type CheckRdsSuperAccountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateCheckRdsSuperAccountRequest creates a request to invoke CheckRdsSuperAccount API
+func CreateCheckRdsSuperAccountRequest() (request *CheckRdsSuperAccountRequest) {
+	request = &CheckRdsSuperAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckRdsSuperAccount", "drds", "openAPI")
+	return
+}
+
+// CreateCheckRdsSuperAccountResponse creates a response to parse from CheckRdsSuperAccount response
+func CreateCheckRdsSuperAccountResponse() (response *CheckRdsSuperAccountResponse) {
+	response = &CheckRdsSuperAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/drds/check_sls_status.go

@@ -0,0 +1,104 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckSlsStatus invokes the drds.CheckSlsStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/checkslsstatus.html
+func (client *Client) CheckSlsStatus(request *CheckSlsStatusRequest) (response *CheckSlsStatusResponse, err error) {
+	response = CreateCheckSlsStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckSlsStatusWithChan invokes the drds.CheckSlsStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkslsstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckSlsStatusWithChan(request *CheckSlsStatusRequest) (<-chan *CheckSlsStatusResponse, <-chan error) {
+	responseChan := make(chan *CheckSlsStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckSlsStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckSlsStatusWithCallback invokes the drds.CheckSlsStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checkslsstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckSlsStatusWithCallback(request *CheckSlsStatusRequest, callback func(response *CheckSlsStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckSlsStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckSlsStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckSlsStatusRequest is the request struct for api CheckSlsStatus
+type CheckSlsStatusRequest struct {
+	*requests.RpcRequest
+}
+
+// CheckSlsStatusResponse is the response struct for api CheckSlsStatus
+type CheckSlsStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Status    string `json:"Status" xml:"Status"`
+}
+
+// CreateCheckSlsStatusRequest creates a request to invoke CheckSlsStatus API
+func CreateCheckSlsStatusRequest() (request *CheckSlsStatusRequest) {
+	request = &CheckSlsStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckSlsStatus", "drds", "openAPI")
+	return
+}
+
+// CreateCheckSlsStatusResponse creates a response to parse from CheckSlsStatus response
+func CreateCheckSlsStatusResponse() (response *CheckSlsStatusResponse) {
+	response = &CheckSlsStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/check_sql_audit_enable_status.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckSqlAuditEnableStatus invokes the drds.CheckSqlAuditEnableStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/checksqlauditenablestatus.html
+func (client *Client) CheckSqlAuditEnableStatus(request *CheckSqlAuditEnableStatusRequest) (response *CheckSqlAuditEnableStatusResponse, err error) {
+	response = CreateCheckSqlAuditEnableStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckSqlAuditEnableStatusWithChan invokes the drds.CheckSqlAuditEnableStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checksqlauditenablestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckSqlAuditEnableStatusWithChan(request *CheckSqlAuditEnableStatusRequest) (<-chan *CheckSqlAuditEnableStatusResponse, <-chan error) {
+	responseChan := make(chan *CheckSqlAuditEnableStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckSqlAuditEnableStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckSqlAuditEnableStatusWithCallback invokes the drds.CheckSqlAuditEnableStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/checksqlauditenablestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckSqlAuditEnableStatusWithCallback(request *CheckSqlAuditEnableStatusRequest, callback func(response *CheckSqlAuditEnableStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckSqlAuditEnableStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckSqlAuditEnableStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckSqlAuditEnableStatusRequest is the request struct for api CheckSqlAuditEnableStatus
+type CheckSqlAuditEnableStatusRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CheckSqlAuditEnableStatusResponse is the response struct for api CheckSqlAuditEnableStatus
+type CheckSqlAuditEnableStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Status    string `json:"Status" xml:"Status"`
+}
+
+// CreateCheckSqlAuditEnableStatusRequest creates a request to invoke CheckSqlAuditEnableStatus API
+func CreateCheckSqlAuditEnableStatusRequest() (request *CheckSqlAuditEnableStatusRequest) {
+	request = &CheckSqlAuditEnableStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CheckSqlAuditEnableStatus", "drds", "openAPI")
+	return
+}
+
+// CreateCheckSqlAuditEnableStatusResponse creates a response to parse from CheckSqlAuditEnableStatus response
+func CreateCheckSqlAuditEnableStatusResponse() (response *CheckSqlAuditEnableStatusResponse) {
+	response = &CheckSqlAuditEnableStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/drds/configure_drds_db_instances.go

@@ -0,0 +1,113 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ConfigureDrdsDbInstances invokes the drds.ConfigureDrdsDbInstances API synchronously
+// api document: https://help.aliyun.com/api/drds/configuredrdsdbinstances.html
+func (client *Client) ConfigureDrdsDbInstances(request *ConfigureDrdsDbInstancesRequest) (response *ConfigureDrdsDbInstancesResponse, err error) {
+	response = CreateConfigureDrdsDbInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ConfigureDrdsDbInstancesWithChan invokes the drds.ConfigureDrdsDbInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/configuredrdsdbinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureDrdsDbInstancesWithChan(request *ConfigureDrdsDbInstancesRequest) (<-chan *ConfigureDrdsDbInstancesResponse, <-chan error) {
+	responseChan := make(chan *ConfigureDrdsDbInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ConfigureDrdsDbInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ConfigureDrdsDbInstancesWithCallback invokes the drds.ConfigureDrdsDbInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/configuredrdsdbinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigureDrdsDbInstancesWithCallback(request *ConfigureDrdsDbInstancesRequest, callback func(response *ConfigureDrdsDbInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ConfigureDrdsDbInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.ConfigureDrdsDbInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ConfigureDrdsDbInstancesRequest is the request struct for api ConfigureDrdsDbInstances
+type ConfigureDrdsDbInstancesRequest struct {
+	*requests.RpcRequest
+	DbName         string                                `position:"Query" name:"DbName"`
+	DbInstance     *[]ConfigureDrdsDbInstancesDbInstance `position:"Query" name:"DbInstance"  type:"Repeated"`
+	DrdsInstanceId string                                `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ConfigureDrdsDbInstancesDbInstance is a repeated param struct in ConfigureDrdsDbInstancesRequest
+type ConfigureDrdsDbInstancesDbInstance struct {
+	SlaveDbInstanceType string `name:"SlaveDbInstanceType"`
+	SlaveDbInstanceId   string `name:"SlaveDbInstanceId"`
+	MasterDbInstanceId  string `name:"MasterDbInstanceId"`
+}
+
+// ConfigureDrdsDbInstancesResponse is the response struct for api ConfigureDrdsDbInstances
+type ConfigureDrdsDbInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateConfigureDrdsDbInstancesRequest creates a request to invoke ConfigureDrdsDbInstances API
+func CreateConfigureDrdsDbInstancesRequest() (request *ConfigureDrdsDbInstancesRequest) {
+	request = &ConfigureDrdsDbInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ConfigureDrdsDbInstances", "drds", "openAPI")
+	return
+}
+
+// CreateConfigureDrdsDbInstancesResponse creates a response to parse from ConfigureDrdsDbInstances response
+func CreateConfigureDrdsDbInstancesResponse() (response *ConfigureDrdsDbInstancesResponse) {
+	response = &ConfigureDrdsDbInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 128 - 0
services/drds/create_drds_db_pre_check.go

@@ -0,0 +1,128 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateDrdsDBPreCheck invokes the drds.CreateDrdsDBPreCheck API synchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdbprecheck.html
+func (client *Client) CreateDrdsDBPreCheck(request *CreateDrdsDBPreCheckRequest) (response *CreateDrdsDBPreCheckResponse, err error) {
+	response = CreateCreateDrdsDBPreCheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateDrdsDBPreCheckWithChan invokes the drds.CreateDrdsDBPreCheck API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdbprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsDBPreCheckWithChan(request *CreateDrdsDBPreCheckRequest) (<-chan *CreateDrdsDBPreCheckResponse, <-chan error) {
+	responseChan := make(chan *CreateDrdsDBPreCheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDrdsDBPreCheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDrdsDBPreCheckWithCallback invokes the drds.CreateDrdsDBPreCheck API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdbprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsDBPreCheckWithCallback(request *CreateDrdsDBPreCheckRequest, callback func(response *CreateDrdsDBPreCheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDrdsDBPreCheckResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDrdsDBPreCheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDrdsDBPreCheckRequest is the request struct for api CreateDrdsDBPreCheck
+type CreateDrdsDBPreCheckRequest struct {
+	*requests.RpcRequest
+	Encode               string                                 `position:"Query" name:"Encode"`
+	InstDbName           *[]CreateDrdsDBPreCheckInstDbName      `position:"Query" name:"InstDbName"  type:"Repeated"`
+	Password             string                                 `position:"Query" name:"Password"`
+	RdsSuperAccount      *[]CreateDrdsDBPreCheckRdsSuperAccount `position:"Query" name:"RdsSuperAccount"  type:"Repeated"`
+	DbName               string                                 `position:"Query" name:"DbName"`
+	AccountName          string                                 `position:"Query" name:"AccountName"`
+	RdsInstance          *[]string                              `position:"Query" name:"RdsInstance"  type:"Repeated"`
+	Type                 string                                 `position:"Query" name:"Type"`
+	DbInstType           string                                 `position:"Query" name:"DbInstType"`
+	DrdsInstanceId       string                                 `position:"Query" name:"DrdsInstanceId"`
+	DbInstanceIsCreating requests.Boolean                       `position:"Query" name:"DbInstanceIsCreating"`
+}
+
+// CreateDrdsDBPreCheckInstDbName is a repeated param struct in CreateDrdsDBPreCheckRequest
+type CreateDrdsDBPreCheckInstDbName struct {
+	ShardDbName  *[]string `name:"ShardDbName" type:"Repeated"`
+	DbInstanceId string    `name:"DbInstanceId"`
+}
+
+// CreateDrdsDBPreCheckRdsSuperAccount is a repeated param struct in CreateDrdsDBPreCheckRequest
+type CreateDrdsDBPreCheckRdsSuperAccount struct {
+	Password     string `name:"Password"`
+	AccountName  string `name:"AccountName"`
+	DbInstanceId string `name:"DbInstanceId"`
+}
+
+// CreateDrdsDBPreCheckResponse is the response struct for api CreateDrdsDBPreCheck
+type CreateDrdsDBPreCheckResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	TaskId    int64  `json:"TaskId" xml:"TaskId"`
+}
+
+// CreateCreateDrdsDBPreCheckRequest creates a request to invoke CreateDrdsDBPreCheck API
+func CreateCreateDrdsDBPreCheckRequest() (request *CreateDrdsDBPreCheckRequest) {
+	request = &CreateDrdsDBPreCheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CreateDrdsDBPreCheck", "drds", "openAPI")
+	return
+}
+
+// CreateCreateDrdsDBPreCheckResponse creates a response to parse from CreateDrdsDBPreCheck response
+func CreateCreateDrdsDBPreCheckResponse() (response *CreateDrdsDBPreCheckResponse) {
+	response = &CreateDrdsDBPreCheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 119 - 0
services/drds/create_drds_db_preview.go

@@ -0,0 +1,119 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateDrdsDBPreview invokes the drds.CreateDrdsDBPreview API synchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdbpreview.html
+func (client *Client) CreateDrdsDBPreview(request *CreateDrdsDBPreviewRequest) (response *CreateDrdsDBPreviewResponse, err error) {
+	response = CreateCreateDrdsDBPreviewResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateDrdsDBPreviewWithChan invokes the drds.CreateDrdsDBPreview API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdbpreview.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsDBPreviewWithChan(request *CreateDrdsDBPreviewRequest) (<-chan *CreateDrdsDBPreviewResponse, <-chan error) {
+	responseChan := make(chan *CreateDrdsDBPreviewResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDrdsDBPreview(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDrdsDBPreviewWithCallback invokes the drds.CreateDrdsDBPreview API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdbpreview.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsDBPreviewWithCallback(request *CreateDrdsDBPreviewRequest, callback func(response *CreateDrdsDBPreviewResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDrdsDBPreviewResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDrdsDBPreview(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDrdsDBPreviewRequest is the request struct for api CreateDrdsDBPreview
+type CreateDrdsDBPreviewRequest struct {
+	*requests.RpcRequest
+	InstDbName           *[]CreateDrdsDBPreviewInstDbName `position:"Query" name:"InstDbName"  type:"Repeated"`
+	DbName               string                           `position:"Query" name:"DbName"`
+	AccountName          string                           `position:"Query" name:"AccountName"`
+	OrderId              string                           `position:"Query" name:"OrderId"`
+	RdsInstance          *[]string                        `position:"Query" name:"RdsInstance"  type:"Repeated"`
+	Type                 string                           `position:"Query" name:"Type"`
+	DbInstType           string                           `position:"Query" name:"DbInstType"`
+	DrdsInstanceId       string                           `position:"Query" name:"DrdsInstanceId"`
+	DbInstanceIsCreating requests.Boolean                 `position:"Query" name:"DbInstanceIsCreating"`
+}
+
+// CreateDrdsDBPreviewInstDbName is a repeated param struct in CreateDrdsDBPreviewRequest
+type CreateDrdsDBPreviewInstDbName struct {
+	ShardDbName  *[]string `name:"ShardDbName" type:"Repeated"`
+	DbInstanceId string    `name:"DbInstanceId"`
+}
+
+// CreateDrdsDBPreviewResponse is the response struct for api CreateDrdsDBPreview
+type CreateDrdsDBPreviewResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Success   bool                       `json:"Success" xml:"Success"`
+	Items     ItemsInCreateDrdsDBPreview `json:"Items" xml:"Items"`
+}
+
+// CreateCreateDrdsDBPreviewRequest creates a request to invoke CreateDrdsDBPreview API
+func CreateCreateDrdsDBPreviewRequest() (request *CreateDrdsDBPreviewRequest) {
+	request = &CreateDrdsDBPreviewRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CreateDrdsDBPreview", "drds", "openAPI")
+	return
+}
+
+// CreateCreateDrdsDBPreviewResponse creates a response to parse from CreateDrdsDBPreview response
+func CreateCreateDrdsDBPreviewResponse() (response *CreateDrdsDBPreviewResponse) {
+	response = &CreateDrdsDBPreviewResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/drds/create_instance_account.go

@@ -0,0 +1,113 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateInstanceAccount invokes the drds.CreateInstanceAccount API synchronously
+// api document: https://help.aliyun.com/api/drds/createinstanceaccount.html
+func (client *Client) CreateInstanceAccount(request *CreateInstanceAccountRequest) (response *CreateInstanceAccountResponse, err error) {
+	response = CreateCreateInstanceAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateInstanceAccountWithChan invokes the drds.CreateInstanceAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/createinstanceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceAccountWithChan(request *CreateInstanceAccountRequest) (<-chan *CreateInstanceAccountResponse, <-chan error) {
+	responseChan := make(chan *CreateInstanceAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateInstanceAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateInstanceAccountWithCallback invokes the drds.CreateInstanceAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/createinstanceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceAccountWithCallback(request *CreateInstanceAccountRequest, callback func(response *CreateInstanceAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateInstanceAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateInstanceAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateInstanceAccountRequest is the request struct for api CreateInstanceAccount
+type CreateInstanceAccountRequest struct {
+	*requests.RpcRequest
+	Password       string                              `position:"Query" name:"Password"`
+	AccountName    string                              `position:"Query" name:"AccountName"`
+	DrdsInstanceId string                              `position:"Query" name:"DrdsInstanceId"`
+	DbPrivilege    *[]CreateInstanceAccountDbPrivilege `position:"Query" name:"DbPrivilege"  type:"Repeated"`
+}
+
+// CreateInstanceAccountDbPrivilege is a repeated param struct in CreateInstanceAccountRequest
+type CreateInstanceAccountDbPrivilege struct {
+	DbName    string `name:"DbName"`
+	Privilege string `name:"Privilege"`
+}
+
+// CreateInstanceAccountResponse is the response struct for api CreateInstanceAccount
+type CreateInstanceAccountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateCreateInstanceAccountRequest creates a request to invoke CreateInstanceAccount API
+func CreateCreateInstanceAccountRequest() (request *CreateInstanceAccountRequest) {
+	request = &CreateInstanceAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CreateInstanceAccount", "drds", "openAPI")
+	return
+}
+
+// CreateCreateInstanceAccountResponse creates a response to parse from CreateInstanceAccount response
+func CreateCreateInstanceAccountResponse() (response *CreateInstanceAccountResponse) {
+	response = &CreateInstanceAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/create_instance_internet_address.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateInstanceInternetAddress invokes the drds.CreateInstanceInternetAddress API synchronously
+// api document: https://help.aliyun.com/api/drds/createinstanceinternetaddress.html
+func (client *Client) CreateInstanceInternetAddress(request *CreateInstanceInternetAddressRequest) (response *CreateInstanceInternetAddressResponse, err error) {
+	response = CreateCreateInstanceInternetAddressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateInstanceInternetAddressWithChan invokes the drds.CreateInstanceInternetAddress API asynchronously
+// api document: https://help.aliyun.com/api/drds/createinstanceinternetaddress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceInternetAddressWithChan(request *CreateInstanceInternetAddressRequest) (<-chan *CreateInstanceInternetAddressResponse, <-chan error) {
+	responseChan := make(chan *CreateInstanceInternetAddressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateInstanceInternetAddress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateInstanceInternetAddressWithCallback invokes the drds.CreateInstanceInternetAddress API asynchronously
+// api document: https://help.aliyun.com/api/drds/createinstanceinternetaddress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceInternetAddressWithCallback(request *CreateInstanceInternetAddressRequest, callback func(response *CreateInstanceInternetAddressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateInstanceInternetAddressResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateInstanceInternetAddress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateInstanceInternetAddressRequest is the request struct for api CreateInstanceInternetAddress
+type CreateInstanceInternetAddressRequest struct {
+	*requests.RpcRequest
+	DrdsPassword   string `position:"Query" name:"DrdsPassword"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CreateInstanceInternetAddressResponse is the response struct for api CreateInstanceInternetAddress
+type CreateInstanceInternetAddressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Data      bool   `json:"Data" xml:"Data"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      int    `json:"Code" xml:"Code"`
+}
+
+// CreateCreateInstanceInternetAddressRequest creates a request to invoke CreateInstanceInternetAddress API
+func CreateCreateInstanceInternetAddressRequest() (request *CreateInstanceInternetAddressRequest) {
+	request = &CreateInstanceInternetAddressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CreateInstanceInternetAddress", "drds", "openAPI")
+	return
+}
+
+// CreateCreateInstanceInternetAddressResponse creates a response to parse from CreateInstanceInternetAddress response
+func CreateCreateInstanceInternetAddressResponse() (response *CreateInstanceInternetAddressResponse) {
+	response = &CreateInstanceInternetAddressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/create_order_for_rds.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateOrderForRds invokes the drds.CreateOrderForRds API synchronously
+// api document: https://help.aliyun.com/api/drds/createorderforrds.html
+func (client *Client) CreateOrderForRds(request *CreateOrderForRdsRequest) (response *CreateOrderForRdsResponse, err error) {
+	response = CreateCreateOrderForRdsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateOrderForRdsWithChan invokes the drds.CreateOrderForRds API asynchronously
+// api document: https://help.aliyun.com/api/drds/createorderforrds.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateOrderForRdsWithChan(request *CreateOrderForRdsRequest) (<-chan *CreateOrderForRdsResponse, <-chan error) {
+	responseChan := make(chan *CreateOrderForRdsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateOrderForRds(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateOrderForRdsWithCallback invokes the drds.CreateOrderForRds API asynchronously
+// api document: https://help.aliyun.com/api/drds/createorderforrds.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateOrderForRdsWithCallback(request *CreateOrderForRdsRequest, callback func(response *CreateOrderForRdsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateOrderForRdsResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateOrderForRds(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateOrderForRdsRequest is the request struct for api CreateOrderForRds
+type CreateOrderForRdsRequest struct {
+	*requests.RpcRequest
+	Params string `position:"Query" name:"Params"`
+}
+
+// CreateOrderForRdsResponse is the response struct for api CreateOrderForRds
+type CreateOrderForRdsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+}
+
+// CreateCreateOrderForRdsRequest creates a request to invoke CreateOrderForRds API
+func CreateCreateOrderForRdsRequest() (request *CreateOrderForRdsRequest) {
+	request = &CreateOrderForRdsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CreateOrderForRds", "drds", "openAPI")
+	return
+}
+
+// CreateCreateOrderForRdsResponse creates a response to parse from CreateOrderForRds response
+func CreateCreateOrderForRdsResponse() (response *CreateOrderForRdsResponse) {
+	response = &CreateOrderForRdsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/drds/create_shard_task.go

@@ -0,0 +1,109 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateShardTask invokes the drds.CreateShardTask API synchronously
+// api document: https://help.aliyun.com/api/drds/createshardtask.html
+func (client *Client) CreateShardTask(request *CreateShardTaskRequest) (response *CreateShardTaskResponse, err error) {
+	response = CreateCreateShardTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateShardTaskWithChan invokes the drds.CreateShardTask API asynchronously
+// api document: https://help.aliyun.com/api/drds/createshardtask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateShardTaskWithChan(request *CreateShardTaskRequest) (<-chan *CreateShardTaskResponse, <-chan error) {
+	responseChan := make(chan *CreateShardTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateShardTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateShardTaskWithCallback invokes the drds.CreateShardTask API asynchronously
+// api document: https://help.aliyun.com/api/drds/createshardtask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateShardTaskWithCallback(request *CreateShardTaskRequest, callback func(response *CreateShardTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateShardTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateShardTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateShardTaskRequest is the request struct for api CreateShardTask
+type CreateShardTaskRequest struct {
+	*requests.RpcRequest
+	TaskType        string `position:"Query" name:"TaskType"`
+	DbName          string `position:"Query" name:"DbName"`
+	SourceTableName string `position:"Query" name:"SourceTableName"`
+	TargetTableName string `position:"Query" name:"TargetTableName"`
+	DrdsInstanceId  string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// CreateShardTaskResponse is the response struct for api CreateShardTask
+type CreateShardTaskResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateCreateShardTaskRequest creates a request to invoke CreateShardTask API
+func CreateCreateShardTaskRequest() (request *CreateShardTaskRequest) {
+	request = &CreateShardTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "CreateShardTask", "drds", "openAPI")
+	return
+}
+
+// CreateCreateShardTaskResponse creates a response to parse from CreateShardTask response
+func CreateCreateShardTaskResponse() (response *CreateShardTaskResponse) {
+	response = &CreateShardTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/datalink_replication_precheck.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DatalinkReplicationPrecheck invokes the drds.DatalinkReplicationPrecheck API synchronously
+// api document: https://help.aliyun.com/api/drds/datalinkreplicationprecheck.html
+func (client *Client) DatalinkReplicationPrecheck(request *DatalinkReplicationPrecheckRequest) (response *DatalinkReplicationPrecheckResponse, err error) {
+	response = CreateDatalinkReplicationPrecheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DatalinkReplicationPrecheckWithChan invokes the drds.DatalinkReplicationPrecheck API asynchronously
+// api document: https://help.aliyun.com/api/drds/datalinkreplicationprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DatalinkReplicationPrecheckWithChan(request *DatalinkReplicationPrecheckRequest) (<-chan *DatalinkReplicationPrecheckResponse, <-chan error) {
+	responseChan := make(chan *DatalinkReplicationPrecheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DatalinkReplicationPrecheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DatalinkReplicationPrecheckWithCallback invokes the drds.DatalinkReplicationPrecheck API asynchronously
+// api document: https://help.aliyun.com/api/drds/datalinkreplicationprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DatalinkReplicationPrecheckWithCallback(request *DatalinkReplicationPrecheckRequest, callback func(response *DatalinkReplicationPrecheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DatalinkReplicationPrecheckResponse
+		var err error
+		defer close(result)
+		response, err = client.DatalinkReplicationPrecheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DatalinkReplicationPrecheckRequest is the request struct for api DatalinkReplicationPrecheck
+type DatalinkReplicationPrecheckRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	SrcTableName   string `position:"Query" name:"SrcTableName"`
+	DstTableName   string `position:"Query" name:"DstTableName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DatalinkReplicationPrecheckResponse is the response struct for api DatalinkReplicationPrecheck
+type DatalinkReplicationPrecheckResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      int64  `json:"Data" xml:"Data"`
+}
+
+// CreateDatalinkReplicationPrecheckRequest creates a request to invoke DatalinkReplicationPrecheck API
+func CreateDatalinkReplicationPrecheckRequest() (request *DatalinkReplicationPrecheckRequest) {
+	request = &DatalinkReplicationPrecheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DatalinkReplicationPrecheck", "drds", "openAPI")
+	return
+}
+
+// CreateDatalinkReplicationPrecheckResponse creates a response to parse from DatalinkReplicationPrecheck response
+func CreateDatalinkReplicationPrecheckResponse() (response *DatalinkReplicationPrecheckResponse) {
+	response = &DatalinkReplicationPrecheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/drds/delete_shard_tasks.go

@@ -0,0 +1,113 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteShardTasks invokes the drds.DeleteShardTasks API synchronously
+// api document: https://help.aliyun.com/api/drds/deleteshardtasks.html
+func (client *Client) DeleteShardTasks(request *DeleteShardTasksRequest) (response *DeleteShardTasksResponse, err error) {
+	response = CreateDeleteShardTasksResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteShardTasksWithChan invokes the drds.DeleteShardTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/deleteshardtasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteShardTasksWithChan(request *DeleteShardTasksRequest) (<-chan *DeleteShardTasksResponse, <-chan error) {
+	responseChan := make(chan *DeleteShardTasksResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteShardTasks(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteShardTasksWithCallback invokes the drds.DeleteShardTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/deleteshardtasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteShardTasksWithCallback(request *DeleteShardTasksRequest, callback func(response *DeleteShardTasksResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteShardTasksResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteShardTasks(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteShardTasksRequest is the request struct for api DeleteShardTasks
+type DeleteShardTasksRequest struct {
+	*requests.RpcRequest
+	DbName         string                       `position:"Query" name:"DbName"`
+	TableName      *[]DeleteShardTasksTableName `position:"Query" name:"TableName"  type:"Repeated"`
+	DrdsInstanceId string                       `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DeleteShardTasksTableName is a repeated param struct in DeleteShardTasksRequest
+type DeleteShardTasksTableName struct {
+	SourceTableName string `name:"SourceTableName"`
+	TargetTableName string `name:"TargetTableName"`
+}
+
+// DeleteShardTasksResponse is the response struct for api DeleteShardTasks
+type DeleteShardTasksResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateDeleteShardTasksRequest creates a request to invoke DeleteShardTasks API
+func CreateDeleteShardTasksRequest() (request *DeleteShardTasksRequest) {
+	request = &DeleteShardTasksRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DeleteShardTasks", "drds", "openAPI")
+	return
+}
+
+// CreateDeleteShardTasksResponse creates a response to parse from DeleteShardTasks response
+func CreateDeleteShardTasksResponse() (response *DeleteShardTasksResponse) {
+	response = &DeleteShardTasksResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_back_menu.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackMenu invokes the drds.DescribeBackMenu API synchronously
+// api document: https://help.aliyun.com/api/drds/describebackmenu.html
+func (client *Client) DescribeBackMenu(request *DescribeBackMenuRequest) (response *DescribeBackMenuResponse, err error) {
+	response = CreateDescribeBackMenuResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackMenuWithChan invokes the drds.DescribeBackMenu API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackmenu.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackMenuWithChan(request *DescribeBackMenuRequest) (<-chan *DescribeBackMenuResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackMenuResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackMenu(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackMenuWithCallback invokes the drds.DescribeBackMenu API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackmenu.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackMenuWithCallback(request *DescribeBackMenuRequest, callback func(response *DescribeBackMenuResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackMenuResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackMenu(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackMenuRequest is the request struct for api DescribeBackMenu
+type DescribeBackMenuRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBackMenuResponse is the response struct for api DescribeBackMenu
+type DescribeBackMenuResponse struct {
+	*responses.BaseResponse
+	RequestId string                 `json:"RequestId" xml:"RequestId"`
+	Success   bool                   `json:"Success" xml:"Success"`
+	List      ListInDescribeBackMenu `json:"List" xml:"List"`
+}
+
+// CreateDescribeBackMenuRequest creates a request to invoke DescribeBackMenu API
+func CreateDescribeBackMenuRequest() (request *DescribeBackMenuRequest) {
+	request = &DescribeBackMenuRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBackMenu", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBackMenuResponse creates a response to parse from DescribeBackMenu response
+func CreateDescribeBackMenuResponse() (response *DescribeBackMenuResponse) {
+	response = &DescribeBackMenuResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_backup_dbs.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackupDbs invokes the drds.DescribeBackupDbs API synchronously
+// api document: https://help.aliyun.com/api/drds/describebackupdbs.html
+func (client *Client) DescribeBackupDbs(request *DescribeBackupDbsRequest) (response *DescribeBackupDbsResponse, err error) {
+	response = CreateDescribeBackupDbsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupDbsWithChan invokes the drds.DescribeBackupDbs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackupdbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupDbsWithChan(request *DescribeBackupDbsRequest) (<-chan *DescribeBackupDbsResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupDbsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackupDbs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupDbsWithCallback invokes the drds.DescribeBackupDbs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackupdbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupDbsWithCallback(request *DescribeBackupDbsRequest, callback func(response *DescribeBackupDbsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupDbsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackupDbs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupDbsRequest is the request struct for api DescribeBackupDbs
+type DescribeBackupDbsRequest struct {
+	*requests.RpcRequest
+	PreferredRestoreTime string `position:"Query" name:"PreferredRestoreTime"`
+	BackupId             string `position:"Query" name:"BackupId"`
+	DrdsInstanceId       string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBackupDbsResponse is the response struct for api DescribeBackupDbs
+type DescribeBackupDbsResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Success   bool                       `json:"Success" xml:"Success"`
+	DbNames   DbNamesInDescribeBackupDbs `json:"DbNames" xml:"DbNames"`
+}
+
+// CreateDescribeBackupDbsRequest creates a request to invoke DescribeBackupDbs API
+func CreateDescribeBackupDbsRequest() (request *DescribeBackupDbsRequest) {
+	request = &DescribeBackupDbsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBackupDbs", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBackupDbsResponse creates a response to parse from DescribeBackupDbs response
+func CreateDescribeBackupDbsResponse() (response *DescribeBackupDbsResponse) {
+	response = &DescribeBackupDbsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_backup_local.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackupLocal invokes the drds.DescribeBackupLocal API synchronously
+// api document: https://help.aliyun.com/api/drds/describebackuplocal.html
+func (client *Client) DescribeBackupLocal(request *DescribeBackupLocalRequest) (response *DescribeBackupLocalResponse, err error) {
+	response = CreateDescribeBackupLocalResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupLocalWithChan invokes the drds.DescribeBackupLocal API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackuplocal.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupLocalWithChan(request *DescribeBackupLocalRequest) (<-chan *DescribeBackupLocalResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupLocalResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackupLocal(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupLocalWithCallback invokes the drds.DescribeBackupLocal API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackuplocal.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupLocalWithCallback(request *DescribeBackupLocalRequest, callback func(response *DescribeBackupLocalResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupLocalResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackupLocal(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupLocalRequest is the request struct for api DescribeBackupLocal
+type DescribeBackupLocalRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBackupLocalResponse is the response struct for api DescribeBackupLocal
+type DescribeBackupLocalResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	BackupPolicyDO BackupPolicyDO `json:"BackupPolicyDO" xml:"BackupPolicyDO"`
+}
+
+// CreateDescribeBackupLocalRequest creates a request to invoke DescribeBackupLocal API
+func CreateDescribeBackupLocalRequest() (request *DescribeBackupLocalRequest) {
+	request = &DescribeBackupLocalRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBackupLocal", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBackupLocalResponse creates a response to parse from DescribeBackupLocal response
+func CreateDescribeBackupLocalResponse() (response *DescribeBackupLocalResponse) {
+	response = &DescribeBackupLocalResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_backup_policy.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackupPolicy invokes the drds.DescribeBackupPolicy API synchronously
+// api document: https://help.aliyun.com/api/drds/describebackuppolicy.html
+func (client *Client) DescribeBackupPolicy(request *DescribeBackupPolicyRequest) (response *DescribeBackupPolicyResponse, err error) {
+	response = CreateDescribeBackupPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupPolicyWithChan invokes the drds.DescribeBackupPolicy API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackuppolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupPolicyWithChan(request *DescribeBackupPolicyRequest) (<-chan *DescribeBackupPolicyResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackupPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupPolicyWithCallback invokes the drds.DescribeBackupPolicy API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackuppolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupPolicyWithCallback(request *DescribeBackupPolicyRequest, callback func(response *DescribeBackupPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackupPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupPolicyRequest is the request struct for api DescribeBackupPolicy
+type DescribeBackupPolicyRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBackupPolicyResponse is the response struct for api DescribeBackupPolicy
+type DescribeBackupPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	BackupPolicyDO BackupPolicyDO `json:"BackupPolicyDO" xml:"BackupPolicyDO"`
+}
+
+// CreateDescribeBackupPolicyRequest creates a request to invoke DescribeBackupPolicy API
+func CreateDescribeBackupPolicyRequest() (request *DescribeBackupPolicyRequest) {
+	request = &DescribeBackupPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBackupPolicy", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBackupPolicyResponse creates a response to parse from DescribeBackupPolicy response
+func CreateDescribeBackupPolicyResponse() (response *DescribeBackupPolicyResponse) {
+	response = &DescribeBackupPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_backup_sets.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackupSets invokes the drds.DescribeBackupSets API synchronously
+// api document: https://help.aliyun.com/api/drds/describebackupsets.html
+func (client *Client) DescribeBackupSets(request *DescribeBackupSetsRequest) (response *DescribeBackupSetsResponse, err error) {
+	response = CreateDescribeBackupSetsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupSetsWithChan invokes the drds.DescribeBackupSets API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackupsets.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupSetsWithChan(request *DescribeBackupSetsRequest) (<-chan *DescribeBackupSetsResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupSetsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackupSets(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupSetsWithCallback invokes the drds.DescribeBackupSets API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackupsets.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupSetsWithCallback(request *DescribeBackupSetsRequest, callback func(response *DescribeBackupSetsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupSetsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackupSets(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupSetsRequest is the request struct for api DescribeBackupSets
+type DescribeBackupSetsRequest struct {
+	*requests.RpcRequest
+	EndTime        string `position:"Query" name:"EndTime"`
+	StartTime      string `position:"Query" name:"StartTime"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBackupSetsResponse is the response struct for api DescribeBackupSets
+type DescribeBackupSetsResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	BackupSets BackupSets `json:"BackupSets" xml:"BackupSets"`
+}
+
+// CreateDescribeBackupSetsRequest creates a request to invoke DescribeBackupSets API
+func CreateDescribeBackupSetsRequest() (request *DescribeBackupSetsRequest) {
+	request = &DescribeBackupSetsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBackupSets", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBackupSetsResponse creates a response to parse from DescribeBackupSets response
+func CreateDescribeBackupSetsResponse() (response *DescribeBackupSetsResponse) {
+	response = &DescribeBackupSetsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_backup_times.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackupTimes invokes the drds.DescribeBackupTimes API synchronously
+// api document: https://help.aliyun.com/api/drds/describebackuptimes.html
+func (client *Client) DescribeBackupTimes(request *DescribeBackupTimesRequest) (response *DescribeBackupTimesResponse, err error) {
+	response = CreateDescribeBackupTimesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupTimesWithChan invokes the drds.DescribeBackupTimes API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackuptimes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupTimesWithChan(request *DescribeBackupTimesRequest) (<-chan *DescribeBackupTimesResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupTimesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackupTimes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupTimesWithCallback invokes the drds.DescribeBackupTimes API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebackuptimes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupTimesWithCallback(request *DescribeBackupTimesRequest, callback func(response *DescribeBackupTimesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupTimesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackupTimes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupTimesRequest is the request struct for api DescribeBackupTimes
+type DescribeBackupTimesRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBackupTimesResponse is the response struct for api DescribeBackupTimes
+type DescribeBackupTimesResponse struct {
+	*responses.BaseResponse
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	Success     bool        `json:"Success" xml:"Success"`
+	RestoreTime RestoreTime `json:"RestoreTime" xml:"RestoreTime"`
+}
+
+// CreateDescribeBackupTimesRequest creates a request to invoke DescribeBackupTimes API
+func CreateDescribeBackupTimesRequest() (request *DescribeBackupTimesRequest) {
+	request = &DescribeBackupTimesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBackupTimes", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBackupTimesResponse creates a response to parse from DescribeBackupTimes response
+func CreateDescribeBackupTimesResponse() (response *DescribeBackupTimesResponse) {
+	response = &DescribeBackupTimesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/drds/describe_broadcast_tables.go

@@ -0,0 +1,113 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBroadcastTables invokes the drds.DescribeBroadcastTables API synchronously
+// api document: https://help.aliyun.com/api/drds/describebroadcasttables.html
+func (client *Client) DescribeBroadcastTables(request *DescribeBroadcastTablesRequest) (response *DescribeBroadcastTablesResponse, err error) {
+	response = CreateDescribeBroadcastTablesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBroadcastTablesWithChan invokes the drds.DescribeBroadcastTables API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebroadcasttables.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBroadcastTablesWithChan(request *DescribeBroadcastTablesRequest) (<-chan *DescribeBroadcastTablesResponse, <-chan error) {
+	responseChan := make(chan *DescribeBroadcastTablesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBroadcastTables(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBroadcastTablesWithCallback invokes the drds.DescribeBroadcastTables API asynchronously
+// api document: https://help.aliyun.com/api/drds/describebroadcasttables.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBroadcastTablesWithCallback(request *DescribeBroadcastTablesRequest, callback func(response *DescribeBroadcastTablesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBroadcastTablesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBroadcastTables(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBroadcastTablesRequest is the request struct for api DescribeBroadcastTables
+type DescribeBroadcastTablesRequest struct {
+	*requests.RpcRequest
+	DbName         string           `position:"Query" name:"DbName"`
+	Query          string           `position:"Query" name:"Query"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	CurrentPage    requests.Integer `position:"Query" name:"CurrentPage"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeBroadcastTablesResponse is the response struct for api DescribeBroadcastTables
+type DescribeBroadcastTablesResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	IsShard    bool       `json:"IsShard" xml:"IsShard"`
+	PageNumber int        `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int        `json:"PageSize" xml:"PageSize"`
+	Total      int        `json:"Total" xml:"Total"`
+	List       []ListItem `json:"List" xml:"List"`
+}
+
+// CreateDescribeBroadcastTablesRequest creates a request to invoke DescribeBroadcastTables API
+func CreateDescribeBroadcastTablesRequest() (request *DescribeBroadcastTablesRequest) {
+	request = &DescribeBroadcastTablesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeBroadcastTables", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeBroadcastTablesResponse creates a response to parse from DescribeBroadcastTables response
+func CreateDescribeBroadcastTablesResponse() (response *DescribeBroadcastTablesResponse) {
+	response = &DescribeBroadcastTablesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_can_expand_instance_detail_list.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeCanExpandInstanceDetailList invokes the drds.DescribeCanExpandInstanceDetailList API synchronously
+// api document: https://help.aliyun.com/api/drds/describecanexpandinstancedetaillist.html
+func (client *Client) DescribeCanExpandInstanceDetailList(request *DescribeCanExpandInstanceDetailListRequest) (response *DescribeCanExpandInstanceDetailListResponse, err error) {
+	response = CreateDescribeCanExpandInstanceDetailListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCanExpandInstanceDetailListWithChan invokes the drds.DescribeCanExpandInstanceDetailList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describecanexpandinstancedetaillist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCanExpandInstanceDetailListWithChan(request *DescribeCanExpandInstanceDetailListRequest) (<-chan *DescribeCanExpandInstanceDetailListResponse, <-chan error) {
+	responseChan := make(chan *DescribeCanExpandInstanceDetailListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCanExpandInstanceDetailList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCanExpandInstanceDetailListWithCallback invokes the drds.DescribeCanExpandInstanceDetailList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describecanexpandinstancedetaillist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCanExpandInstanceDetailListWithCallback(request *DescribeCanExpandInstanceDetailListRequest, callback func(response *DescribeCanExpandInstanceDetailListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCanExpandInstanceDetailListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCanExpandInstanceDetailList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCanExpandInstanceDetailListRequest is the request struct for api DescribeCanExpandInstanceDetailList
+type DescribeCanExpandInstanceDetailListRequest struct {
+	*requests.RpcRequest
+	CurrentPlan    string `position:"Query" name:"CurrentPlan"`
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeCanExpandInstanceDetailListResponse is the response struct for api DescribeCanExpandInstanceDetailList
+type DescribeCanExpandInstanceDetailListResponse struct {
+	*responses.BaseResponse
+	RequestId string                                    `json:"RequestId" xml:"RequestId"`
+	Success   bool                                      `json:"Success" xml:"Success"`
+	Data      DataInDescribeCanExpandInstanceDetailList `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeCanExpandInstanceDetailListRequest creates a request to invoke DescribeCanExpandInstanceDetailList API
+func CreateDescribeCanExpandInstanceDetailListRequest() (request *DescribeCanExpandInstanceDetailListRequest) {
+	request = &DescribeCanExpandInstanceDetailListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeCanExpandInstanceDetailList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeCanExpandInstanceDetailListResponse creates a response to parse from DescribeCanExpandInstanceDetailList response
+func CreateDescribeCanExpandInstanceDetailListResponse() (response *DescribeCanExpandInstanceDetailListResponse) {
+	response = &DescribeCanExpandInstanceDetailListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/drds/describe_candidate_instance_list.go

@@ -0,0 +1,110 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeCandidateInstanceList invokes the drds.DescribeCandidateInstanceList API synchronously
+// api document: https://help.aliyun.com/api/drds/describecandidateinstancelist.html
+func (client *Client) DescribeCandidateInstanceList(request *DescribeCandidateInstanceListRequest) (response *DescribeCandidateInstanceListResponse, err error) {
+	response = CreateDescribeCandidateInstanceListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCandidateInstanceListWithChan invokes the drds.DescribeCandidateInstanceList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describecandidateinstancelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCandidateInstanceListWithChan(request *DescribeCandidateInstanceListRequest) (<-chan *DescribeCandidateInstanceListResponse, <-chan error) {
+	responseChan := make(chan *DescribeCandidateInstanceListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCandidateInstanceList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCandidateInstanceListWithCallback invokes the drds.DescribeCandidateInstanceList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describecandidateinstancelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCandidateInstanceListWithCallback(request *DescribeCandidateInstanceListRequest, callback func(response *DescribeCandidateInstanceListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCandidateInstanceListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCandidateInstanceList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCandidateInstanceListRequest is the request struct for api DescribeCandidateInstanceList
+type DescribeCandidateInstanceListRequest struct {
+	*requests.RpcRequest
+	Search         string           `position:"Query" name:"Search"`
+	DbName         string           `position:"Query" name:"DbName"`
+	AcrossZone     requests.Boolean `position:"Query" name:"AcrossZone"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeCandidateInstanceListResponse is the response struct for api DescribeCandidateInstanceList
+type DescribeCandidateInstanceListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeCandidateInstanceListRequest creates a request to invoke DescribeCandidateInstanceList API
+func CreateDescribeCandidateInstanceListRequest() (request *DescribeCandidateInstanceListRequest) {
+	request = &DescribeCandidateInstanceListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeCandidateInstanceList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeCandidateInstanceListResponse creates a response to parse from DescribeCandidateInstanceList response
+func CreateDescribeCandidateInstanceListResponse() (response *DescribeCandidateInstanceListResponse) {
+	response = &DescribeCandidateInstanceListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_console_config.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeConsoleConfig invokes the drds.DescribeConsoleConfig API synchronously
+// api document: https://help.aliyun.com/api/drds/describeconsoleconfig.html
+func (client *Client) DescribeConsoleConfig(request *DescribeConsoleConfigRequest) (response *DescribeConsoleConfigResponse, err error) {
+	response = CreateDescribeConsoleConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeConsoleConfigWithChan invokes the drds.DescribeConsoleConfig API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeconsoleconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeConsoleConfigWithChan(request *DescribeConsoleConfigRequest) (<-chan *DescribeConsoleConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeConsoleConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeConsoleConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeConsoleConfigWithCallback invokes the drds.DescribeConsoleConfig API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeconsoleconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeConsoleConfigWithCallback(request *DescribeConsoleConfigRequest, callback func(response *DescribeConsoleConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeConsoleConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeConsoleConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeConsoleConfigRequest is the request struct for api DescribeConsoleConfig
+type DescribeConsoleConfigRequest struct {
+	*requests.RpcRequest
+	Type string `position:"Query" name:"Type"`
+}
+
+// DescribeConsoleConfigResponse is the response struct for api DescribeConsoleConfig
+type DescribeConsoleConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string                 `json:"RequestId" xml:"RequestId"`
+	Success   bool                   `json:"Success" xml:"Success"`
+	Config    map[string]interface{} `json:"Config" xml:"Config"`
+}
+
+// CreateDescribeConsoleConfigRequest creates a request to invoke DescribeConsoleConfig API
+func CreateDescribeConsoleConfigRequest() (request *DescribeConsoleConfigRequest) {
+	request = &DescribeConsoleConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeConsoleConfig", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeConsoleConfigResponse creates a response to parse from DescribeConsoleConfig response
+func CreateDescribeConsoleConfigResponse() (response *DescribeConsoleConfigResponse) {
+	response = &DescribeConsoleConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/drds/describe_db_instance_dbs.go

@@ -0,0 +1,110 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDbInstanceDbs invokes the drds.DescribeDbInstanceDbs API synchronously
+// api document: https://help.aliyun.com/api/drds/describedbinstancedbs.html
+func (client *Client) DescribeDbInstanceDbs(request *DescribeDbInstanceDbsRequest) (response *DescribeDbInstanceDbsResponse, err error) {
+	response = CreateDescribeDbInstanceDbsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDbInstanceDbsWithChan invokes the drds.DescribeDbInstanceDbs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedbinstancedbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDbInstanceDbsWithChan(request *DescribeDbInstanceDbsRequest) (<-chan *DescribeDbInstanceDbsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDbInstanceDbsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDbInstanceDbs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDbInstanceDbsWithCallback invokes the drds.DescribeDbInstanceDbs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedbinstancedbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDbInstanceDbsWithCallback(request *DescribeDbInstanceDbsRequest, callback func(response *DescribeDbInstanceDbsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDbInstanceDbsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDbInstanceDbs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDbInstanceDbsRequest is the request struct for api DescribeDbInstanceDbs
+type DescribeDbInstanceDbsRequest struct {
+	*requests.RpcRequest
+	Password       string `position:"Query" name:"Password"`
+	AccountName    string `position:"Query" name:"AccountName"`
+	DbInstanceId   string `position:"Query" name:"DbInstanceId"`
+	DbInstType     string `position:"Query" name:"DbInstType"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDbInstanceDbsResponse is the response struct for api DescribeDbInstanceDbs
+type DescribeDbInstanceDbsResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	Success   bool      `json:"Success" xml:"Success"`
+	Total     string    `json:"Total" xml:"Total"`
+	Databases Databases `json:"Databases" xml:"Databases"`
+}
+
+// CreateDescribeDbInstanceDbsRequest creates a request to invoke DescribeDbInstanceDbs API
+func CreateDescribeDbInstanceDbsRequest() (request *DescribeDbInstanceDbsRequest) {
+	request = &DescribeDbInstanceDbsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDbInstanceDbs", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDbInstanceDbsResponse creates a response to parse from DescribeDbInstanceDbs response
+func CreateDescribeDbInstanceDbsResponse() (response *DescribeDbInstanceDbsResponse) {
+	response = &DescribeDbInstanceDbsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/describe_db_instances.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDbInstances invokes the drds.DescribeDbInstances API synchronously
+// api document: https://help.aliyun.com/api/drds/describedbinstances.html
+func (client *Client) DescribeDbInstances(request *DescribeDbInstancesRequest) (response *DescribeDbInstancesResponse, err error) {
+	response = CreateDescribeDbInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDbInstancesWithChan invokes the drds.DescribeDbInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedbinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDbInstancesWithChan(request *DescribeDbInstancesRequest) (<-chan *DescribeDbInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeDbInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDbInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDbInstancesWithCallback invokes the drds.DescribeDbInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedbinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDbInstancesWithCallback(request *DescribeDbInstancesRequest, callback func(response *DescribeDbInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDbInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDbInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDbInstancesRequest is the request struct for api DescribeDbInstances
+type DescribeDbInstancesRequest struct {
+	*requests.RpcRequest
+	Search         string           `position:"Query" name:"Search"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	DbInstType     string           `position:"Query" name:"DbInstType"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeDbInstancesResponse is the response struct for api DescribeDbInstances
+type DescribeDbInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Items     ItemsInDescribeDbInstances `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeDbInstancesRequest creates a request to invoke DescribeDbInstances API
+func CreateDescribeDbInstancesRequest() (request *DescribeDbInstancesRequest) {
+	request = &DescribeDbInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDbInstances", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDbInstancesResponse creates a response to parse from DescribeDbInstances response
+func CreateDescribeDbInstancesResponse() (response *DescribeDbInstancesResponse) {
+	response = &DescribeDbInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_db_cluster.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDBCluster invokes the drds.DescribeDrdsDBCluster API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbcluster.html
+func (client *Client) DescribeDrdsDBCluster(request *DescribeDrdsDBClusterRequest) (response *DescribeDrdsDBClusterResponse, err error) {
+	response = CreateDescribeDrdsDBClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDBClusterWithChan invokes the drds.DescribeDrdsDBCluster API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBClusterWithChan(request *DescribeDrdsDBClusterRequest) (<-chan *DescribeDrdsDBClusterResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDBClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDBCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDBClusterWithCallback invokes the drds.DescribeDrdsDBCluster API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBClusterWithCallback(request *DescribeDrdsDBClusterRequest, callback func(response *DescribeDrdsDBClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDBClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDBCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDBClusterRequest is the request struct for api DescribeDrdsDBCluster
+type DescribeDrdsDBClusterRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DbInstanceId   string `position:"Query" name:"DbInstanceId"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDBClusterResponse is the response struct for api DescribeDrdsDBCluster
+type DescribeDrdsDBClusterResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	DbInstance DbInstance `json:"DbInstance" xml:"DbInstance"`
+}
+
+// CreateDescribeDrdsDBClusterRequest creates a request to invoke DescribeDrdsDBCluster API
+func CreateDescribeDrdsDBClusterRequest() (request *DescribeDrdsDBClusterRequest) {
+	request = &DescribeDrdsDBClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDBCluster", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDBClusterResponse creates a response to parse from DescribeDrdsDBCluster response
+func CreateDescribeDrdsDBClusterResponse() (response *DescribeDrdsDBClusterResponse) {
+	response = &DescribeDrdsDBClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_db_instance.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDbInstance invokes the drds.DescribeDrdsDbInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbinstance.html
+func (client *Client) DescribeDrdsDbInstance(request *DescribeDrdsDbInstanceRequest) (response *DescribeDrdsDbInstanceResponse, err error) {
+	response = CreateDescribeDrdsDbInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDbInstanceWithChan invokes the drds.DescribeDrdsDbInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbInstanceWithChan(request *DescribeDrdsDbInstanceRequest) (<-chan *DescribeDrdsDbInstanceResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDbInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDbInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDbInstanceWithCallback invokes the drds.DescribeDrdsDbInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbInstanceWithCallback(request *DescribeDrdsDbInstanceRequest, callback func(response *DescribeDrdsDbInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDbInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDbInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDbInstanceRequest is the request struct for api DescribeDrdsDbInstance
+type DescribeDrdsDbInstanceRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DbInstanceId   string `position:"Query" name:"DbInstanceId"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDbInstanceResponse is the response struct for api DescribeDrdsDbInstance
+type DescribeDrdsDbInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	DbInstance DbInstance `json:"DbInstance" xml:"DbInstance"`
+}
+
+// CreateDescribeDrdsDbInstanceRequest creates a request to invoke DescribeDrdsDbInstance API
+func CreateDescribeDrdsDbInstanceRequest() (request *DescribeDrdsDbInstanceRequest) {
+	request = &DescribeDrdsDbInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDbInstance", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDbInstanceResponse creates a response to parse from DescribeDrdsDbInstance response
+func CreateDescribeDrdsDbInstanceResponse() (response *DescribeDrdsDbInstanceResponse) {
+	response = &DescribeDrdsDbInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/drds/describe_drds_db_instances.go

@@ -0,0 +1,111 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDbInstances invokes the drds.DescribeDrdsDbInstances API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbinstances.html
+func (client *Client) DescribeDrdsDbInstances(request *DescribeDrdsDbInstancesRequest) (response *DescribeDrdsDbInstancesResponse, err error) {
+	response = CreateDescribeDrdsDbInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDbInstancesWithChan invokes the drds.DescribeDrdsDbInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbInstancesWithChan(request *DescribeDrdsDbInstancesRequest) (<-chan *DescribeDrdsDbInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDbInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDbInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDbInstancesWithCallback invokes the drds.DescribeDrdsDbInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbInstancesWithCallback(request *DescribeDrdsDbInstancesRequest, callback func(response *DescribeDrdsDbInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDbInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDbInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDbInstancesRequest is the request struct for api DescribeDrdsDbInstances
+type DescribeDrdsDbInstancesRequest struct {
+	*requests.RpcRequest
+	DbName         string           `position:"Query" name:"DbName"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeDrdsDbInstancesResponse is the response struct for api DescribeDrdsDbInstances
+type DescribeDrdsDbInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId   string                               `json:"RequestId" xml:"RequestId"`
+	Success     bool                                 `json:"Success" xml:"Success"`
+	PageNumber  string                               `json:"PageNumber" xml:"PageNumber"`
+	PageSize    string                               `json:"PageSize" xml:"PageSize"`
+	Total       string                               `json:"Total" xml:"Total"`
+	DbInstances DbInstancesInDescribeDrdsDbInstances `json:"DbInstances" xml:"DbInstances"`
+}
+
+// CreateDescribeDrdsDbInstancesRequest creates a request to invoke DescribeDrdsDbInstances API
+func CreateDescribeDrdsDbInstancesRequest() (request *DescribeDrdsDbInstancesRequest) {
+	request = &DescribeDrdsDbInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDbInstances", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDbInstancesResponse creates a response to parse from DescribeDrdsDbInstances response
+func CreateDescribeDrdsDbInstancesResponse() (response *DescribeDrdsDbInstancesResponse) {
+	response = &DescribeDrdsDbInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_drds_db_rds_name_list.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDbRdsNameList invokes the drds.DescribeDrdsDbRdsNameList API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrdsnamelist.html
+func (client *Client) DescribeDrdsDbRdsNameList(request *DescribeDrdsDbRdsNameListRequest) (response *DescribeDrdsDbRdsNameListResponse, err error) {
+	response = CreateDescribeDrdsDbRdsNameListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDbRdsNameListWithChan invokes the drds.DescribeDrdsDbRdsNameList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrdsnamelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbRdsNameListWithChan(request *DescribeDrdsDbRdsNameListRequest) (<-chan *DescribeDrdsDbRdsNameListResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDbRdsNameListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDbRdsNameList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDbRdsNameListWithCallback invokes the drds.DescribeDrdsDbRdsNameList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrdsnamelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbRdsNameListWithCallback(request *DescribeDrdsDbRdsNameListRequest, callback func(response *DescribeDrdsDbRdsNameListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDbRdsNameListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDbRdsNameList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDbRdsNameListRequest is the request struct for api DescribeDrdsDbRdsNameList
+type DescribeDrdsDbRdsNameListRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDbRdsNameListResponse is the response struct for api DescribeDrdsDbRdsNameList
+type DescribeDrdsDbRdsNameListResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	Success          bool             `json:"Success" xml:"Success"`
+	InstanceNameList InstanceNameList `json:"InstanceNameList" xml:"InstanceNameList"`
+}
+
+// CreateDescribeDrdsDbRdsNameListRequest creates a request to invoke DescribeDrdsDbRdsNameList API
+func CreateDescribeDrdsDbRdsNameListRequest() (request *DescribeDrdsDbRdsNameListRequest) {
+	request = &DescribeDrdsDbRdsNameListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDbRdsNameList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDbRdsNameListResponse creates a response to parse from DescribeDrdsDbRdsNameList response
+func CreateDescribeDrdsDbRdsNameListResponse() (response *DescribeDrdsDbRdsNameListResponse) {
+	response = &DescribeDrdsDbRdsNameListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_drds_db_rds_relation_info.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDbRdsRelationInfo invokes the drds.DescribeDrdsDbRdsRelationInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrdsrelationinfo.html
+func (client *Client) DescribeDrdsDbRdsRelationInfo(request *DescribeDrdsDbRdsRelationInfoRequest) (response *DescribeDrdsDbRdsRelationInfoResponse, err error) {
+	response = CreateDescribeDrdsDbRdsRelationInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDbRdsRelationInfoWithChan invokes the drds.DescribeDrdsDbRdsRelationInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrdsrelationinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbRdsRelationInfoWithChan(request *DescribeDrdsDbRdsRelationInfoRequest) (<-chan *DescribeDrdsDbRdsRelationInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDbRdsRelationInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDbRdsRelationInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDbRdsRelationInfoWithCallback invokes the drds.DescribeDrdsDbRdsRelationInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrdsrelationinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbRdsRelationInfoWithCallback(request *DescribeDrdsDbRdsRelationInfoRequest, callback func(response *DescribeDrdsDbRdsRelationInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDbRdsRelationInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDbRdsRelationInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDbRdsRelationInfoRequest is the request struct for api DescribeDrdsDbRdsRelationInfo
+type DescribeDrdsDbRdsRelationInfoRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDbRdsRelationInfoResponse is the response struct for api DescribeDrdsDbRdsRelationInfo
+type DescribeDrdsDbRdsRelationInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string                              `json:"RequestId" xml:"RequestId"`
+	Success   bool                                `json:"Success" xml:"Success"`
+	Data      DataInDescribeDrdsDbRdsRelationInfo `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsDbRdsRelationInfoRequest creates a request to invoke DescribeDrdsDbRdsRelationInfo API
+func CreateDescribeDrdsDbRdsRelationInfoRequest() (request *DescribeDrdsDbRdsRelationInfoRequest) {
+	request = &DescribeDrdsDbRdsRelationInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDbRdsRelationInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDbRdsRelationInfoResponse creates a response to parse from DescribeDrdsDbRdsRelationInfo response
+func CreateDescribeDrdsDbRdsRelationInfoResponse() (response *DescribeDrdsDbRdsRelationInfoResponse) {
+	response = &DescribeDrdsDbRdsRelationInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_drds_db_relation_info.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDbRelationInfo invokes the drds.DescribeDrdsDbRelationInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrelationinfo.html
+func (client *Client) DescribeDrdsDbRelationInfo(request *DescribeDrdsDbRelationInfoRequest) (response *DescribeDrdsDbRelationInfoResponse, err error) {
+	response = CreateDescribeDrdsDbRelationInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDbRelationInfoWithChan invokes the drds.DescribeDrdsDbRelationInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrelationinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbRelationInfoWithChan(request *DescribeDrdsDbRelationInfoRequest) (<-chan *DescribeDrdsDbRelationInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDbRelationInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDbRelationInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDbRelationInfoWithCallback invokes the drds.DescribeDrdsDbRelationInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbrelationinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbRelationInfoWithCallback(request *DescribeDrdsDbRelationInfoRequest, callback func(response *DescribeDrdsDbRelationInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDbRelationInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDbRelationInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDbRelationInfoRequest is the request struct for api DescribeDrdsDbRelationInfo
+type DescribeDrdsDbRelationInfoRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDbRelationInfoResponse is the response struct for api DescribeDrdsDbRelationInfo
+type DescribeDrdsDbRelationInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string                           `json:"RequestId" xml:"RequestId"`
+	Success   bool                             `json:"Success" xml:"Success"`
+	Data      DataInDescribeDrdsDbRelationInfo `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsDbRelationInfoRequest creates a request to invoke DescribeDrdsDbRelationInfo API
+func CreateDescribeDrdsDbRelationInfoRequest() (request *DescribeDrdsDbRelationInfoRequest) {
+	request = &DescribeDrdsDbRelationInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDbRelationInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDbRelationInfoResponse creates a response to parse from DescribeDrdsDbRelationInfo response
+func CreateDescribeDrdsDbRelationInfoResponse() (response *DescribeDrdsDbRelationInfoResponse) {
+	response = &DescribeDrdsDbRelationInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_db_tasks.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsDbTasks invokes the drds.DescribeDrdsDbTasks API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbtasks.html
+func (client *Client) DescribeDrdsDbTasks(request *DescribeDrdsDbTasksRequest) (response *DescribeDrdsDbTasksResponse, err error) {
+	response = CreateDescribeDrdsDbTasksResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDbTasksWithChan invokes the drds.DescribeDrdsDbTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbtasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbTasksWithChan(request *DescribeDrdsDbTasksRequest) (<-chan *DescribeDrdsDbTasksResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDbTasksResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDbTasks(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDbTasksWithCallback invokes the drds.DescribeDrdsDbTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbtasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDbTasksWithCallback(request *DescribeDrdsDbTasksRequest, callback func(response *DescribeDrdsDbTasksResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDbTasksResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDbTasks(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDbTasksRequest is the request struct for api DescribeDrdsDbTasks
+type DescribeDrdsDbTasksRequest struct {
+	*requests.RpcRequest
+	TaskType       string `position:"Query" name:"TaskType"`
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDbTasksResponse is the response struct for api DescribeDrdsDbTasks
+type DescribeDrdsDbTasksResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Success   bool                       `json:"Success" xml:"Success"`
+	Tasks     TasksInDescribeDrdsDbTasks `json:"Tasks" xml:"Tasks"`
+}
+
+// CreateDescribeDrdsDbTasksRequest creates a request to invoke DescribeDrdsDbTasks API
+func CreateDescribeDrdsDbTasksRequest() (request *DescribeDrdsDbTasksRequest) {
+	request = &DescribeDrdsDbTasksRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsDbTasks", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsDbTasksResponse creates a response to parse from DescribeDrdsDbTasks response
+func CreateDescribeDrdsDbTasksResponse() (response *DescribeDrdsDbTasksResponse) {
+	response = &DescribeDrdsDbTasksResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_drds_instance_level_tasks.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsInstanceLevelTasks invokes the drds.DescribeDrdsInstanceLevelTasks API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstanceleveltasks.html
+func (client *Client) DescribeDrdsInstanceLevelTasks(request *DescribeDrdsInstanceLevelTasksRequest) (response *DescribeDrdsInstanceLevelTasksResponse, err error) {
+	response = CreateDescribeDrdsInstanceLevelTasksResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsInstanceLevelTasksWithChan invokes the drds.DescribeDrdsInstanceLevelTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstanceleveltasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceLevelTasksWithChan(request *DescribeDrdsInstanceLevelTasksRequest) (<-chan *DescribeDrdsInstanceLevelTasksResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsInstanceLevelTasksResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsInstanceLevelTasks(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsInstanceLevelTasksWithCallback invokes the drds.DescribeDrdsInstanceLevelTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstanceleveltasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceLevelTasksWithCallback(request *DescribeDrdsInstanceLevelTasksRequest, callback func(response *DescribeDrdsInstanceLevelTasksResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsInstanceLevelTasksResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsInstanceLevelTasks(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsInstanceLevelTasksRequest is the request struct for api DescribeDrdsInstanceLevelTasks
+type DescribeDrdsInstanceLevelTasksRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsInstanceLevelTasksResponse is the response struct for api DescribeDrdsInstanceLevelTasks
+type DescribeDrdsInstanceLevelTasksResponse struct {
+	*responses.BaseResponse
+	RequestId string                                `json:"RequestId" xml:"RequestId"`
+	Success   bool                                  `json:"Success" xml:"Success"`
+	Tasks     TasksInDescribeDrdsInstanceLevelTasks `json:"Tasks" xml:"Tasks"`
+}
+
+// CreateDescribeDrdsInstanceLevelTasksRequest creates a request to invoke DescribeDrdsInstanceLevelTasks API
+func CreateDescribeDrdsInstanceLevelTasksRequest() (request *DescribeDrdsInstanceLevelTasksRequest) {
+	request = &DescribeDrdsInstanceLevelTasksRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsInstanceLevelTasks", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsInstanceLevelTasksResponse creates a response to parse from DescribeDrdsInstanceLevelTasks response
+func CreateDescribeDrdsInstanceLevelTasksResponse() (response *DescribeDrdsInstanceLevelTasksResponse) {
+	response = &DescribeDrdsInstanceLevelTasksResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_drds_instance_version.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsInstanceVersion invokes the drds.DescribeDrdsInstanceVersion API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstanceversion.html
+func (client *Client) DescribeDrdsInstanceVersion(request *DescribeDrdsInstanceVersionRequest) (response *DescribeDrdsInstanceVersionResponse, err error) {
+	response = CreateDescribeDrdsInstanceVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsInstanceVersionWithChan invokes the drds.DescribeDrdsInstanceVersion API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstanceversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceVersionWithChan(request *DescribeDrdsInstanceVersionRequest) (<-chan *DescribeDrdsInstanceVersionResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsInstanceVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsInstanceVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsInstanceVersionWithCallback invokes the drds.DescribeDrdsInstanceVersion API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstanceversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceVersionWithCallback(request *DescribeDrdsInstanceVersionRequest, callback func(response *DescribeDrdsInstanceVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsInstanceVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsInstanceVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsInstanceVersionRequest is the request struct for api DescribeDrdsInstanceVersion
+type DescribeDrdsInstanceVersionRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsInstanceVersionResponse is the response struct for api DescribeDrdsInstanceVersion
+type DescribeDrdsInstanceVersionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsInstanceVersionRequest creates a request to invoke DescribeDrdsInstanceVersion API
+func CreateDescribeDrdsInstanceVersionRequest() (request *DescribeDrdsInstanceVersionRequest) {
+	request = &DescribeDrdsInstanceVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsInstanceVersion", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsInstanceVersionResponse creates a response to parse from DescribeDrdsInstanceVersion response
+func CreateDescribeDrdsInstanceVersionResponse() (response *DescribeDrdsInstanceVersionResponse) {
+	response = &DescribeDrdsInstanceVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_params.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsParams invokes the drds.DescribeDrdsParams API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsparams.html
+func (client *Client) DescribeDrdsParams(request *DescribeDrdsParamsRequest) (response *DescribeDrdsParamsResponse, err error) {
+	response = CreateDescribeDrdsParamsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsParamsWithChan invokes the drds.DescribeDrdsParams API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsparams.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsParamsWithChan(request *DescribeDrdsParamsRequest) (<-chan *DescribeDrdsParamsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsParamsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsParams(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsParamsWithCallback invokes the drds.DescribeDrdsParams API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsparams.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsParamsWithCallback(request *DescribeDrdsParamsRequest, callback func(response *DescribeDrdsParamsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsParamsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsParams(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsParamsRequest is the request struct for api DescribeDrdsParams
+type DescribeDrdsParamsRequest struct {
+	*requests.RpcRequest
+	ParamLevel     string `position:"Query" name:"ParamLevel"`
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsParamsResponse is the response struct for api DescribeDrdsParams
+type DescribeDrdsParamsResponse struct {
+	*responses.BaseResponse
+	RequestId string     `json:"RequestId" xml:"RequestId"`
+	Success   bool       `json:"Success" xml:"Success"`
+	List      []ListItem `json:"List" xml:"List"`
+}
+
+// CreateDescribeDrdsParamsRequest creates a request to invoke DescribeDrdsParams API
+func CreateDescribeDrdsParamsRequest() (request *DescribeDrdsParamsRequest) {
+	request = &DescribeDrdsParamsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsParams", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsParamsResponse creates a response to parse from DescribeDrdsParams response
+func CreateDescribeDrdsParamsResponse() (response *DescribeDrdsParamsResponse) {
+	response = &DescribeDrdsParamsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/drds/describe_drds_regions.go

@@ -0,0 +1,103 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsRegions invokes the drds.DescribeDrdsRegions API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsregions.html
+func (client *Client) DescribeDrdsRegions(request *DescribeDrdsRegionsRequest) (response *DescribeDrdsRegionsResponse, err error) {
+	response = CreateDescribeDrdsRegionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsRegionsWithChan invokes the drds.DescribeDrdsRegions API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsRegionsWithChan(request *DescribeDrdsRegionsRequest) (<-chan *DescribeDrdsRegionsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsRegionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsRegions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsRegionsWithCallback invokes the drds.DescribeDrdsRegions API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsRegionsWithCallback(request *DescribeDrdsRegionsRequest, callback func(response *DescribeDrdsRegionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsRegionsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsRegions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsRegionsRequest is the request struct for api DescribeDrdsRegions
+type DescribeDrdsRegionsRequest struct {
+	*requests.RpcRequest
+}
+
+// DescribeDrdsRegionsResponse is the response struct for api DescribeDrdsRegions
+type DescribeDrdsRegionsResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Regions   Regions `json:"Regions" xml:"Regions"`
+}
+
+// CreateDescribeDrdsRegionsRequest creates a request to invoke DescribeDrdsRegions API
+func CreateDescribeDrdsRegionsRequest() (request *DescribeDrdsRegionsRequest) {
+	request = &DescribeDrdsRegionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsRegions", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsRegionsResponse creates a response to parse from DescribeDrdsRegions response
+func CreateDescribeDrdsRegionsResponse() (response *DescribeDrdsRegionsResponse) {
+	response = &DescribeDrdsRegionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_sharding_dbs.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsShardingDbs invokes the drds.DescribeDrdsShardingDbs API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsshardingdbs.html
+func (client *Client) DescribeDrdsShardingDbs(request *DescribeDrdsShardingDbsRequest) (response *DescribeDrdsShardingDbsResponse, err error) {
+	response = CreateDescribeDrdsShardingDbsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsShardingDbsWithChan invokes the drds.DescribeDrdsShardingDbs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsshardingdbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsShardingDbsWithChan(request *DescribeDrdsShardingDbsRequest) (<-chan *DescribeDrdsShardingDbsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsShardingDbsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsShardingDbs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsShardingDbsWithCallback invokes the drds.DescribeDrdsShardingDbs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsshardingdbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsShardingDbsWithCallback(request *DescribeDrdsShardingDbsRequest, callback func(response *DescribeDrdsShardingDbsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsShardingDbsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsShardingDbs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsShardingDbsRequest is the request struct for api DescribeDrdsShardingDbs
+type DescribeDrdsShardingDbsRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DbNamePattern  string `position:"Query" name:"DbNamePattern"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsShardingDbsResponse is the response struct for api DescribeDrdsShardingDbs
+type DescribeDrdsShardingDbsResponse struct {
+	*responses.BaseResponse
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	Success     bool        `json:"Success" xml:"Success"`
+	ShardingDbs ShardingDbs `json:"ShardingDbs" xml:"ShardingDbs"`
+}
+
+// CreateDescribeDrdsShardingDbsRequest creates a request to invoke DescribeDrdsShardingDbs API
+func CreateDescribeDrdsShardingDbsRequest() (request *DescribeDrdsShardingDbsRequest) {
+	request = &DescribeDrdsShardingDbsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsShardingDbs", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsShardingDbsResponse creates a response to parse from DescribeDrdsShardingDbs response
+func CreateDescribeDrdsShardingDbsResponse() (response *DescribeDrdsShardingDbsResponse) {
+	response = &DescribeDrdsShardingDbsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/drds/describe_drds_slow_sqls.go

@@ -0,0 +1,114 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsSlowSqls invokes the drds.DescribeDrdsSlowSqls API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsslowsqls.html
+func (client *Client) DescribeDrdsSlowSqls(request *DescribeDrdsSlowSqlsRequest) (response *DescribeDrdsSlowSqlsResponse, err error) {
+	response = CreateDescribeDrdsSlowSqlsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsSlowSqlsWithChan invokes the drds.DescribeDrdsSlowSqls API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsslowsqls.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsSlowSqlsWithChan(request *DescribeDrdsSlowSqlsRequest) (<-chan *DescribeDrdsSlowSqlsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsSlowSqlsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsSlowSqls(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsSlowSqlsWithCallback invokes the drds.DescribeDrdsSlowSqls API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsslowsqls.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsSlowSqlsWithCallback(request *DescribeDrdsSlowSqlsRequest, callback func(response *DescribeDrdsSlowSqlsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsSlowSqlsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsSlowSqls(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsSlowSqlsRequest is the request struct for api DescribeDrdsSlowSqls
+type DescribeDrdsSlowSqlsRequest struct {
+	*requests.RpcRequest
+	DbName         string           `position:"Query" name:"DbName"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	EndTime        requests.Integer `position:"Query" name:"EndTime"`
+	StartTime      requests.Integer `position:"Query" name:"StartTime"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+	ExeTime        requests.Integer `position:"Query" name:"ExeTime"`
+}
+
+// DescribeDrdsSlowSqlsResponse is the response struct for api DescribeDrdsSlowSqls
+type DescribeDrdsSlowSqlsResponse struct {
+	*responses.BaseResponse
+	RequestId  string                      `json:"RequestId" xml:"RequestId"`
+	Success    bool                        `json:"Success" xml:"Success"`
+	Total      int                         `json:"Total" xml:"Total"`
+	PageNumber int                         `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int                         `json:"PageSize" xml:"PageSize"`
+	Items      ItemsInDescribeDrdsSlowSqls `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeDrdsSlowSqlsRequest creates a request to invoke DescribeDrdsSlowSqls API
+func CreateDescribeDrdsSlowSqlsRequest() (request *DescribeDrdsSlowSqlsRequest) {
+	request = &DescribeDrdsSlowSqlsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsSlowSqls", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsSlowSqlsResponse creates a response to parse from DescribeDrdsSlowSqls response
+func CreateDescribeDrdsSlowSqlsResponse() (response *DescribeDrdsSlowSqlsResponse) {
+	response = &DescribeDrdsSlowSqlsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_drds_sql_audit_status.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsSqlAuditStatus invokes the drds.DescribeDrdsSqlAuditStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdssqlauditstatus.html
+func (client *Client) DescribeDrdsSqlAuditStatus(request *DescribeDrdsSqlAuditStatusRequest) (response *DescribeDrdsSqlAuditStatusResponse, err error) {
+	response = CreateDescribeDrdsSqlAuditStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsSqlAuditStatusWithChan invokes the drds.DescribeDrdsSqlAuditStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdssqlauditstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsSqlAuditStatusWithChan(request *DescribeDrdsSqlAuditStatusRequest) (<-chan *DescribeDrdsSqlAuditStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsSqlAuditStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsSqlAuditStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsSqlAuditStatusWithCallback invokes the drds.DescribeDrdsSqlAuditStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdssqlauditstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsSqlAuditStatusWithCallback(request *DescribeDrdsSqlAuditStatusRequest, callback func(response *DescribeDrdsSqlAuditStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsSqlAuditStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsSqlAuditStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsSqlAuditStatusRequest is the request struct for api DescribeDrdsSqlAuditStatus
+type DescribeDrdsSqlAuditStatusRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsSqlAuditStatusResponse is the response struct for api DescribeDrdsSqlAuditStatus
+type DescribeDrdsSqlAuditStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string                           `json:"RequestId" xml:"RequestId"`
+	Success   bool                             `json:"Success" xml:"Success"`
+	Data      DataInDescribeDrdsSqlAuditStatus `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsSqlAuditStatusRequest creates a request to invoke DescribeDrdsSqlAuditStatus API
+func CreateDescribeDrdsSqlAuditStatusRequest() (request *DescribeDrdsSqlAuditStatusRequest) {
+	request = &DescribeDrdsSqlAuditStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsSqlAuditStatus", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsSqlAuditStatusResponse creates a response to parse from DescribeDrdsSqlAuditStatus response
+func CreateDescribeDrdsSqlAuditStatusResponse() (response *DescribeDrdsSqlAuditStatusResponse) {
+	response = &DescribeDrdsSqlAuditStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_tasks.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeDrdsTasks invokes the drds.DescribeDrdsTasks API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdstasks.html
+func (client *Client) DescribeDrdsTasks(request *DescribeDrdsTasksRequest) (response *DescribeDrdsTasksResponse, err error) {
+	response = CreateDescribeDrdsTasksResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsTasksWithChan invokes the drds.DescribeDrdsTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdstasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsTasksWithChan(request *DescribeDrdsTasksRequest) (<-chan *DescribeDrdsTasksResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsTasksResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsTasks(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsTasksWithCallback invokes the drds.DescribeDrdsTasks API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdstasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsTasksWithCallback(request *DescribeDrdsTasksRequest, callback func(response *DescribeDrdsTasksResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsTasksResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsTasks(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsTasksRequest is the request struct for api DescribeDrdsTasks
+type DescribeDrdsTasksRequest struct {
+	*requests.RpcRequest
+	TaskType       string `position:"Query" name:"TaskType"`
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsTasksResponse is the response struct for api DescribeDrdsTasks
+type DescribeDrdsTasksResponse struct {
+	*responses.BaseResponse
+	RequestId string                   `json:"RequestId" xml:"RequestId"`
+	Success   bool                     `json:"Success" xml:"Success"`
+	Tasks     TasksInDescribeDrdsTasks `json:"Tasks" xml:"Tasks"`
+}
+
+// CreateDescribeDrdsTasksRequest creates a request to invoke DescribeDrdsTasks API
+func CreateDescribeDrdsTasksRequest() (request *DescribeDrdsTasksRequest) {
+	request = &DescribeDrdsTasksRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeDrdsTasks", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeDrdsTasksResponse creates a response to parse from DescribeDrdsTasks response
+func CreateDescribeDrdsTasksResponse() (response *DescribeDrdsTasksResponse) {
+	response = &DescribeDrdsTasksResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_expand_logic_table_info_list.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeExpandLogicTableInfoList invokes the drds.DescribeExpandLogicTableInfoList API synchronously
+// api document: https://help.aliyun.com/api/drds/describeexpandlogictableinfolist.html
+func (client *Client) DescribeExpandLogicTableInfoList(request *DescribeExpandLogicTableInfoListRequest) (response *DescribeExpandLogicTableInfoListResponse, err error) {
+	response = CreateDescribeExpandLogicTableInfoListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeExpandLogicTableInfoListWithChan invokes the drds.DescribeExpandLogicTableInfoList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeexpandlogictableinfolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeExpandLogicTableInfoListWithChan(request *DescribeExpandLogicTableInfoListRequest) (<-chan *DescribeExpandLogicTableInfoListResponse, <-chan error) {
+	responseChan := make(chan *DescribeExpandLogicTableInfoListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeExpandLogicTableInfoList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeExpandLogicTableInfoListWithCallback invokes the drds.DescribeExpandLogicTableInfoList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeexpandlogictableinfolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeExpandLogicTableInfoListWithCallback(request *DescribeExpandLogicTableInfoListRequest, callback func(response *DescribeExpandLogicTableInfoListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeExpandLogicTableInfoListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeExpandLogicTableInfoList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeExpandLogicTableInfoListRequest is the request struct for api DescribeExpandLogicTableInfoList
+type DescribeExpandLogicTableInfoListRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeExpandLogicTableInfoListResponse is the response struct for api DescribeExpandLogicTableInfoList
+type DescribeExpandLogicTableInfoListResponse struct {
+	*responses.BaseResponse
+	RequestId string                                 `json:"RequestId" xml:"RequestId"`
+	Success   bool                                   `json:"Success" xml:"Success"`
+	Data      DataInDescribeExpandLogicTableInfoList `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeExpandLogicTableInfoListRequest creates a request to invoke DescribeExpandLogicTableInfoList API
+func CreateDescribeExpandLogicTableInfoListRequest() (request *DescribeExpandLogicTableInfoListRequest) {
+	request = &DescribeExpandLogicTableInfoListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeExpandLogicTableInfoList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeExpandLogicTableInfoListResponse creates a response to parse from DescribeExpandLogicTableInfoList response
+func CreateDescribeExpandLogicTableInfoListResponse() (response *DescribeExpandLogicTableInfoListResponse) {
+	response = &DescribeExpandLogicTableInfoListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_global_broadcast_type.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeGlobalBroadcastType invokes the drds.DescribeGlobalBroadcastType API synchronously
+// api document: https://help.aliyun.com/api/drds/describeglobalbroadcasttype.html
+func (client *Client) DescribeGlobalBroadcastType(request *DescribeGlobalBroadcastTypeRequest) (response *DescribeGlobalBroadcastTypeResponse, err error) {
+	response = CreateDescribeGlobalBroadcastTypeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeGlobalBroadcastTypeWithChan invokes the drds.DescribeGlobalBroadcastType API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeglobalbroadcasttype.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeGlobalBroadcastTypeWithChan(request *DescribeGlobalBroadcastTypeRequest) (<-chan *DescribeGlobalBroadcastTypeResponse, <-chan error) {
+	responseChan := make(chan *DescribeGlobalBroadcastTypeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeGlobalBroadcastType(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeGlobalBroadcastTypeWithCallback invokes the drds.DescribeGlobalBroadcastType API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeglobalbroadcasttype.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeGlobalBroadcastTypeWithCallback(request *DescribeGlobalBroadcastTypeRequest, callback func(response *DescribeGlobalBroadcastTypeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeGlobalBroadcastTypeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeGlobalBroadcastType(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeGlobalBroadcastTypeRequest is the request struct for api DescribeGlobalBroadcastType
+type DescribeGlobalBroadcastTypeRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeGlobalBroadcastTypeResponse is the response struct for api DescribeGlobalBroadcastType
+type DescribeGlobalBroadcastTypeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeGlobalBroadcastTypeRequest creates a request to invoke DescribeGlobalBroadcastType API
+func CreateDescribeGlobalBroadcastTypeRequest() (request *DescribeGlobalBroadcastTypeRequest) {
+	request = &DescribeGlobalBroadcastTypeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeGlobalBroadcastType", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeGlobalBroadcastTypeResponse creates a response to parse from DescribeGlobalBroadcastType response
+func CreateDescribeGlobalBroadcastTypeResponse() (response *DescribeGlobalBroadcastTypeResponse) {
+	response = &DescribeGlobalBroadcastTypeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_hi_store_instance_info.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeHiStoreInstanceInfo invokes the drds.DescribeHiStoreInstanceInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describehistoreinstanceinfo.html
+func (client *Client) DescribeHiStoreInstanceInfo(request *DescribeHiStoreInstanceInfoRequest) (response *DescribeHiStoreInstanceInfoResponse, err error) {
+	response = CreateDescribeHiStoreInstanceInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeHiStoreInstanceInfoWithChan invokes the drds.DescribeHiStoreInstanceInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describehistoreinstanceinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHiStoreInstanceInfoWithChan(request *DescribeHiStoreInstanceInfoRequest) (<-chan *DescribeHiStoreInstanceInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeHiStoreInstanceInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeHiStoreInstanceInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeHiStoreInstanceInfoWithCallback invokes the drds.DescribeHiStoreInstanceInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describehistoreinstanceinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHiStoreInstanceInfoWithCallback(request *DescribeHiStoreInstanceInfoRequest, callback func(response *DescribeHiStoreInstanceInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeHiStoreInstanceInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeHiStoreInstanceInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeHiStoreInstanceInfoRequest is the request struct for api DescribeHiStoreInstanceInfo
+type DescribeHiStoreInstanceInfoRequest struct {
+	*requests.RpcRequest
+	HistoreInstanceId string `position:"Query" name:"HistoreInstanceId"`
+	DrdsInstanceId    string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeHiStoreInstanceInfoResponse is the response struct for api DescribeHiStoreInstanceInfo
+type DescribeHiStoreInstanceInfoResponse struct {
+	*responses.BaseResponse
+	RequestId           string              `json:"RequestId" xml:"RequestId"`
+	Success             bool                `json:"Success" xml:"Success"`
+	HiStoreInstanceInfo HiStoreInstanceInfo `json:"HiStoreInstanceInfo" xml:"HiStoreInstanceInfo"`
+}
+
+// CreateDescribeHiStoreInstanceInfoRequest creates a request to invoke DescribeHiStoreInstanceInfo API
+func CreateDescribeHiStoreInstanceInfoRequest() (request *DescribeHiStoreInstanceInfoRequest) {
+	request = &DescribeHiStoreInstanceInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeHiStoreInstanceInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeHiStoreInstanceInfoResponse creates a response to parse from DescribeHiStoreInstanceInfo response
+func CreateDescribeHiStoreInstanceInfoResponse() (response *DescribeHiStoreInstanceInfoResponse) {
+	response = &DescribeHiStoreInstanceInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_hot_db_list.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeHotDbList invokes the drds.DescribeHotDbList API synchronously
+// api document: https://help.aliyun.com/api/drds/describehotdblist.html
+func (client *Client) DescribeHotDbList(request *DescribeHotDbListRequest) (response *DescribeHotDbListResponse, err error) {
+	response = CreateDescribeHotDbListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeHotDbListWithChan invokes the drds.DescribeHotDbList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describehotdblist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHotDbListWithChan(request *DescribeHotDbListRequest) (<-chan *DescribeHotDbListResponse, <-chan error) {
+	responseChan := make(chan *DescribeHotDbListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeHotDbList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeHotDbListWithCallback invokes the drds.DescribeHotDbList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describehotdblist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHotDbListWithCallback(request *DescribeHotDbListRequest, callback func(response *DescribeHotDbListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeHotDbListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeHotDbList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeHotDbListRequest is the request struct for api DescribeHotDbList
+type DescribeHotDbListRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeHotDbListResponse is the response struct for api DescribeHotDbList
+type DescribeHotDbListResponse struct {
+	*responses.BaseResponse
+	RequestId string                  `json:"RequestId" xml:"RequestId"`
+	Success   bool                    `json:"Success" xml:"Success"`
+	Msg       string                  `json:"Msg" xml:"Msg"`
+	Data      DataInDescribeHotDbList `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeHotDbListRequest creates a request to invoke DescribeHotDbList API
+func CreateDescribeHotDbListRequest() (request *DescribeHotDbListRequest) {
+	request = &DescribeHotDbListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeHotDbList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeHotDbListResponse creates a response to parse from DescribeHotDbList response
+func CreateDescribeHotDbListResponse() (response *DescribeHotDbListResponse) {
+	response = &DescribeHotDbListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_inst_db_log_info.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInstDbLogInfo invokes the drds.DescribeInstDbLogInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describeinstdbloginfo.html
+func (client *Client) DescribeInstDbLogInfo(request *DescribeInstDbLogInfoRequest) (response *DescribeInstDbLogInfoResponse, err error) {
+	response = CreateDescribeInstDbLogInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstDbLogInfoWithChan invokes the drds.DescribeInstDbLogInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstdbloginfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstDbLogInfoWithChan(request *DescribeInstDbLogInfoRequest) (<-chan *DescribeInstDbLogInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstDbLogInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstDbLogInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstDbLogInfoWithCallback invokes the drds.DescribeInstDbLogInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstdbloginfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstDbLogInfoWithCallback(request *DescribeInstDbLogInfoRequest, callback func(response *DescribeInstDbLogInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstDbLogInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstDbLogInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstDbLogInfoRequest is the request struct for api DescribeInstDbLogInfo
+type DescribeInstDbLogInfoRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeInstDbLogInfoResponse is the response struct for api DescribeInstDbLogInfo
+type DescribeInstDbLogInfoResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	Success      bool         `json:"Success" xml:"Success"`
+	LogTimeRange LogTimeRange `json:"LogTimeRange" xml:"LogTimeRange"`
+}
+
+// CreateDescribeInstDbLogInfoRequest creates a request to invoke DescribeInstDbLogInfo API
+func CreateDescribeInstDbLogInfoRequest() (request *DescribeInstDbLogInfoRequest) {
+	request = &DescribeInstDbLogInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeInstDbLogInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeInstDbLogInfoResponse creates a response to parse from DescribeInstDbLogInfo response
+func CreateDescribeInstDbLogInfoResponse() (response *DescribeInstDbLogInfoResponse) {
+	response = &DescribeInstDbLogInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_inst_db_sls_info.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInstDbSlsInfo invokes the drds.DescribeInstDbSlsInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describeinstdbslsinfo.html
+func (client *Client) DescribeInstDbSlsInfo(request *DescribeInstDbSlsInfoRequest) (response *DescribeInstDbSlsInfoResponse, err error) {
+	response = CreateDescribeInstDbSlsInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstDbSlsInfoWithChan invokes the drds.DescribeInstDbSlsInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstdbslsinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstDbSlsInfoWithChan(request *DescribeInstDbSlsInfoRequest) (<-chan *DescribeInstDbSlsInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstDbSlsInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstDbSlsInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstDbSlsInfoWithCallback invokes the drds.DescribeInstDbSlsInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstdbslsinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstDbSlsInfoWithCallback(request *DescribeInstDbSlsInfoRequest, callback func(response *DescribeInstDbSlsInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstDbSlsInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstDbSlsInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstDbSlsInfoRequest is the request struct for api DescribeInstDbSlsInfo
+type DescribeInstDbSlsInfoRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeInstDbSlsInfoResponse is the response struct for api DescribeInstDbSlsInfo
+type DescribeInstDbSlsInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	Success   bool      `json:"Success" xml:"Success"`
+	AuditInfo AuditInfo `json:"AuditInfo" xml:"AuditInfo"`
+}
+
+// CreateDescribeInstDbSlsInfoRequest creates a request to invoke DescribeInstDbSlsInfo API
+func CreateDescribeInstDbSlsInfoRequest() (request *DescribeInstDbSlsInfoRequest) {
+	request = &DescribeInstDbSlsInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeInstDbSlsInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeInstDbSlsInfoResponse creates a response to parse from DescribeInstDbSlsInfo response
+func CreateDescribeInstDbSlsInfoResponse() (response *DescribeInstDbSlsInfoResponse) {
+	response = &DescribeInstDbSlsInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_instance_accounts.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInstanceAccounts invokes the drds.DescribeInstanceAccounts API synchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceaccounts.html
+func (client *Client) DescribeInstanceAccounts(request *DescribeInstanceAccountsRequest) (response *DescribeInstanceAccountsResponse, err error) {
+	response = CreateDescribeInstanceAccountsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceAccountsWithChan invokes the drds.DescribeInstanceAccounts API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceaccounts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceAccountsWithChan(request *DescribeInstanceAccountsRequest) (<-chan *DescribeInstanceAccountsResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceAccountsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceAccounts(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceAccountsWithCallback invokes the drds.DescribeInstanceAccounts API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceaccounts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceAccountsWithCallback(request *DescribeInstanceAccountsRequest, callback func(response *DescribeInstanceAccountsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceAccountsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceAccounts(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceAccountsRequest is the request struct for api DescribeInstanceAccounts
+type DescribeInstanceAccountsRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeInstanceAccountsResponse is the response struct for api DescribeInstanceAccounts
+type DescribeInstanceAccountsResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	Success          bool             `json:"Success" xml:"Success"`
+	InstanceAccounts InstanceAccounts `json:"InstanceAccounts" xml:"InstanceAccounts"`
+}
+
+// CreateDescribeInstanceAccountsRequest creates a request to invoke DescribeInstanceAccounts API
+func CreateDescribeInstanceAccountsRequest() (request *DescribeInstanceAccountsRequest) {
+	request = &DescribeInstanceAccountsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeInstanceAccounts", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceAccountsResponse creates a response to parse from DescribeInstanceAccounts response
+func CreateDescribeInstanceAccountsResponse() (response *DescribeInstanceAccountsResponse) {
+	response = &DescribeInstanceAccountsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_instance_menu_switch.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInstanceMenuSwitch invokes the drds.DescribeInstanceMenuSwitch API synchronously
+// api document: https://help.aliyun.com/api/drds/describeinstancemenuswitch.html
+func (client *Client) DescribeInstanceMenuSwitch(request *DescribeInstanceMenuSwitchRequest) (response *DescribeInstanceMenuSwitchResponse, err error) {
+	response = CreateDescribeInstanceMenuSwitchResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceMenuSwitchWithChan invokes the drds.DescribeInstanceMenuSwitch API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstancemenuswitch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceMenuSwitchWithChan(request *DescribeInstanceMenuSwitchRequest) (<-chan *DescribeInstanceMenuSwitchResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceMenuSwitchResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceMenuSwitch(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceMenuSwitchWithCallback invokes the drds.DescribeInstanceMenuSwitch API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstancemenuswitch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceMenuSwitchWithCallback(request *DescribeInstanceMenuSwitchRequest, callback func(response *DescribeInstanceMenuSwitchResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceMenuSwitchResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceMenuSwitch(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceMenuSwitchRequest is the request struct for api DescribeInstanceMenuSwitch
+type DescribeInstanceMenuSwitchRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeInstanceMenuSwitchResponse is the response struct for api DescribeInstanceMenuSwitch
+type DescribeInstanceMenuSwitchResponse struct {
+	*responses.BaseResponse
+	RequestId string                 `json:"RequestId" xml:"RequestId"`
+	Success   bool                   `json:"Success" xml:"Success"`
+	Config    map[string]interface{} `json:"Config" xml:"Config"`
+}
+
+// CreateDescribeInstanceMenuSwitchRequest creates a request to invoke DescribeInstanceMenuSwitch API
+func CreateDescribeInstanceMenuSwitchRequest() (request *DescribeInstanceMenuSwitchRequest) {
+	request = &DescribeInstanceMenuSwitchRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeInstanceMenuSwitch", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceMenuSwitchResponse creates a response to parse from DescribeInstanceMenuSwitch response
+func CreateDescribeInstanceMenuSwitchResponse() (response *DescribeInstanceMenuSwitchResponse) {
+	response = &DescribeInstanceMenuSwitchResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_instance_switch_azone.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInstanceSwitchAzone invokes the drds.DescribeInstanceSwitchAzone API synchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceswitchazone.html
+func (client *Client) DescribeInstanceSwitchAzone(request *DescribeInstanceSwitchAzoneRequest) (response *DescribeInstanceSwitchAzoneResponse, err error) {
+	response = CreateDescribeInstanceSwitchAzoneResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceSwitchAzoneWithChan invokes the drds.DescribeInstanceSwitchAzone API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceswitchazone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSwitchAzoneWithChan(request *DescribeInstanceSwitchAzoneRequest) (<-chan *DescribeInstanceSwitchAzoneResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceSwitchAzoneResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceSwitchAzone(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceSwitchAzoneWithCallback invokes the drds.DescribeInstanceSwitchAzone API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceswitchazone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSwitchAzoneWithCallback(request *DescribeInstanceSwitchAzoneRequest, callback func(response *DescribeInstanceSwitchAzoneResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceSwitchAzoneResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceSwitchAzone(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceSwitchAzoneRequest is the request struct for api DescribeInstanceSwitchAzone
+type DescribeInstanceSwitchAzoneRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeInstanceSwitchAzoneResponse is the response struct for api DescribeInstanceSwitchAzone
+type DescribeInstanceSwitchAzoneResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    Result `json:"Result" xml:"Result"`
+}
+
+// CreateDescribeInstanceSwitchAzoneRequest creates a request to invoke DescribeInstanceSwitchAzone API
+func CreateDescribeInstanceSwitchAzoneRequest() (request *DescribeInstanceSwitchAzoneRequest) {
+	request = &DescribeInstanceSwitchAzoneRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeInstanceSwitchAzone", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceSwitchAzoneResponse creates a response to parse from DescribeInstanceSwitchAzone response
+func CreateDescribeInstanceSwitchAzoneResponse() (response *DescribeInstanceSwitchAzoneResponse) {
+	response = &DescribeInstanceSwitchAzoneResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_instance_switch_network.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeInstanceSwitchNetwork invokes the drds.DescribeInstanceSwitchNetwork API synchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceswitchnetwork.html
+func (client *Client) DescribeInstanceSwitchNetwork(request *DescribeInstanceSwitchNetworkRequest) (response *DescribeInstanceSwitchNetworkResponse, err error) {
+	response = CreateDescribeInstanceSwitchNetworkResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceSwitchNetworkWithChan invokes the drds.DescribeInstanceSwitchNetwork API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceswitchnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSwitchNetworkWithChan(request *DescribeInstanceSwitchNetworkRequest) (<-chan *DescribeInstanceSwitchNetworkResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceSwitchNetworkResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceSwitchNetwork(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceSwitchNetworkWithCallback invokes the drds.DescribeInstanceSwitchNetwork API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeinstanceswitchnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSwitchNetworkWithCallback(request *DescribeInstanceSwitchNetworkRequest, callback func(response *DescribeInstanceSwitchNetworkResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceSwitchNetworkResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceSwitchNetwork(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceSwitchNetworkRequest is the request struct for api DescribeInstanceSwitchNetwork
+type DescribeInstanceSwitchNetworkRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeInstanceSwitchNetworkResponse is the response struct for api DescribeInstanceSwitchNetwork
+type DescribeInstanceSwitchNetworkResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Success   bool     `json:"Success" xml:"Success"`
+	VpcInfos  VpcInfos `json:"VpcInfos" xml:"VpcInfos"`
+}
+
+// CreateDescribeInstanceSwitchNetworkRequest creates a request to invoke DescribeInstanceSwitchNetwork API
+func CreateDescribeInstanceSwitchNetworkRequest() (request *DescribeInstanceSwitchNetworkRequest) {
+	request = &DescribeInstanceSwitchNetworkRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeInstanceSwitchNetwork", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceSwitchNetworkResponse creates a response to parse from DescribeInstanceSwitchNetwork response
+func CreateDescribeInstanceSwitchNetworkResponse() (response *DescribeInstanceSwitchNetworkResponse) {
+	response = &DescribeInstanceSwitchNetworkResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_pre_check_result.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribePreCheckResult invokes the drds.DescribePreCheckResult API synchronously
+// api document: https://help.aliyun.com/api/drds/describeprecheckresult.html
+func (client *Client) DescribePreCheckResult(request *DescribePreCheckResultRequest) (response *DescribePreCheckResultResponse, err error) {
+	response = CreateDescribePreCheckResultResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribePreCheckResultWithChan invokes the drds.DescribePreCheckResult API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeprecheckresult.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePreCheckResultWithChan(request *DescribePreCheckResultRequest) (<-chan *DescribePreCheckResultResponse, <-chan error) {
+	responseChan := make(chan *DescribePreCheckResultResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribePreCheckResult(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribePreCheckResultWithCallback invokes the drds.DescribePreCheckResult API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeprecheckresult.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePreCheckResultWithCallback(request *DescribePreCheckResultRequest, callback func(response *DescribePreCheckResultResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribePreCheckResultResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribePreCheckResult(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribePreCheckResultRequest is the request struct for api DescribePreCheckResult
+type DescribePreCheckResultRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	TaskId         string `position:"Query" name:"TaskId"`
+}
+
+// DescribePreCheckResultResponse is the response struct for api DescribePreCheckResult
+type DescribePreCheckResultResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	PreCheckResult PreCheckResult `json:"PreCheckResult" xml:"PreCheckResult"`
+}
+
+// CreateDescribePreCheckResultRequest creates a request to invoke DescribePreCheckResult API
+func CreateDescribePreCheckResultRequest() (request *DescribePreCheckResultRequest) {
+	request = &DescribePreCheckResultRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribePreCheckResult", "drds", "openAPI")
+	return
+}
+
+// CreateDescribePreCheckResultResponse creates a response to parse from DescribePreCheckResult response
+func CreateDescribePreCheckResultResponse() (response *DescribePreCheckResultResponse) {
+	response = &DescribePreCheckResultResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_rds_commodity.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRdsCommodity invokes the drds.DescribeRdsCommodity API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdscommodity.html
+func (client *Client) DescribeRdsCommodity(request *DescribeRdsCommodityRequest) (response *DescribeRdsCommodityResponse, err error) {
+	response = CreateDescribeRdsCommodityResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsCommodityWithChan invokes the drds.DescribeRdsCommodity API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdscommodity.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsCommodityWithChan(request *DescribeRdsCommodityRequest) (<-chan *DescribeRdsCommodityResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsCommodityResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsCommodity(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsCommodityWithCallback invokes the drds.DescribeRdsCommodity API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdscommodity.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsCommodityWithCallback(request *DescribeRdsCommodityRequest, callback func(response *DescribeRdsCommodityResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsCommodityResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsCommodity(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsCommodityRequest is the request struct for api DescribeRdsCommodity
+type DescribeRdsCommodityRequest struct {
+	*requests.RpcRequest
+	CommodityCode  string `position:"Query" name:"CommodityCode"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	OrderType      string `position:"Query" name:"OrderType"`
+}
+
+// DescribeRdsCommodityResponse is the response struct for api DescribeRdsCommodity
+type DescribeRdsCommodityResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeRdsCommodityRequest creates a request to invoke DescribeRdsCommodity API
+func CreateDescribeRdsCommodityRequest() (request *DescribeRdsCommodityRequest) {
+	request = &DescribeRdsCommodityRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRdsCommodity", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRdsCommodityResponse creates a response to parse from DescribeRdsCommodity response
+func CreateDescribeRdsCommodityResponse() (response *DescribeRdsCommodityResponse) {
+	response = &DescribeRdsCommodityResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/drds/describe_rds_performance.go

@@ -0,0 +1,110 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRDSPerformance invokes the drds.DescribeRDSPerformance API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdsperformance.html
+func (client *Client) DescribeRDSPerformance(request *DescribeRDSPerformanceRequest) (response *DescribeRDSPerformanceResponse, err error) {
+	response = CreateDescribeRDSPerformanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRDSPerformanceWithChan invokes the drds.DescribeRDSPerformance API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsperformance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRDSPerformanceWithChan(request *DescribeRDSPerformanceRequest) (<-chan *DescribeRDSPerformanceResponse, <-chan error) {
+	responseChan := make(chan *DescribeRDSPerformanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRDSPerformance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRDSPerformanceWithCallback invokes the drds.DescribeRDSPerformance API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsperformance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRDSPerformanceWithCallback(request *DescribeRDSPerformanceRequest, callback func(response *DescribeRDSPerformanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRDSPerformanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRDSPerformance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRDSPerformanceRequest is the request struct for api DescribeRDSPerformance
+type DescribeRDSPerformanceRequest struct {
+	*requests.RpcRequest
+	Keys           string           `position:"Query" name:"Keys"`
+	EndTime        requests.Integer `position:"Query" name:"EndTime"`
+	StartTime      requests.Integer `position:"Query" name:"StartTime"`
+	RdsInstanceId  string           `position:"Query" name:"RdsInstanceId"`
+	DbInstType     string           `position:"Query" name:"DbInstType"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeRDSPerformanceResponse is the response struct for api DescribeRDSPerformance
+type DescribeRDSPerformanceResponse struct {
+	*responses.BaseResponse
+	RequestId string                   `json:"RequestId" xml:"RequestId"`
+	Success   bool                     `json:"Success" xml:"Success"`
+	Data      []PartialPerformanceData `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeRDSPerformanceRequest creates a request to invoke DescribeRDSPerformance API
+func CreateDescribeRDSPerformanceRequest() (request *DescribeRDSPerformanceRequest) {
+	request = &DescribeRDSPerformanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRDSPerformance", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRDSPerformanceResponse creates a response to parse from DescribeRDSPerformance response
+func CreateDescribeRDSPerformanceResponse() (response *DescribeRDSPerformanceResponse) {
+	response = &DescribeRDSPerformanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_rds_performance_summary.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRdsPerformanceSummary invokes the drds.DescribeRdsPerformanceSummary API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdsperformancesummary.html
+func (client *Client) DescribeRdsPerformanceSummary(request *DescribeRdsPerformanceSummaryRequest) (response *DescribeRdsPerformanceSummaryResponse, err error) {
+	response = CreateDescribeRdsPerformanceSummaryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsPerformanceSummaryWithChan invokes the drds.DescribeRdsPerformanceSummary API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsperformancesummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsPerformanceSummaryWithChan(request *DescribeRdsPerformanceSummaryRequest) (<-chan *DescribeRdsPerformanceSummaryResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsPerformanceSummaryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsPerformanceSummary(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsPerformanceSummaryWithCallback invokes the drds.DescribeRdsPerformanceSummary API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsperformancesummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsPerformanceSummaryWithCallback(request *DescribeRdsPerformanceSummaryRequest, callback func(response *DescribeRdsPerformanceSummaryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsPerformanceSummaryResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsPerformanceSummary(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsPerformanceSummaryRequest is the request struct for api DescribeRdsPerformanceSummary
+type DescribeRdsPerformanceSummaryRequest struct {
+	*requests.RpcRequest
+	RdsInstanceId  *[]string `position:"Query" name:"RdsInstanceId"  type:"Repeated"`
+	DrdsInstanceId string    `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeRdsPerformanceSummaryResponse is the response struct for api DescribeRdsPerformanceSummary
+type DescribeRdsPerformanceSummaryResponse struct {
+	*responses.BaseResponse
+	RequestId           string               `json:"RequestId" xml:"RequestId"`
+	Success             bool                 `json:"Success" xml:"Success"`
+	RdsPerformanceInfos []RdsPerformanceInfo `json:"RdsPerformanceInfos" xml:"RdsPerformanceInfos"`
+}
+
+// CreateDescribeRdsPerformanceSummaryRequest creates a request to invoke DescribeRdsPerformanceSummary API
+func CreateDescribeRdsPerformanceSummaryRequest() (request *DescribeRdsPerformanceSummaryRequest) {
+	request = &DescribeRdsPerformanceSummaryRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRdsPerformanceSummary", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRdsPerformanceSummaryResponse creates a response to parse from DescribeRdsPerformanceSummary response
+func CreateDescribeRdsPerformanceSummaryResponse() (response *DescribeRdsPerformanceSummaryResponse) {
+	response = &DescribeRdsPerformanceSummaryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_rds_price.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRdsPrice invokes the drds.DescribeRdsPrice API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdsprice.html
+func (client *Client) DescribeRdsPrice(request *DescribeRdsPriceRequest) (response *DescribeRdsPriceResponse, err error) {
+	response = CreateDescribeRdsPriceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsPriceWithChan invokes the drds.DescribeRdsPrice API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsprice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsPriceWithChan(request *DescribeRdsPriceRequest) (<-chan *DescribeRdsPriceResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsPriceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsPrice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsPriceWithCallback invokes the drds.DescribeRdsPrice API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsprice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsPriceWithCallback(request *DescribeRdsPriceRequest, callback func(response *DescribeRdsPriceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsPriceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsPrice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsPriceRequest is the request struct for api DescribeRdsPrice
+type DescribeRdsPriceRequest struct {
+	*requests.RpcRequest
+	Params string `position:"Query" name:"Params"`
+}
+
+// DescribeRdsPriceResponse is the response struct for api DescribeRdsPrice
+type DescribeRdsPriceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeRdsPriceRequest creates a request to invoke DescribeRdsPrice API
+func CreateDescribeRdsPriceRequest() (request *DescribeRdsPriceRequest) {
+	request = &DescribeRdsPriceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRdsPrice", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRdsPriceResponse creates a response to parse from DescribeRdsPrice response
+func CreateDescribeRdsPriceResponse() (response *DescribeRdsPriceResponse) {
+	response = &DescribeRdsPriceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_rds_super_account_instances.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRdsSuperAccountInstances invokes the drds.DescribeRdsSuperAccountInstances API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdssuperaccountinstances.html
+func (client *Client) DescribeRdsSuperAccountInstances(request *DescribeRdsSuperAccountInstancesRequest) (response *DescribeRdsSuperAccountInstancesResponse, err error) {
+	response = CreateDescribeRdsSuperAccountInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsSuperAccountInstancesWithChan invokes the drds.DescribeRdsSuperAccountInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdssuperaccountinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsSuperAccountInstancesWithChan(request *DescribeRdsSuperAccountInstancesRequest) (<-chan *DescribeRdsSuperAccountInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsSuperAccountInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsSuperAccountInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsSuperAccountInstancesWithCallback invokes the drds.DescribeRdsSuperAccountInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdssuperaccountinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsSuperAccountInstancesWithCallback(request *DescribeRdsSuperAccountInstancesRequest, callback func(response *DescribeRdsSuperAccountInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsSuperAccountInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsSuperAccountInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsSuperAccountInstancesRequest is the request struct for api DescribeRdsSuperAccountInstances
+type DescribeRdsSuperAccountInstancesRequest struct {
+	*requests.RpcRequest
+	RdsInstance    *[]string `position:"Query" name:"RdsInstance"  type:"Repeated"`
+	DbInstType     string    `position:"Query" name:"DbInstType"`
+	DrdsInstanceId string    `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeRdsSuperAccountInstancesResponse is the response struct for api DescribeRdsSuperAccountInstances
+type DescribeRdsSuperAccountInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId   string                                        `json:"RequestId" xml:"RequestId"`
+	DbInstances DbInstancesInDescribeRdsSuperAccountInstances `json:"DbInstances" xml:"DbInstances"`
+}
+
+// CreateDescribeRdsSuperAccountInstancesRequest creates a request to invoke DescribeRdsSuperAccountInstances API
+func CreateDescribeRdsSuperAccountInstancesRequest() (request *DescribeRdsSuperAccountInstancesRequest) {
+	request = &DescribeRdsSuperAccountInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRdsSuperAccountInstances", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRdsSuperAccountInstancesResponse creates a response to parse from DescribeRdsSuperAccountInstances response
+func CreateDescribeRdsSuperAccountInstancesResponse() (response *DescribeRdsSuperAccountInstancesResponse) {
+	response = &DescribeRdsSuperAccountInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_rds_vpc_for_zone.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRdsVpcForZone invokes the drds.DescribeRdsVpcForZone API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdsvpcforzone.html
+func (client *Client) DescribeRdsVpcForZone(request *DescribeRdsVpcForZoneRequest) (response *DescribeRdsVpcForZoneResponse, err error) {
+	response = CreateDescribeRdsVpcForZoneResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsVpcForZoneWithChan invokes the drds.DescribeRdsVpcForZone API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsvpcforzone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsVpcForZoneWithChan(request *DescribeRdsVpcForZoneRequest) (<-chan *DescribeRdsVpcForZoneResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsVpcForZoneResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsVpcForZone(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsVpcForZoneWithCallback invokes the drds.DescribeRdsVpcForZone API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdsvpcforzone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsVpcForZoneWithCallback(request *DescribeRdsVpcForZoneRequest, callback func(response *DescribeRdsVpcForZoneResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsVpcForZoneResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsVpcForZone(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsVpcForZoneRequest is the request struct for api DescribeRdsVpcForZone
+type DescribeRdsVpcForZoneRequest struct {
+	*requests.RpcRequest
+	ZoneId string `position:"Query" name:"ZoneId"`
+}
+
+// DescribeRdsVpcForZoneResponse is the response struct for api DescribeRdsVpcForZone
+type DescribeRdsVpcForZoneResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeRdsVpcForZoneRequest creates a request to invoke DescribeRdsVpcForZone API
+func CreateDescribeRdsVpcForZoneRequest() (request *DescribeRdsVpcForZoneRequest) {
+	request = &DescribeRdsVpcForZoneRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRdsVpcForZone", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRdsVpcForZoneResponse creates a response to parse from DescribeRdsVpcForZone response
+func CreateDescribeRdsVpcForZoneResponse() (response *DescribeRdsVpcForZoneResponse) {
+	response = &DescribeRdsVpcForZoneResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_recycle_bin_status.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRecycleBinStatus invokes the drds.DescribeRecycleBinStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/describerecyclebinstatus.html
+func (client *Client) DescribeRecycleBinStatus(request *DescribeRecycleBinStatusRequest) (response *DescribeRecycleBinStatusResponse, err error) {
+	response = CreateDescribeRecycleBinStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRecycleBinStatusWithChan invokes the drds.DescribeRecycleBinStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerecyclebinstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRecycleBinStatusWithChan(request *DescribeRecycleBinStatusRequest) (<-chan *DescribeRecycleBinStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeRecycleBinStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRecycleBinStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRecycleBinStatusWithCallback invokes the drds.DescribeRecycleBinStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerecyclebinstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRecycleBinStatusWithCallback(request *DescribeRecycleBinStatusRequest, callback func(response *DescribeRecycleBinStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRecycleBinStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRecycleBinStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRecycleBinStatusRequest is the request struct for api DescribeRecycleBinStatus
+type DescribeRecycleBinStatusRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeRecycleBinStatusResponse is the response struct for api DescribeRecycleBinStatus
+type DescribeRecycleBinStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Status    string `json:"Status" xml:"Status"`
+}
+
+// CreateDescribeRecycleBinStatusRequest creates a request to invoke DescribeRecycleBinStatus API
+func CreateDescribeRecycleBinStatusRequest() (request *DescribeRecycleBinStatusRequest) {
+	request = &DescribeRecycleBinStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRecycleBinStatus", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRecycleBinStatusResponse creates a response to parse from DescribeRecycleBinStatus response
+func CreateDescribeRecycleBinStatusResponse() (response *DescribeRecycleBinStatusResponse) {
+	response = &DescribeRecycleBinStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_recycle_bin_tables.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRecycleBinTables invokes the drds.DescribeRecycleBinTables API synchronously
+// api document: https://help.aliyun.com/api/drds/describerecyclebintables.html
+func (client *Client) DescribeRecycleBinTables(request *DescribeRecycleBinTablesRequest) (response *DescribeRecycleBinTablesResponse, err error) {
+	response = CreateDescribeRecycleBinTablesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRecycleBinTablesWithChan invokes the drds.DescribeRecycleBinTables API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerecyclebintables.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRecycleBinTablesWithChan(request *DescribeRecycleBinTablesRequest) (<-chan *DescribeRecycleBinTablesResponse, <-chan error) {
+	responseChan := make(chan *DescribeRecycleBinTablesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRecycleBinTables(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRecycleBinTablesWithCallback invokes the drds.DescribeRecycleBinTables API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerecyclebintables.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRecycleBinTablesWithCallback(request *DescribeRecycleBinTablesRequest, callback func(response *DescribeRecycleBinTablesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRecycleBinTablesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRecycleBinTables(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRecycleBinTablesRequest is the request struct for api DescribeRecycleBinTables
+type DescribeRecycleBinTablesRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeRecycleBinTablesResponse is the response struct for api DescribeRecycleBinTables
+type DescribeRecycleBinTablesResponse struct {
+	*responses.BaseResponse
+	RequestId string     `json:"RequestId" xml:"RequestId"`
+	Success   bool       `json:"Success" xml:"Success"`
+	Data      []DataItem `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeRecycleBinTablesRequest creates a request to invoke DescribeRecycleBinTables API
+func CreateDescribeRecycleBinTablesRequest() (request *DescribeRecycleBinTablesRequest) {
+	request = &DescribeRecycleBinTablesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRecycleBinTables", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRecycleBinTablesResponse creates a response to parse from DescribeRecycleBinTables response
+func CreateDescribeRecycleBinTablesResponse() (response *DescribeRecycleBinTablesResponse) {
+	response = &DescribeRecycleBinTablesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/drds/describe_restore_order.go

@@ -0,0 +1,110 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRestoreOrder invokes the drds.DescribeRestoreOrder API synchronously
+// api document: https://help.aliyun.com/api/drds/describerestoreorder.html
+func (client *Client) DescribeRestoreOrder(request *DescribeRestoreOrderRequest) (response *DescribeRestoreOrderResponse, err error) {
+	response = CreateDescribeRestoreOrderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRestoreOrderWithChan invokes the drds.DescribeRestoreOrder API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerestoreorder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRestoreOrderWithChan(request *DescribeRestoreOrderRequest) (<-chan *DescribeRestoreOrderResponse, <-chan error) {
+	responseChan := make(chan *DescribeRestoreOrderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRestoreOrder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRestoreOrderWithCallback invokes the drds.DescribeRestoreOrder API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerestoreorder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRestoreOrderWithCallback(request *DescribeRestoreOrderRequest, callback func(response *DescribeRestoreOrderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRestoreOrderResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRestoreOrder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRestoreOrderRequest is the request struct for api DescribeRestoreOrder
+type DescribeRestoreOrderRequest struct {
+	*requests.RpcRequest
+	PreferredBackupTime string `position:"Query" name:"PreferredBackupTime"`
+	BackupDbNames       string `position:"Query" name:"BackupDbNames"`
+	BackupId            string `position:"Query" name:"BackupId"`
+	BackupMode          string `position:"Query" name:"BackupMode"`
+	BackupLevel         string `position:"Query" name:"BackupLevel"`
+	DrdsInstanceId      string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeRestoreOrderResponse is the response struct for api DescribeRestoreOrder
+type DescribeRestoreOrderResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	RestoreOrderDO RestoreOrderDO `json:"RestoreOrderDO" xml:"RestoreOrderDO"`
+}
+
+// CreateDescribeRestoreOrderRequest creates a request to invoke DescribeRestoreOrder API
+func CreateDescribeRestoreOrderRequest() (request *DescribeRestoreOrderRequest) {
+	request = &DescribeRestoreOrderRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeRestoreOrder", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeRestoreOrderResponse creates a response to parse from DescribeRestoreOrder response
+func CreateDescribeRestoreOrderResponse() (response *DescribeRestoreOrderResponse) {
+	response = &DescribeRestoreOrderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/describe_shard_task_info.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeShardTaskInfo invokes the drds.DescribeShardTaskInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describeshardtaskinfo.html
+func (client *Client) DescribeShardTaskInfo(request *DescribeShardTaskInfoRequest) (response *DescribeShardTaskInfoResponse, err error) {
+	response = CreateDescribeShardTaskInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeShardTaskInfoWithChan invokes the drds.DescribeShardTaskInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeshardtaskinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardTaskInfoWithChan(request *DescribeShardTaskInfoRequest) (<-chan *DescribeShardTaskInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeShardTaskInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeShardTaskInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeShardTaskInfoWithCallback invokes the drds.DescribeShardTaskInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeshardtaskinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardTaskInfoWithCallback(request *DescribeShardTaskInfoRequest, callback func(response *DescribeShardTaskInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeShardTaskInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeShardTaskInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeShardTaskInfoRequest is the request struct for api DescribeShardTaskInfo
+type DescribeShardTaskInfoRequest struct {
+	*requests.RpcRequest
+	DbName          string `position:"Query" name:"DbName"`
+	SourceTableName string `position:"Query" name:"SourceTableName"`
+	TargetTableName string `position:"Query" name:"TargetTableName"`
+	DrdsInstanceId  string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeShardTaskInfoResponse is the response struct for api DescribeShardTaskInfo
+type DescribeShardTaskInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeShardTaskInfoRequest creates a request to invoke DescribeShardTaskInfo API
+func CreateDescribeShardTaskInfoRequest() (request *DescribeShardTaskInfoRequest) {
+	request = &DescribeShardTaskInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeShardTaskInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeShardTaskInfoResponse creates a response to parse from DescribeShardTaskInfo response
+func CreateDescribeShardTaskInfoResponse() (response *DescribeShardTaskInfoResponse) {
+	response = &DescribeShardTaskInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/drds/describe_shard_task_list.go

@@ -0,0 +1,113 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeShardTaskList invokes the drds.DescribeShardTaskList API synchronously
+// api document: https://help.aliyun.com/api/drds/describeshardtasklist.html
+func (client *Client) DescribeShardTaskList(request *DescribeShardTaskListRequest) (response *DescribeShardTaskListResponse, err error) {
+	response = CreateDescribeShardTaskListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeShardTaskListWithChan invokes the drds.DescribeShardTaskList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeshardtasklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardTaskListWithChan(request *DescribeShardTaskListRequest) (<-chan *DescribeShardTaskListResponse, <-chan error) {
+	responseChan := make(chan *DescribeShardTaskListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeShardTaskList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeShardTaskListWithCallback invokes the drds.DescribeShardTaskList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeshardtasklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardTaskListWithCallback(request *DescribeShardTaskListRequest, callback func(response *DescribeShardTaskListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeShardTaskListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeShardTaskList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeShardTaskListRequest is the request struct for api DescribeShardTaskList
+type DescribeShardTaskListRequest struct {
+	*requests.RpcRequest
+	TaskType       string           `position:"Query" name:"TaskType"`
+	DbName         string           `position:"Query" name:"DbName"`
+	Query          string           `position:"Query" name:"Query"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	CurrentPage    requests.Integer `position:"Query" name:"CurrentPage"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeShardTaskListResponse is the response struct for api DescribeShardTaskList
+type DescribeShardTaskListResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	PageNumber int        `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int        `json:"PageSize" xml:"PageSize"`
+	Total      int        `json:"Total" xml:"Total"`
+	List       []ListItem `json:"List" xml:"List"`
+}
+
+// CreateDescribeShardTaskListRequest creates a request to invoke DescribeShardTaskList API
+func CreateDescribeShardTaskListRequest() (request *DescribeShardTaskListRequest) {
+	request = &DescribeShardTaskListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeShardTaskList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeShardTaskListResponse creates a response to parse from DescribeShardTaskList response
+func CreateDescribeShardTaskListResponse() (response *DescribeShardTaskListResponse) {
+	response = &DescribeShardTaskListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_sql_flashbak_task.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSqlFlashbakTask invokes the drds.DescribeSqlFlashbakTask API synchronously
+// api document: https://help.aliyun.com/api/drds/describesqlflashbaktask.html
+func (client *Client) DescribeSqlFlashbakTask(request *DescribeSqlFlashbakTaskRequest) (response *DescribeSqlFlashbakTaskResponse, err error) {
+	response = CreateDescribeSqlFlashbakTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSqlFlashbakTaskWithChan invokes the drds.DescribeSqlFlashbakTask API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesqlflashbaktask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSqlFlashbakTaskWithChan(request *DescribeSqlFlashbakTaskRequest) (<-chan *DescribeSqlFlashbakTaskResponse, <-chan error) {
+	responseChan := make(chan *DescribeSqlFlashbakTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSqlFlashbakTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSqlFlashbakTaskWithCallback invokes the drds.DescribeSqlFlashbakTask API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesqlflashbaktask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSqlFlashbakTaskWithCallback(request *DescribeSqlFlashbakTaskRequest, callback func(response *DescribeSqlFlashbakTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSqlFlashbakTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSqlFlashbakTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSqlFlashbakTaskRequest is the request struct for api DescribeSqlFlashbakTask
+type DescribeSqlFlashbakTaskRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeSqlFlashbakTaskResponse is the response struct for api DescribeSqlFlashbakTask
+type DescribeSqlFlashbakTaskResponse struct {
+	*responses.BaseResponse
+	RequestId         string            `json:"RequestId" xml:"RequestId"`
+	Success           bool              `json:"Success" xml:"Success"`
+	SqlFlashbackTasks SqlFlashbackTasks `json:"SqlFlashbackTasks" xml:"SqlFlashbackTasks"`
+}
+
+// CreateDescribeSqlFlashbakTaskRequest creates a request to invoke DescribeSqlFlashbakTask API
+func CreateDescribeSqlFlashbakTaskRequest() (request *DescribeSqlFlashbakTaskRequest) {
+	request = &DescribeSqlFlashbakTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeSqlFlashbakTask", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeSqlFlashbakTaskResponse creates a response to parse from DescribeSqlFlashbakTask response
+func CreateDescribeSqlFlashbakTaskResponse() (response *DescribeSqlFlashbakTaskResponse) {
+	response = &DescribeSqlFlashbakTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/drds/describe_src_rds_list.go

@@ -0,0 +1,116 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeSrcRdsList invokes the drds.DescribeSrcRdsList API synchronously
+// api document: https://help.aliyun.com/api/drds/describesrcrdslist.html
+func (client *Client) DescribeSrcRdsList(request *DescribeSrcRdsListRequest) (response *DescribeSrcRdsListResponse, err error) {
+	response = CreateDescribeSrcRdsListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSrcRdsListWithChan invokes the drds.DescribeSrcRdsList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesrcrdslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSrcRdsListWithChan(request *DescribeSrcRdsListRequest) (<-chan *DescribeSrcRdsListResponse, <-chan error) {
+	responseChan := make(chan *DescribeSrcRdsListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSrcRdsList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSrcRdsListWithCallback invokes the drds.DescribeSrcRdsList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesrcrdslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSrcRdsListWithCallback(request *DescribeSrcRdsListRequest, callback func(response *DescribeSrcRdsListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSrcRdsListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSrcRdsList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSrcRdsListRequest is the request struct for api DescribeSrcRdsList
+type DescribeSrcRdsListRequest struct {
+	*requests.RpcRequest
+	DbName           string                                `position:"Query" name:"DbName"`
+	PartitionMapping *[]DescribeSrcRdsListPartitionMapping `position:"Query" name:"PartitionMapping"  type:"Repeated"`
+	DrdsInstanceId   string                                `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeSrcRdsListPartitionMapping is a repeated param struct in DescribeSrcRdsListRequest
+type DescribeSrcRdsListPartitionMapping struct {
+	DbShardValue string `name:"DbShardValue"`
+	HotDbName    string `name:"HotDbName"`
+	HotTableName string `name:"HotTableName"`
+	TbShardValue string `name:"TbShardValue"`
+	LogicTable   string `name:"LogicTable"`
+}
+
+// DescribeSrcRdsListResponse is the response struct for api DescribeSrcRdsList
+type DescribeSrcRdsListResponse struct {
+	*responses.BaseResponse
+	RequestId string                   `json:"RequestId" xml:"RequestId"`
+	Success   bool                     `json:"Success" xml:"Success"`
+	Data      DataInDescribeSrcRdsList `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeSrcRdsListRequest creates a request to invoke DescribeSrcRdsList API
+func CreateDescribeSrcRdsListRequest() (request *DescribeSrcRdsListRequest) {
+	request = &DescribeSrcRdsListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeSrcRdsList", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeSrcRdsListResponse creates a response to parse from DescribeSrcRdsList response
+func CreateDescribeSrcRdsListResponse() (response *DescribeSrcRdsListResponse) {
+	response = &DescribeSrcRdsListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/describe_storage_instance_sub_db_info.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeStorageInstanceSubDbInfo invokes the drds.DescribeStorageInstanceSubDbInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describestorageinstancesubdbinfo.html
+func (client *Client) DescribeStorageInstanceSubDbInfo(request *DescribeStorageInstanceSubDbInfoRequest) (response *DescribeStorageInstanceSubDbInfoResponse, err error) {
+	response = CreateDescribeStorageInstanceSubDbInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeStorageInstanceSubDbInfoWithChan invokes the drds.DescribeStorageInstanceSubDbInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describestorageinstancesubdbinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStorageInstanceSubDbInfoWithChan(request *DescribeStorageInstanceSubDbInfoRequest) (<-chan *DescribeStorageInstanceSubDbInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeStorageInstanceSubDbInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeStorageInstanceSubDbInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeStorageInstanceSubDbInfoWithCallback invokes the drds.DescribeStorageInstanceSubDbInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describestorageinstancesubdbinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStorageInstanceSubDbInfoWithCallback(request *DescribeStorageInstanceSubDbInfoRequest, callback func(response *DescribeStorageInstanceSubDbInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeStorageInstanceSubDbInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeStorageInstanceSubDbInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeStorageInstanceSubDbInfoRequest is the request struct for api DescribeStorageInstanceSubDbInfo
+type DescribeStorageInstanceSubDbInfoRequest struct {
+	*requests.RpcRequest
+	InstanceId     string `position:"Query" name:"InstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	InstType       string `position:"Query" name:"InstType"`
+}
+
+// DescribeStorageInstanceSubDbInfoResponse is the response struct for api DescribeStorageInstanceSubDbInfo
+type DescribeStorageInstanceSubDbInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeStorageInstanceSubDbInfoRequest creates a request to invoke DescribeStorageInstanceSubDbInfo API
+func CreateDescribeStorageInstanceSubDbInfoRequest() (request *DescribeStorageInstanceSubDbInfoRequest) {
+	request = &DescribeStorageInstanceSubDbInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeStorageInstanceSubDbInfo", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeStorageInstanceSubDbInfoResponse creates a response to parse from DescribeStorageInstanceSubDbInfo response
+func CreateDescribeStorageInstanceSubDbInfoResponse() (response *DescribeStorageInstanceSubDbInfoResponse) {
+	response = &DescribeStorageInstanceSubDbInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_table.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeTable invokes the drds.DescribeTable API synchronously
+// api document: https://help.aliyun.com/api/drds/describetable.html
+func (client *Client) DescribeTable(request *DescribeTableRequest) (response *DescribeTableResponse, err error) {
+	response = CreateDescribeTableResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTableWithChan invokes the drds.DescribeTable API asynchronously
+// api document: https://help.aliyun.com/api/drds/describetable.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTableWithChan(request *DescribeTableRequest) (<-chan *DescribeTableResponse, <-chan error) {
+	responseChan := make(chan *DescribeTableResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTable(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTableWithCallback invokes the drds.DescribeTable API asynchronously
+// api document: https://help.aliyun.com/api/drds/describetable.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTableWithCallback(request *DescribeTableRequest, callback func(response *DescribeTableResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTableResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTable(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTableRequest is the request struct for api DescribeTable
+type DescribeTableRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	TableName      string `position:"Query" name:"TableName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeTableResponse is the response struct for api DescribeTable
+type DescribeTableResponse struct {
+	*responses.BaseResponse
+	RequestId string              `json:"RequestId" xml:"RequestId"`
+	Success   bool                `json:"Success" xml:"Success"`
+	Data      DataInDescribeTable `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeTableRequest creates a request to invoke DescribeTable API
+func CreateDescribeTableRequest() (request *DescribeTableRequest) {
+	request = &DescribeTableRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeTable", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeTableResponse creates a response to parse from DescribeTable response
+func CreateDescribeTableResponse() (response *DescribeTableResponse) {
+	response = &DescribeTableResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/drds/describe_table_list_by_type.go

@@ -0,0 +1,113 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeTableListByType invokes the drds.DescribeTableListByType API synchronously
+// api document: https://help.aliyun.com/api/drds/describetablelistbytype.html
+func (client *Client) DescribeTableListByType(request *DescribeTableListByTypeRequest) (response *DescribeTableListByTypeResponse, err error) {
+	response = CreateDescribeTableListByTypeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTableListByTypeWithChan invokes the drds.DescribeTableListByType API asynchronously
+// api document: https://help.aliyun.com/api/drds/describetablelistbytype.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTableListByTypeWithChan(request *DescribeTableListByTypeRequest) (<-chan *DescribeTableListByTypeResponse, <-chan error) {
+	responseChan := make(chan *DescribeTableListByTypeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTableListByType(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTableListByTypeWithCallback invokes the drds.DescribeTableListByType API asynchronously
+// api document: https://help.aliyun.com/api/drds/describetablelistbytype.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTableListByTypeWithCallback(request *DescribeTableListByTypeRequest, callback func(response *DescribeTableListByTypeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTableListByTypeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTableListByType(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTableListByTypeRequest is the request struct for api DescribeTableListByType
+type DescribeTableListByTypeRequest struct {
+	*requests.RpcRequest
+	TableType      string           `position:"Query" name:"TableType"`
+	DbName         string           `position:"Query" name:"DbName"`
+	Query          string           `position:"Query" name:"Query"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	CurrentPage    requests.Integer `position:"Query" name:"CurrentPage"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeTableListByTypeResponse is the response struct for api DescribeTableListByType
+type DescribeTableListByTypeResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	PageNumber int        `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int        `json:"PageSize" xml:"PageSize"`
+	Total      int        `json:"Total" xml:"Total"`
+	List       []ListItem `json:"List" xml:"List"`
+}
+
+// CreateDescribeTableListByTypeRequest creates a request to invoke DescribeTableListByType API
+func CreateDescribeTableListByTypeRequest() (request *DescribeTableListByTypeRequest) {
+	request = &DescribeTableListByTypeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeTableListByType", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeTableListByTypeResponse creates a response to parse from DescribeTableListByType response
+func CreateDescribeTableListByTypeResponse() (response *DescribeTableListByTypeResponse) {
+	response = &DescribeTableListByTypeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/drds/describe_tables.go

@@ -0,0 +1,112 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeTables invokes the drds.DescribeTables API synchronously
+// api document: https://help.aliyun.com/api/drds/describetables.html
+func (client *Client) DescribeTables(request *DescribeTablesRequest) (response *DescribeTablesResponse, err error) {
+	response = CreateDescribeTablesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTablesWithChan invokes the drds.DescribeTables API asynchronously
+// api document: https://help.aliyun.com/api/drds/describetables.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTablesWithChan(request *DescribeTablesRequest) (<-chan *DescribeTablesResponse, <-chan error) {
+	responseChan := make(chan *DescribeTablesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTables(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTablesWithCallback invokes the drds.DescribeTables API asynchronously
+// api document: https://help.aliyun.com/api/drds/describetables.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTablesWithCallback(request *DescribeTablesRequest, callback func(response *DescribeTablesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTablesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTables(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTablesRequest is the request struct for api DescribeTables
+type DescribeTablesRequest struct {
+	*requests.RpcRequest
+	DbName         string           `position:"Query" name:"DbName"`
+	Query          string           `position:"Query" name:"Query"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	CurrentPage    requests.Integer `position:"Query" name:"CurrentPage"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeTablesResponse is the response struct for api DescribeTables
+type DescribeTablesResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	Success    bool       `json:"Success" xml:"Success"`
+	PageNumber int        `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int        `json:"PageSize" xml:"PageSize"`
+	Total      int        `json:"Total" xml:"Total"`
+	List       []ListItem `json:"List" xml:"List"`
+}
+
+// CreateDescribeTablesRequest creates a request to invoke DescribeTables API
+func CreateDescribeTablesRequest() (request *DescribeTablesRequest) {
+	request = &DescribeTablesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DescribeTables", "drds", "openAPI")
+	return
+}
+
+// CreateDescribeTablesResponse creates a response to parse from DescribeTables response
+func CreateDescribeTablesResponse() (response *DescribeTablesResponse) {
+	response = &DescribeTablesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/disable_sql_audit.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DisableSqlAudit invokes the drds.DisableSqlAudit API synchronously
+// api document: https://help.aliyun.com/api/drds/disablesqlaudit.html
+func (client *Client) DisableSqlAudit(request *DisableSqlAuditRequest) (response *DisableSqlAuditResponse, err error) {
+	response = CreateDisableSqlAuditResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DisableSqlAuditWithChan invokes the drds.DisableSqlAudit API asynchronously
+// api document: https://help.aliyun.com/api/drds/disablesqlaudit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DisableSqlAuditWithChan(request *DisableSqlAuditRequest) (<-chan *DisableSqlAuditResponse, <-chan error) {
+	responseChan := make(chan *DisableSqlAuditResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DisableSqlAudit(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DisableSqlAuditWithCallback invokes the drds.DisableSqlAudit API asynchronously
+// api document: https://help.aliyun.com/api/drds/disablesqlaudit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DisableSqlAuditWithCallback(request *DisableSqlAuditRequest, callback func(response *DisableSqlAuditResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DisableSqlAuditResponse
+		var err error
+		defer close(result)
+		response, err = client.DisableSqlAudit(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DisableSqlAuditRequest is the request struct for api DisableSqlAudit
+type DisableSqlAuditRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DisableSqlAuditResponse is the response struct for api DisableSqlAudit
+type DisableSqlAuditResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateDisableSqlAuditRequest creates a request to invoke DisableSqlAudit API
+func CreateDisableSqlAuditRequest() (request *DisableSqlAuditRequest) {
+	request = &DisableSqlAuditRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "DisableSqlAudit", "drds", "openAPI")
+	return
+}
+
+// CreateDisableSqlAuditResponse creates a response to parse from DisableSqlAudit response
+func CreateDisableSqlAuditResponse() (response *DisableSqlAuditResponse) {
+	response = &DisableSqlAuditResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/enable_instance_ipv6_address.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// EnableInstanceIpv6Address invokes the drds.EnableInstanceIpv6Address API synchronously
+// api document: https://help.aliyun.com/api/drds/enableinstanceipv6address.html
+func (client *Client) EnableInstanceIpv6Address(request *EnableInstanceIpv6AddressRequest) (response *EnableInstanceIpv6AddressResponse, err error) {
+	response = CreateEnableInstanceIpv6AddressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// EnableInstanceIpv6AddressWithChan invokes the drds.EnableInstanceIpv6Address API asynchronously
+// api document: https://help.aliyun.com/api/drds/enableinstanceipv6address.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableInstanceIpv6AddressWithChan(request *EnableInstanceIpv6AddressRequest) (<-chan *EnableInstanceIpv6AddressResponse, <-chan error) {
+	responseChan := make(chan *EnableInstanceIpv6AddressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EnableInstanceIpv6Address(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// EnableInstanceIpv6AddressWithCallback invokes the drds.EnableInstanceIpv6Address API asynchronously
+// api document: https://help.aliyun.com/api/drds/enableinstanceipv6address.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableInstanceIpv6AddressWithCallback(request *EnableInstanceIpv6AddressRequest, callback func(response *EnableInstanceIpv6AddressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EnableInstanceIpv6AddressResponse
+		var err error
+		defer close(result)
+		response, err = client.EnableInstanceIpv6Address(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// EnableInstanceIpv6AddressRequest is the request struct for api EnableInstanceIpv6Address
+type EnableInstanceIpv6AddressRequest struct {
+	*requests.RpcRequest
+	DrdsPassword   string `position:"Query" name:"DrdsPassword"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// EnableInstanceIpv6AddressResponse is the response struct for api EnableInstanceIpv6Address
+type EnableInstanceIpv6AddressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateEnableInstanceIpv6AddressRequest creates a request to invoke EnableInstanceIpv6Address API
+func CreateEnableInstanceIpv6AddressRequest() (request *EnableInstanceIpv6AddressRequest) {
+	request = &EnableInstanceIpv6AddressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "EnableInstanceIpv6Address", "drds", "openAPI")
+	return
+}
+
+// CreateEnableInstanceIpv6AddressResponse creates a response to parse from EnableInstanceIpv6Address response
+func CreateEnableInstanceIpv6AddressResponse() (response *EnableInstanceIpv6AddressResponse) {
+	response = &EnableInstanceIpv6AddressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/drds/enable_sql_audit.go

@@ -0,0 +1,109 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// EnableSqlAudit invokes the drds.EnableSqlAudit API synchronously
+// api document: https://help.aliyun.com/api/drds/enablesqlaudit.html
+func (client *Client) EnableSqlAudit(request *EnableSqlAuditRequest) (response *EnableSqlAuditResponse, err error) {
+	response = CreateEnableSqlAuditResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// EnableSqlAuditWithChan invokes the drds.EnableSqlAudit API asynchronously
+// api document: https://help.aliyun.com/api/drds/enablesqlaudit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableSqlAuditWithChan(request *EnableSqlAuditRequest) (<-chan *EnableSqlAuditResponse, <-chan error) {
+	responseChan := make(chan *EnableSqlAuditResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EnableSqlAudit(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// EnableSqlAuditWithCallback invokes the drds.EnableSqlAudit API asynchronously
+// api document: https://help.aliyun.com/api/drds/enablesqlaudit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableSqlAuditWithCallback(request *EnableSqlAuditRequest, callback func(response *EnableSqlAuditResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EnableSqlAuditResponse
+		var err error
+		defer close(result)
+		response, err = client.EnableSqlAudit(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// EnableSqlAuditRequest is the request struct for api EnableSqlAudit
+type EnableSqlAuditRequest struct {
+	*requests.RpcRequest
+	RecallStartTimestamp string           `position:"Query" name:"RecallStartTimestamp"`
+	DbName               string           `position:"Query" name:"DbName"`
+	IsRecall             requests.Boolean `position:"Query" name:"IsRecall"`
+	DrdsInstanceId       string           `position:"Query" name:"DrdsInstanceId"`
+	RecallEndTimestamp   string           `position:"Query" name:"RecallEndTimestamp"`
+}
+
+// EnableSqlAuditResponse is the response struct for api EnableSqlAudit
+type EnableSqlAuditResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateEnableSqlAuditRequest creates a request to invoke EnableSqlAudit API
+func CreateEnableSqlAuditRequest() (request *EnableSqlAuditRequest) {
+	request = &EnableSqlAuditRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "EnableSqlAudit", "drds", "openAPI")
+	return
+}
+
+// CreateEnableSqlAuditResponse creates a response to parse from EnableSqlAudit response
+func CreateEnableSqlAuditResponse() (response *EnableSqlAuditResponse) {
+	response = &EnableSqlAuditResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/enable_sql_flashback_match_switch.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// EnableSqlFlashbackMatchSwitch invokes the drds.EnableSqlFlashbackMatchSwitch API synchronously
+// api document: https://help.aliyun.com/api/drds/enablesqlflashbackmatchswitch.html
+func (client *Client) EnableSqlFlashbackMatchSwitch(request *EnableSqlFlashbackMatchSwitchRequest) (response *EnableSqlFlashbackMatchSwitchResponse, err error) {
+	response = CreateEnableSqlFlashbackMatchSwitchResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// EnableSqlFlashbackMatchSwitchWithChan invokes the drds.EnableSqlFlashbackMatchSwitch API asynchronously
+// api document: https://help.aliyun.com/api/drds/enablesqlflashbackmatchswitch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableSqlFlashbackMatchSwitchWithChan(request *EnableSqlFlashbackMatchSwitchRequest) (<-chan *EnableSqlFlashbackMatchSwitchResponse, <-chan error) {
+	responseChan := make(chan *EnableSqlFlashbackMatchSwitchResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EnableSqlFlashbackMatchSwitch(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// EnableSqlFlashbackMatchSwitchWithCallback invokes the drds.EnableSqlFlashbackMatchSwitch API asynchronously
+// api document: https://help.aliyun.com/api/drds/enablesqlflashbackmatchswitch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableSqlFlashbackMatchSwitchWithCallback(request *EnableSqlFlashbackMatchSwitchRequest, callback func(response *EnableSqlFlashbackMatchSwitchResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EnableSqlFlashbackMatchSwitchResponse
+		var err error
+		defer close(result)
+		response, err = client.EnableSqlFlashbackMatchSwitch(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// EnableSqlFlashbackMatchSwitchRequest is the request struct for api EnableSqlFlashbackMatchSwitch
+type EnableSqlFlashbackMatchSwitchRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// EnableSqlFlashbackMatchSwitchResponse is the response struct for api EnableSqlFlashbackMatchSwitch
+type EnableSqlFlashbackMatchSwitchResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateEnableSqlFlashbackMatchSwitchRequest creates a request to invoke EnableSqlFlashbackMatchSwitch API
+func CreateEnableSqlFlashbackMatchSwitchRequest() (request *EnableSqlFlashbackMatchSwitchRequest) {
+	request = &EnableSqlFlashbackMatchSwitchRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "EnableSqlFlashbackMatchSwitch", "drds", "openAPI")
+	return
+}
+
+// CreateEnableSqlFlashbackMatchSwitchResponse creates a response to parse from EnableSqlFlashbackMatchSwitch response
+func CreateEnableSqlFlashbackMatchSwitchResponse() (response *EnableSqlFlashbackMatchSwitchResponse) {
+	response = &EnableSqlFlashbackMatchSwitchResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/flashback_recycle_bin_table.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// FlashbackRecycleBinTable invokes the drds.FlashbackRecycleBinTable API synchronously
+// api document: https://help.aliyun.com/api/drds/flashbackrecyclebintable.html
+func (client *Client) FlashbackRecycleBinTable(request *FlashbackRecycleBinTableRequest) (response *FlashbackRecycleBinTableResponse, err error) {
+	response = CreateFlashbackRecycleBinTableResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FlashbackRecycleBinTableWithChan invokes the drds.FlashbackRecycleBinTable API asynchronously
+// api document: https://help.aliyun.com/api/drds/flashbackrecyclebintable.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FlashbackRecycleBinTableWithChan(request *FlashbackRecycleBinTableRequest) (<-chan *FlashbackRecycleBinTableResponse, <-chan error) {
+	responseChan := make(chan *FlashbackRecycleBinTableResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FlashbackRecycleBinTable(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FlashbackRecycleBinTableWithCallback invokes the drds.FlashbackRecycleBinTable API asynchronously
+// api document: https://help.aliyun.com/api/drds/flashbackrecyclebintable.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FlashbackRecycleBinTableWithCallback(request *FlashbackRecycleBinTableRequest, callback func(response *FlashbackRecycleBinTableResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FlashbackRecycleBinTableResponse
+		var err error
+		defer close(result)
+		response, err = client.FlashbackRecycleBinTable(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FlashbackRecycleBinTableRequest is the request struct for api FlashbackRecycleBinTable
+type FlashbackRecycleBinTableRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	TableName      string `position:"Query" name:"TableName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// FlashbackRecycleBinTableResponse is the response struct for api FlashbackRecycleBinTable
+type FlashbackRecycleBinTableResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateFlashbackRecycleBinTableRequest creates a request to invoke FlashbackRecycleBinTable API
+func CreateFlashbackRecycleBinTableRequest() (request *FlashbackRecycleBinTableRequest) {
+	request = &FlashbackRecycleBinTableRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "FlashbackRecycleBinTable", "drds", "openAPI")
+	return
+}
+
+// CreateFlashbackRecycleBinTableResponse creates a response to parse from FlashbackRecycleBinTable response
+func CreateFlashbackRecycleBinTableResponse() (response *FlashbackRecycleBinTableResponse) {
+	response = &FlashbackRecycleBinTableResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/drds/get_candidate_instance_list.go

@@ -0,0 +1,109 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetCandidateInstanceList invokes the drds.GetCandidateInstanceList API synchronously
+// api document: https://help.aliyun.com/api/drds/getcandidateinstancelist.html
+func (client *Client) GetCandidateInstanceList(request *GetCandidateInstanceListRequest) (response *GetCandidateInstanceListResponse, err error) {
+	response = CreateGetCandidateInstanceListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetCandidateInstanceListWithChan invokes the drds.GetCandidateInstanceList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getcandidateinstancelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCandidateInstanceListWithChan(request *GetCandidateInstanceListRequest) (<-chan *GetCandidateInstanceListResponse, <-chan error) {
+	responseChan := make(chan *GetCandidateInstanceListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetCandidateInstanceList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetCandidateInstanceListWithCallback invokes the drds.GetCandidateInstanceList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getcandidateinstancelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCandidateInstanceListWithCallback(request *GetCandidateInstanceListRequest, callback func(response *GetCandidateInstanceListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetCandidateInstanceListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetCandidateInstanceList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetCandidateInstanceListRequest is the request struct for api GetCandidateInstanceList
+type GetCandidateInstanceListRequest struct {
+	*requests.RpcRequest
+	Search         string           `position:"Query" name:"Search"`
+	DbName         string           `position:"Query" name:"DbName"`
+	AcrossZone     requests.Boolean `position:"Query" name:"AcrossZone"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetCandidateInstanceListResponse is the response struct for api GetCandidateInstanceList
+type GetCandidateInstanceListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateGetCandidateInstanceListRequest creates a request to invoke GetCandidateInstanceList API
+func CreateGetCandidateInstanceListRequest() (request *GetCandidateInstanceListRequest) {
+	request = &GetCandidateInstanceListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "GetCandidateInstanceList", "drds", "openAPI")
+	return
+}
+
+// CreateGetCandidateInstanceListResponse creates a response to parse from GetCandidateInstanceList response
+func CreateGetCandidateInstanceListResponse() (response *GetCandidateInstanceListResponse) {
+	response = &GetCandidateInstanceListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/get_expand_logic_table_info_list.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetExpandLogicTableInfoList invokes the drds.GetExpandLogicTableInfoList API synchronously
+// api document: https://help.aliyun.com/api/drds/getexpandlogictableinfolist.html
+func (client *Client) GetExpandLogicTableInfoList(request *GetExpandLogicTableInfoListRequest) (response *GetExpandLogicTableInfoListResponse, err error) {
+	response = CreateGetExpandLogicTableInfoListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetExpandLogicTableInfoListWithChan invokes the drds.GetExpandLogicTableInfoList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getexpandlogictableinfolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetExpandLogicTableInfoListWithChan(request *GetExpandLogicTableInfoListRequest) (<-chan *GetExpandLogicTableInfoListResponse, <-chan error) {
+	responseChan := make(chan *GetExpandLogicTableInfoListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetExpandLogicTableInfoList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetExpandLogicTableInfoListWithCallback invokes the drds.GetExpandLogicTableInfoList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getexpandlogictableinfolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetExpandLogicTableInfoListWithCallback(request *GetExpandLogicTableInfoListRequest, callback func(response *GetExpandLogicTableInfoListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetExpandLogicTableInfoListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetExpandLogicTableInfoList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetExpandLogicTableInfoListRequest is the request struct for api GetExpandLogicTableInfoList
+type GetExpandLogicTableInfoListRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// GetExpandLogicTableInfoListResponse is the response struct for api GetExpandLogicTableInfoList
+type GetExpandLogicTableInfoListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateGetExpandLogicTableInfoListRequest creates a request to invoke GetExpandLogicTableInfoList API
+func CreateGetExpandLogicTableInfoListRequest() (request *GetExpandLogicTableInfoListRequest) {
+	request = &GetExpandLogicTableInfoListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "GetExpandLogicTableInfoList", "drds", "openAPI")
+	return
+}
+
+// CreateGetExpandLogicTableInfoListResponse creates a response to parse from GetExpandLogicTableInfoList response
+func CreateGetExpandLogicTableInfoListResponse() (response *GetExpandLogicTableInfoListResponse) {
+	response = &GetExpandLogicTableInfoListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/get_hot_db_list.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetHotDbList invokes the drds.GetHotDbList API synchronously
+// api document: https://help.aliyun.com/api/drds/gethotdblist.html
+func (client *Client) GetHotDbList(request *GetHotDbListRequest) (response *GetHotDbListResponse, err error) {
+	response = CreateGetHotDbListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetHotDbListWithChan invokes the drds.GetHotDbList API asynchronously
+// api document: https://help.aliyun.com/api/drds/gethotdblist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetHotDbListWithChan(request *GetHotDbListRequest) (<-chan *GetHotDbListResponse, <-chan error) {
+	responseChan := make(chan *GetHotDbListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetHotDbList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetHotDbListWithCallback invokes the drds.GetHotDbList API asynchronously
+// api document: https://help.aliyun.com/api/drds/gethotdblist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetHotDbListWithCallback(request *GetHotDbListRequest, callback func(response *GetHotDbListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetHotDbListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetHotDbList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetHotDbListRequest is the request struct for api GetHotDbList
+type GetHotDbListRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// GetHotDbListResponse is the response struct for api GetHotDbList
+type GetHotDbListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateGetHotDbListRequest creates a request to invoke GetHotDbList API
+func CreateGetHotDbListRequest() (request *GetHotDbListRequest) {
+	request = &GetHotDbListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "GetHotDbList", "drds", "openAPI")
+	return
+}
+
+// CreateGetHotDbListResponse creates a response to parse from GetHotDbList response
+func CreateGetHotDbListResponse() (response *GetHotDbListResponse) {
+	response = &GetHotDbListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/get_logic_table_info_list.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetLogicTableInfoList invokes the drds.GetLogicTableInfoList API synchronously
+// api document: https://help.aliyun.com/api/drds/getlogictableinfolist.html
+func (client *Client) GetLogicTableInfoList(request *GetLogicTableInfoListRequest) (response *GetLogicTableInfoListResponse, err error) {
+	response = CreateGetLogicTableInfoListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetLogicTableInfoListWithChan invokes the drds.GetLogicTableInfoList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getlogictableinfolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetLogicTableInfoListWithChan(request *GetLogicTableInfoListRequest) (<-chan *GetLogicTableInfoListResponse, <-chan error) {
+	responseChan := make(chan *GetLogicTableInfoListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetLogicTableInfoList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetLogicTableInfoListWithCallback invokes the drds.GetLogicTableInfoList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getlogictableinfolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetLogicTableInfoListWithCallback(request *GetLogicTableInfoListRequest, callback func(response *GetLogicTableInfoListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetLogicTableInfoListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetLogicTableInfoList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetLogicTableInfoListRequest is the request struct for api GetLogicTableInfoList
+type GetLogicTableInfoListRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// GetLogicTableInfoListResponse is the response struct for api GetLogicTableInfoList
+type GetLogicTableInfoListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateGetLogicTableInfoListRequest creates a request to invoke GetLogicTableInfoList API
+func CreateGetLogicTableInfoListRequest() (request *GetLogicTableInfoListRequest) {
+	request = &GetLogicTableInfoListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "GetLogicTableInfoList", "drds", "openAPI")
+	return
+}
+
+// CreateGetLogicTableInfoListResponse creates a response to parse from GetLogicTableInfoList response
+func CreateGetLogicTableInfoListResponse() (response *GetLogicTableInfoListResponse) {
+	response = &GetLogicTableInfoListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/drds/get_src_rds_list.go

@@ -0,0 +1,115 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetSrcRdsList invokes the drds.GetSrcRdsList API synchronously
+// api document: https://help.aliyun.com/api/drds/getsrcrdslist.html
+func (client *Client) GetSrcRdsList(request *GetSrcRdsListRequest) (response *GetSrcRdsListResponse, err error) {
+	response = CreateGetSrcRdsListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSrcRdsListWithChan invokes the drds.GetSrcRdsList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getsrcrdslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSrcRdsListWithChan(request *GetSrcRdsListRequest) (<-chan *GetSrcRdsListResponse, <-chan error) {
+	responseChan := make(chan *GetSrcRdsListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSrcRdsList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSrcRdsListWithCallback invokes the drds.GetSrcRdsList API asynchronously
+// api document: https://help.aliyun.com/api/drds/getsrcrdslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSrcRdsListWithCallback(request *GetSrcRdsListRequest, callback func(response *GetSrcRdsListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSrcRdsListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSrcRdsList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSrcRdsListRequest is the request struct for api GetSrcRdsList
+type GetSrcRdsListRequest struct {
+	*requests.RpcRequest
+	DbName           string                           `position:"Query" name:"DbName"`
+	PartitionMapping *[]GetSrcRdsListPartitionMapping `position:"Query" name:"PartitionMapping"  type:"Repeated"`
+	DrdsInstanceId   string                           `position:"Query" name:"DrdsInstanceId"`
+}
+
+// GetSrcRdsListPartitionMapping is a repeated param struct in GetSrcRdsListRequest
+type GetSrcRdsListPartitionMapping struct {
+	DbShardValue string `name:"DbShardValue"`
+	HotDbName    string `name:"HotDbName"`
+	HotTableName string `name:"HotTableName"`
+	TbShardValue string `name:"TbShardValue"`
+	LogicTable   string `name:"LogicTable"`
+}
+
+// GetSrcRdsListResponse is the response struct for api GetSrcRdsList
+type GetSrcRdsListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateGetSrcRdsListRequest creates a request to invoke GetSrcRdsList API
+func CreateGetSrcRdsListRequest() (request *GetSrcRdsListRequest) {
+	request = &GetSrcRdsListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "GetSrcRdsList", "drds", "openAPI")
+	return
+}
+
+// CreateGetSrcRdsListResponse creates a response to parse from GetSrcRdsList response
+func CreateGetSrcRdsListResponse() (response *GetSrcRdsListResponse) {
+	response = &GetSrcRdsListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/drds/list_tag_resources.go

@@ -0,0 +1,116 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ListTagResources invokes the drds.ListTagResources API synchronously
+// api document: https://help.aliyun.com/api/drds/listtagresources.html
+func (client *Client) ListTagResources(request *ListTagResourcesRequest) (response *ListTagResourcesResponse, err error) {
+	response = CreateListTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTagResourcesWithChan invokes the drds.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/drds/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithChan(request *ListTagResourcesRequest) (<-chan *ListTagResourcesResponse, <-chan error) {
+	responseChan := make(chan *ListTagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTagResourcesWithCallback invokes the drds.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/drds/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithCallback(request *ListTagResourcesRequest, callback func(response *ListTagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTagResourcesRequest is the request struct for api ListTagResources
+type ListTagResourcesRequest struct {
+	*requests.RpcRequest
+	NoRole       requests.Boolean       `position:"Query" name:"NoRole"`
+	ResourceId   *[]string              `position:"Query" name:"ResourceId"  type:"Repeated"`
+	NextToken    string                 `position:"Query" name:"NextToken"`
+	Tag          *[]ListTagResourcesTag `position:"Query" name:"Tag"  type:"Repeated"`
+	ResourceType string                 `position:"Query" name:"ResourceType"`
+}
+
+// ListTagResourcesTag is a repeated param struct in ListTagResourcesRequest
+type ListTagResourcesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// ListTagResourcesResponse is the response struct for api ListTagResources
+type ListTagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	Success      bool         `json:"Success" xml:"Success"`
+	NextToken    string       `json:"NextToken" xml:"NextToken"`
+	TagResources TagResources `json:"TagResources" xml:"TagResources"`
+}
+
+// CreateListTagResourcesRequest creates a request to invoke ListTagResources API
+func CreateListTagResourcesRequest() (request *ListTagResourcesRequest) {
+	request = &ListTagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ListTagResources", "drds", "openAPI")
+	return
+}
+
+// CreateListTagResourcesResponse creates a response to parse from ListTagResources response
+func CreateListTagResourcesResponse() (response *ListTagResourcesResponse) {
+	response = &ListTagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/migrate_jst_drds_db_across_region.go

@@ -0,0 +1,107 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// MigrateJstDrdsDbAcrossRegion invokes the drds.MigrateJstDrdsDbAcrossRegion API synchronously
+// api document: https://help.aliyun.com/api/drds/migratejstdrdsdbacrossregion.html
+func (client *Client) MigrateJstDrdsDbAcrossRegion(request *MigrateJstDrdsDbAcrossRegionRequest) (response *MigrateJstDrdsDbAcrossRegionResponse, err error) {
+	response = CreateMigrateJstDrdsDbAcrossRegionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MigrateJstDrdsDbAcrossRegionWithChan invokes the drds.MigrateJstDrdsDbAcrossRegion API asynchronously
+// api document: https://help.aliyun.com/api/drds/migratejstdrdsdbacrossregion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MigrateJstDrdsDbAcrossRegionWithChan(request *MigrateJstDrdsDbAcrossRegionRequest) (<-chan *MigrateJstDrdsDbAcrossRegionResponse, <-chan error) {
+	responseChan := make(chan *MigrateJstDrdsDbAcrossRegionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MigrateJstDrdsDbAcrossRegion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MigrateJstDrdsDbAcrossRegionWithCallback invokes the drds.MigrateJstDrdsDbAcrossRegion API asynchronously
+// api document: https://help.aliyun.com/api/drds/migratejstdrdsdbacrossregion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MigrateJstDrdsDbAcrossRegionWithCallback(request *MigrateJstDrdsDbAcrossRegionRequest, callback func(response *MigrateJstDrdsDbAcrossRegionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MigrateJstDrdsDbAcrossRegionResponse
+		var err error
+		defer close(result)
+		response, err = client.MigrateJstDrdsDbAcrossRegion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MigrateJstDrdsDbAcrossRegionRequest is the request struct for api MigrateJstDrdsDbAcrossRegion
+type MigrateJstDrdsDbAcrossRegionRequest struct {
+	*requests.RpcRequest
+	DbName            string `position:"Query" name:"DbName"`
+	SrcDrdsInstanceId string `position:"Query" name:"SrcDrdsInstanceId"`
+	DstDrdsInstanceId string `position:"Query" name:"DstDrdsInstanceId"`
+}
+
+// MigrateJstDrdsDbAcrossRegionResponse is the response struct for api MigrateJstDrdsDbAcrossRegion
+type MigrateJstDrdsDbAcrossRegionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	TaskId    int64  `json:"TaskId" xml:"TaskId"`
+}
+
+// CreateMigrateJstDrdsDbAcrossRegionRequest creates a request to invoke MigrateJstDrdsDbAcrossRegion API
+func CreateMigrateJstDrdsDbAcrossRegionRequest() (request *MigrateJstDrdsDbAcrossRegionRequest) {
+	request = &MigrateJstDrdsDbAcrossRegionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "MigrateJstDrdsDbAcrossRegion", "drds", "openAPI")
+	return
+}
+
+// CreateMigrateJstDrdsDbAcrossRegionResponse creates a response to parse from MigrateJstDrdsDbAcrossRegion response
+func CreateMigrateJstDrdsDbAcrossRegionResponse() (response *MigrateJstDrdsDbAcrossRegionResponse) {
+	response = &MigrateJstDrdsDbAcrossRegionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/modify_account_description.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyAccountDescription invokes the drds.ModifyAccountDescription API synchronously
+// api document: https://help.aliyun.com/api/drds/modifyaccountdescription.html
+func (client *Client) ModifyAccountDescription(request *ModifyAccountDescriptionRequest) (response *ModifyAccountDescriptionResponse, err error) {
+	response = CreateModifyAccountDescriptionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyAccountDescriptionWithChan invokes the drds.ModifyAccountDescription API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyaccountdescription.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAccountDescriptionWithChan(request *ModifyAccountDescriptionRequest) (<-chan *ModifyAccountDescriptionResponse, <-chan error) {
+	responseChan := make(chan *ModifyAccountDescriptionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyAccountDescription(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyAccountDescriptionWithCallback invokes the drds.ModifyAccountDescription API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyaccountdescription.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAccountDescriptionWithCallback(request *ModifyAccountDescriptionRequest, callback func(response *ModifyAccountDescriptionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyAccountDescriptionResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyAccountDescription(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyAccountDescriptionRequest is the request struct for api ModifyAccountDescription
+type ModifyAccountDescriptionRequest struct {
+	*requests.RpcRequest
+	AccountName    string `position:"Query" name:"AccountName"`
+	Description    string `position:"Query" name:"Description"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ModifyAccountDescriptionResponse is the response struct for api ModifyAccountDescription
+type ModifyAccountDescriptionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyAccountDescriptionRequest creates a request to invoke ModifyAccountDescription API
+func CreateModifyAccountDescriptionRequest() (request *ModifyAccountDescriptionRequest) {
+	request = &ModifyAccountDescriptionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ModifyAccountDescription", "drds", "openAPI")
+	return
+}
+
+// CreateModifyAccountDescriptionResponse creates a response to parse from ModifyAccountDescription response
+func CreateModifyAccountDescriptionResponse() (response *ModifyAccountDescriptionResponse) {
+	response = &ModifyAccountDescriptionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/drds/modify_account_privilege.go

@@ -0,0 +1,112 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyAccountPrivilege invokes the drds.ModifyAccountPrivilege API synchronously
+// api document: https://help.aliyun.com/api/drds/modifyaccountprivilege.html
+func (client *Client) ModifyAccountPrivilege(request *ModifyAccountPrivilegeRequest) (response *ModifyAccountPrivilegeResponse, err error) {
+	response = CreateModifyAccountPrivilegeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyAccountPrivilegeWithChan invokes the drds.ModifyAccountPrivilege API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyaccountprivilege.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAccountPrivilegeWithChan(request *ModifyAccountPrivilegeRequest) (<-chan *ModifyAccountPrivilegeResponse, <-chan error) {
+	responseChan := make(chan *ModifyAccountPrivilegeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyAccountPrivilege(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyAccountPrivilegeWithCallback invokes the drds.ModifyAccountPrivilege API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyaccountprivilege.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAccountPrivilegeWithCallback(request *ModifyAccountPrivilegeRequest, callback func(response *ModifyAccountPrivilegeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyAccountPrivilegeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyAccountPrivilege(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyAccountPrivilegeRequest is the request struct for api ModifyAccountPrivilege
+type ModifyAccountPrivilegeRequest struct {
+	*requests.RpcRequest
+	AccountName    string                               `position:"Query" name:"AccountName"`
+	DrdsInstanceId string                               `position:"Query" name:"DrdsInstanceId"`
+	DbPrivilege    *[]ModifyAccountPrivilegeDbPrivilege `position:"Query" name:"DbPrivilege"  type:"Repeated"`
+}
+
+// ModifyAccountPrivilegeDbPrivilege is a repeated param struct in ModifyAccountPrivilegeRequest
+type ModifyAccountPrivilegeDbPrivilege struct {
+	DbName    string `name:"DbName"`
+	Privilege string `name:"Privilege"`
+}
+
+// ModifyAccountPrivilegeResponse is the response struct for api ModifyAccountPrivilege
+type ModifyAccountPrivilegeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyAccountPrivilegeRequest creates a request to invoke ModifyAccountPrivilege API
+func CreateModifyAccountPrivilegeRequest() (request *ModifyAccountPrivilegeRequest) {
+	request = &ModifyAccountPrivilegeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ModifyAccountPrivilege", "drds", "openAPI")
+	return
+}
+
+// CreateModifyAccountPrivilegeResponse creates a response to parse from ModifyAccountPrivilege response
+func CreateModifyAccountPrivilegeResponse() (response *ModifyAccountPrivilegeResponse) {
+	response = &ModifyAccountPrivilegeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/modify_polar_db_read_weight.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyPolarDbReadWeight invokes the drds.ModifyPolarDbReadWeight API synchronously
+// api document: https://help.aliyun.com/api/drds/modifypolardbreadweight.html
+func (client *Client) ModifyPolarDbReadWeight(request *ModifyPolarDbReadWeightRequest) (response *ModifyPolarDbReadWeightResponse, err error) {
+	response = CreateModifyPolarDbReadWeightResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyPolarDbReadWeightWithChan invokes the drds.ModifyPolarDbReadWeight API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifypolardbreadweight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyPolarDbReadWeightWithChan(request *ModifyPolarDbReadWeightRequest) (<-chan *ModifyPolarDbReadWeightResponse, <-chan error) {
+	responseChan := make(chan *ModifyPolarDbReadWeightResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyPolarDbReadWeight(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyPolarDbReadWeightWithCallback invokes the drds.ModifyPolarDbReadWeight API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifypolardbreadweight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyPolarDbReadWeightWithCallback(request *ModifyPolarDbReadWeightRequest, callback func(response *ModifyPolarDbReadWeightResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyPolarDbReadWeightResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyPolarDbReadWeight(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyPolarDbReadWeightRequest is the request struct for api ModifyPolarDbReadWeight
+type ModifyPolarDbReadWeightRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DbInstanceId   string `position:"Query" name:"DbInstanceId"`
+	Weights        string `position:"Query" name:"Weights"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbNodeIds      string `position:"Query" name:"DbNodeIds"`
+}
+
+// ModifyPolarDbReadWeightResponse is the response struct for api ModifyPolarDbReadWeight
+type ModifyPolarDbReadWeightResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyPolarDbReadWeightRequest creates a request to invoke ModifyPolarDbReadWeight API
+func CreateModifyPolarDbReadWeightRequest() (request *ModifyPolarDbReadWeightRequest) {
+	request = &ModifyPolarDbReadWeightRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ModifyPolarDbReadWeight", "drds", "openAPI")
+	return
+}
+
+// CreateModifyPolarDbReadWeightResponse creates a response to parse from ModifyPolarDbReadWeight response
+func CreateModifyPolarDbReadWeightResponse() (response *ModifyPolarDbReadWeightResponse) {
+	response = &ModifyPolarDbReadWeightResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/pre_check_create_hi_store_instance.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// PreCheckCreateHiStoreInstance invokes the drds.PreCheckCreateHiStoreInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/precheckcreatehistoreinstance.html
+func (client *Client) PreCheckCreateHiStoreInstance(request *PreCheckCreateHiStoreInstanceRequest) (response *PreCheckCreateHiStoreInstanceResponse, err error) {
+	response = CreatePreCheckCreateHiStoreInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PreCheckCreateHiStoreInstanceWithChan invokes the drds.PreCheckCreateHiStoreInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/precheckcreatehistoreinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PreCheckCreateHiStoreInstanceWithChan(request *PreCheckCreateHiStoreInstanceRequest) (<-chan *PreCheckCreateHiStoreInstanceResponse, <-chan error) {
+	responseChan := make(chan *PreCheckCreateHiStoreInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PreCheckCreateHiStoreInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PreCheckCreateHiStoreInstanceWithCallback invokes the drds.PreCheckCreateHiStoreInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/precheckcreatehistoreinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PreCheckCreateHiStoreInstanceWithCallback(request *PreCheckCreateHiStoreInstanceRequest, callback func(response *PreCheckCreateHiStoreInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PreCheckCreateHiStoreInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.PreCheckCreateHiStoreInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PreCheckCreateHiStoreInstanceRequest is the request struct for api PreCheckCreateHiStoreInstance
+type PreCheckCreateHiStoreInstanceRequest struct {
+	*requests.RpcRequest
+	DrdsPassword   string `position:"Query" name:"DrdsPassword"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// PreCheckCreateHiStoreInstanceResponse is the response struct for api PreCheckCreateHiStoreInstance
+type PreCheckCreateHiStoreInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Data      int64  `json:"Data" xml:"Data"`
+}
+
+// CreatePreCheckCreateHiStoreInstanceRequest creates a request to invoke PreCheckCreateHiStoreInstance API
+func CreatePreCheckCreateHiStoreInstanceRequest() (request *PreCheckCreateHiStoreInstanceRequest) {
+	request = &PreCheckCreateHiStoreInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "PreCheckCreateHiStoreInstance", "drds", "openAPI")
+	return
+}
+
+// CreatePreCheckCreateHiStoreInstanceResponse creates a response to parse from PreCheckCreateHiStoreInstance response
+func CreatePreCheckCreateHiStoreInstanceResponse() (response *PreCheckCreateHiStoreInstanceResponse) {
+	response = &PreCheckCreateHiStoreInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/pre_check_sql_flashback_task.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// PreCheckSqlFlashbackTask invokes the drds.PreCheckSqlFlashbackTask API synchronously
+// api document: https://help.aliyun.com/api/drds/prechecksqlflashbacktask.html
+func (client *Client) PreCheckSqlFlashbackTask(request *PreCheckSqlFlashbackTaskRequest) (response *PreCheckSqlFlashbackTaskResponse, err error) {
+	response = CreatePreCheckSqlFlashbackTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PreCheckSqlFlashbackTaskWithChan invokes the drds.PreCheckSqlFlashbackTask API asynchronously
+// api document: https://help.aliyun.com/api/drds/prechecksqlflashbacktask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PreCheckSqlFlashbackTaskWithChan(request *PreCheckSqlFlashbackTaskRequest) (<-chan *PreCheckSqlFlashbackTaskResponse, <-chan error) {
+	responseChan := make(chan *PreCheckSqlFlashbackTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PreCheckSqlFlashbackTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PreCheckSqlFlashbackTaskWithCallback invokes the drds.PreCheckSqlFlashbackTask API asynchronously
+// api document: https://help.aliyun.com/api/drds/prechecksqlflashbacktask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PreCheckSqlFlashbackTaskWithCallback(request *PreCheckSqlFlashbackTaskRequest, callback func(response *PreCheckSqlFlashbackTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PreCheckSqlFlashbackTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.PreCheckSqlFlashbackTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PreCheckSqlFlashbackTaskRequest is the request struct for api PreCheckSqlFlashbackTask
+type PreCheckSqlFlashbackTaskRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	EndTime        string `position:"Query" name:"EndTime"`
+	StartTime      string `position:"Query" name:"StartTime"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// PreCheckSqlFlashbackTaskResponse is the response struct for api PreCheckSqlFlashbackTask
+type PreCheckSqlFlashbackTaskResponse struct {
+	*responses.BaseResponse
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	Success     bool        `json:"Success" xml:"Success"`
+	CheckResult CheckResult `json:"CheckResult" xml:"CheckResult"`
+}
+
+// CreatePreCheckSqlFlashbackTaskRequest creates a request to invoke PreCheckSqlFlashbackTask API
+func CreatePreCheckSqlFlashbackTaskRequest() (request *PreCheckSqlFlashbackTaskRequest) {
+	request = &PreCheckSqlFlashbackTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "PreCheckSqlFlashbackTask", "drds", "openAPI")
+	return
+}
+
+// CreatePreCheckSqlFlashbackTaskResponse creates a response to parse from PreCheckSqlFlashbackTask response
+func CreatePreCheckSqlFlashbackTaskResponse() (response *PreCheckSqlFlashbackTaskResponse) {
+	response = &PreCheckSqlFlashbackTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/drds/put_restore_pre_check.go

@@ -0,0 +1,110 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// PutRestorePreCheck invokes the drds.PutRestorePreCheck API synchronously
+// api document: https://help.aliyun.com/api/drds/putrestoreprecheck.html
+func (client *Client) PutRestorePreCheck(request *PutRestorePreCheckRequest) (response *PutRestorePreCheckResponse, err error) {
+	response = CreatePutRestorePreCheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PutRestorePreCheckWithChan invokes the drds.PutRestorePreCheck API asynchronously
+// api document: https://help.aliyun.com/api/drds/putrestoreprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PutRestorePreCheckWithChan(request *PutRestorePreCheckRequest) (<-chan *PutRestorePreCheckResponse, <-chan error) {
+	responseChan := make(chan *PutRestorePreCheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PutRestorePreCheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PutRestorePreCheckWithCallback invokes the drds.PutRestorePreCheck API asynchronously
+// api document: https://help.aliyun.com/api/drds/putrestoreprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PutRestorePreCheckWithCallback(request *PutRestorePreCheckRequest, callback func(response *PutRestorePreCheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PutRestorePreCheckResponse
+		var err error
+		defer close(result)
+		response, err = client.PutRestorePreCheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PutRestorePreCheckRequest is the request struct for api PutRestorePreCheck
+type PutRestorePreCheckRequest struct {
+	*requests.RpcRequest
+	PreferredBackupTime string `position:"Query" name:"PreferredBackupTime"`
+	BackupDbNames       string `position:"Query" name:"BackupDbNames"`
+	BackupId            string `position:"Query" name:"BackupId"`
+	BackupMode          string `position:"Query" name:"BackupMode"`
+	BackupLevel         string `position:"Query" name:"BackupLevel"`
+	DrdsInstanceId      string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// PutRestorePreCheckResponse is the response struct for api PutRestorePreCheck
+type PutRestorePreCheckResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	Success              bool                 `json:"Success" xml:"Success"`
+	PrecheckBackupResult PrecheckBackupResult `json:"PrecheckBackupResult" xml:"PrecheckBackupResult"`
+}
+
+// CreatePutRestorePreCheckRequest creates a request to invoke PutRestorePreCheck API
+func CreatePutRestorePreCheckRequest() (request *PutRestorePreCheckRequest) {
+	request = &PutRestorePreCheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "PutRestorePreCheck", "drds", "openAPI")
+	return
+}
+
+// CreatePutRestorePreCheckResponse creates a response to parse from PutRestorePreCheck response
+func CreatePutRestorePreCheckResponse() (response *PutRestorePreCheckResponse) {
+	response = &PutRestorePreCheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/put_start_backup.go

@@ -0,0 +1,108 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// PutStartBackup invokes the drds.PutStartBackup API synchronously
+// api document: https://help.aliyun.com/api/drds/putstartbackup.html
+func (client *Client) PutStartBackup(request *PutStartBackupRequest) (response *PutStartBackupResponse, err error) {
+	response = CreatePutStartBackupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PutStartBackupWithChan invokes the drds.PutStartBackup API asynchronously
+// api document: https://help.aliyun.com/api/drds/putstartbackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PutStartBackupWithChan(request *PutStartBackupRequest) (<-chan *PutStartBackupResponse, <-chan error) {
+	responseChan := make(chan *PutStartBackupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PutStartBackup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PutStartBackupWithCallback invokes the drds.PutStartBackup API asynchronously
+// api document: https://help.aliyun.com/api/drds/putstartbackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PutStartBackupWithCallback(request *PutStartBackupRequest, callback func(response *PutStartBackupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PutStartBackupResponse
+		var err error
+		defer close(result)
+		response, err = client.PutStartBackup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PutStartBackupRequest is the request struct for api PutStartBackup
+type PutStartBackupRequest struct {
+	*requests.RpcRequest
+	BackupDbNames  string `position:"Query" name:"BackupDbNames"`
+	BackupMode     string `position:"Query" name:"BackupMode"`
+	BackupLevel    string `position:"Query" name:"BackupLevel"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// PutStartBackupResponse is the response struct for api PutStartBackup
+type PutStartBackupResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Result    string `json:"Result" xml:"Result"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreatePutStartBackupRequest creates a request to invoke PutStartBackup API
+func CreatePutStartBackupRequest() (request *PutStartBackupRequest) {
+	request = &PutStartBackupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "PutStartBackup", "drds", "openAPI")
+	return
+}
+
+// CreatePutStartBackupResponse creates a response to parse from PutStartBackup response
+func CreatePutStartBackupResponse() (response *PutStartBackupResponse) {
+	response = &PutStartBackupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/drds/rearrange_db_to_instance.go

@@ -0,0 +1,110 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// RearrangeDbToInstance invokes the drds.RearrangeDbToInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/rearrangedbtoinstance.html
+func (client *Client) RearrangeDbToInstance(request *RearrangeDbToInstanceRequest) (response *RearrangeDbToInstanceResponse, err error) {
+	response = CreateRearrangeDbToInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RearrangeDbToInstanceWithChan invokes the drds.RearrangeDbToInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/rearrangedbtoinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RearrangeDbToInstanceWithChan(request *RearrangeDbToInstanceRequest) (<-chan *RearrangeDbToInstanceResponse, <-chan error) {
+	responseChan := make(chan *RearrangeDbToInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RearrangeDbToInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RearrangeDbToInstanceWithCallback invokes the drds.RearrangeDbToInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/rearrangedbtoinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RearrangeDbToInstanceWithCallback(request *RearrangeDbToInstanceRequest, callback func(response *RearrangeDbToInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RearrangeDbToInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.RearrangeDbToInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RearrangeDbToInstanceRequest is the request struct for api RearrangeDbToInstance
+type RearrangeDbToInstanceRequest struct {
+	*requests.RpcRequest
+	ChooseSubDb    string    `position:"Query" name:"ChooseSubDb"`
+	InstanceList   *[]string `position:"Query" name:"InstanceList"  type:"Repeated"`
+	DbName         string    `position:"Query" name:"DbName"`
+	OrderId        string    `position:"Query" name:"OrderId"`
+	ChooseRds      string    `position:"Query" name:"ChooseRds"`
+	DrdsInstanceId string    `position:"Query" name:"DrdsInstanceId"`
+}
+
+// RearrangeDbToInstanceResponse is the response struct for api RearrangeDbToInstance
+type RearrangeDbToInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string                      `json:"RequestId" xml:"RequestId"`
+	Success   bool                        `json:"Success" xml:"Success"`
+	Data      DataInRearrangeDbToInstance `json:"Data" xml:"Data"`
+}
+
+// CreateRearrangeDbToInstanceRequest creates a request to invoke RearrangeDbToInstance API
+func CreateRearrangeDbToInstanceRequest() (request *RearrangeDbToInstanceRequest) {
+	request = &RearrangeDbToInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "RearrangeDbToInstance", "drds", "openAPI")
+	return
+}
+
+// CreateRearrangeDbToInstanceResponse creates a response to parse from RearrangeDbToInstance response
+func CreateRearrangeDbToInstanceResponse() (response *RearrangeDbToInstanceResponse) {
+	response = &RearrangeDbToInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/refresh_drds_atom_url.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// RefreshDrdsAtomUrl invokes the drds.RefreshDrdsAtomUrl API synchronously
+// api document: https://help.aliyun.com/api/drds/refreshdrdsatomurl.html
+func (client *Client) RefreshDrdsAtomUrl(request *RefreshDrdsAtomUrlRequest) (response *RefreshDrdsAtomUrlResponse, err error) {
+	response = CreateRefreshDrdsAtomUrlResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RefreshDrdsAtomUrlWithChan invokes the drds.RefreshDrdsAtomUrl API asynchronously
+// api document: https://help.aliyun.com/api/drds/refreshdrdsatomurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RefreshDrdsAtomUrlWithChan(request *RefreshDrdsAtomUrlRequest) (<-chan *RefreshDrdsAtomUrlResponse, <-chan error) {
+	responseChan := make(chan *RefreshDrdsAtomUrlResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RefreshDrdsAtomUrl(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RefreshDrdsAtomUrlWithCallback invokes the drds.RefreshDrdsAtomUrl API asynchronously
+// api document: https://help.aliyun.com/api/drds/refreshdrdsatomurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RefreshDrdsAtomUrlWithCallback(request *RefreshDrdsAtomUrlRequest, callback func(response *RefreshDrdsAtomUrlResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RefreshDrdsAtomUrlResponse
+		var err error
+		defer close(result)
+		response, err = client.RefreshDrdsAtomUrl(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RefreshDrdsAtomUrlRequest is the request struct for api RefreshDrdsAtomUrl
+type RefreshDrdsAtomUrlRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// RefreshDrdsAtomUrlResponse is the response struct for api RefreshDrdsAtomUrl
+type RefreshDrdsAtomUrlResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateRefreshDrdsAtomUrlRequest creates a request to invoke RefreshDrdsAtomUrl API
+func CreateRefreshDrdsAtomUrlRequest() (request *RefreshDrdsAtomUrlRequest) {
+	request = &RefreshDrdsAtomUrlRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "RefreshDrdsAtomUrl", "drds", "openAPI")
+	return
+}
+
+// CreateRefreshDrdsAtomUrlResponse creates a response to parse from RefreshDrdsAtomUrl response
+func CreateRefreshDrdsAtomUrlResponse() (response *RefreshDrdsAtomUrlResponse) {
+	response = &RefreshDrdsAtomUrlResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/refresh_jst_migrate_drds_db_atom_url.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// RefreshJstMigrateDrdsDbAtomUrl invokes the drds.RefreshJstMigrateDrdsDbAtomUrl API synchronously
+// api document: https://help.aliyun.com/api/drds/refreshjstmigratedrdsdbatomurl.html
+func (client *Client) RefreshJstMigrateDrdsDbAtomUrl(request *RefreshJstMigrateDrdsDbAtomUrlRequest) (response *RefreshJstMigrateDrdsDbAtomUrlResponse, err error) {
+	response = CreateRefreshJstMigrateDrdsDbAtomUrlResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RefreshJstMigrateDrdsDbAtomUrlWithChan invokes the drds.RefreshJstMigrateDrdsDbAtomUrl API asynchronously
+// api document: https://help.aliyun.com/api/drds/refreshjstmigratedrdsdbatomurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RefreshJstMigrateDrdsDbAtomUrlWithChan(request *RefreshJstMigrateDrdsDbAtomUrlRequest) (<-chan *RefreshJstMigrateDrdsDbAtomUrlResponse, <-chan error) {
+	responseChan := make(chan *RefreshJstMigrateDrdsDbAtomUrlResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RefreshJstMigrateDrdsDbAtomUrl(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RefreshJstMigrateDrdsDbAtomUrlWithCallback invokes the drds.RefreshJstMigrateDrdsDbAtomUrl API asynchronously
+// api document: https://help.aliyun.com/api/drds/refreshjstmigratedrdsdbatomurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RefreshJstMigrateDrdsDbAtomUrlWithCallback(request *RefreshJstMigrateDrdsDbAtomUrlRequest, callback func(response *RefreshJstMigrateDrdsDbAtomUrlResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RefreshJstMigrateDrdsDbAtomUrlResponse
+		var err error
+		defer close(result)
+		response, err = client.RefreshJstMigrateDrdsDbAtomUrl(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RefreshJstMigrateDrdsDbAtomUrlRequest is the request struct for api RefreshJstMigrateDrdsDbAtomUrl
+type RefreshJstMigrateDrdsDbAtomUrlRequest struct {
+	*requests.RpcRequest
+	DbName         string `position:"Query" name:"DbName"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// RefreshJstMigrateDrdsDbAtomUrlResponse is the response struct for api RefreshJstMigrateDrdsDbAtomUrl
+type RefreshJstMigrateDrdsDbAtomUrlResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateRefreshJstMigrateDrdsDbAtomUrlRequest creates a request to invoke RefreshJstMigrateDrdsDbAtomUrl API
+func CreateRefreshJstMigrateDrdsDbAtomUrlRequest() (request *RefreshJstMigrateDrdsDbAtomUrlRequest) {
+	request = &RefreshJstMigrateDrdsDbAtomUrlRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "RefreshJstMigrateDrdsDbAtomUrl", "drds", "openAPI")
+	return
+}
+
+// CreateRefreshJstMigrateDrdsDbAtomUrlResponse creates a response to parse from RefreshJstMigrateDrdsDbAtomUrl response
+func CreateRefreshJstMigrateDrdsDbAtomUrlResponse() (response *RefreshJstMigrateDrdsDbAtomUrlResponse) {
+	response = &RefreshJstMigrateDrdsDbAtomUrlResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/release_hi_store_instance.go

@@ -0,0 +1,106 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ReleaseHiStoreInstance invokes the drds.ReleaseHiStoreInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/releasehistoreinstance.html
+func (client *Client) ReleaseHiStoreInstance(request *ReleaseHiStoreInstanceRequest) (response *ReleaseHiStoreInstanceResponse, err error) {
+	response = CreateReleaseHiStoreInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ReleaseHiStoreInstanceWithChan invokes the drds.ReleaseHiStoreInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/releasehistoreinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReleaseHiStoreInstanceWithChan(request *ReleaseHiStoreInstanceRequest) (<-chan *ReleaseHiStoreInstanceResponse, <-chan error) {
+	responseChan := make(chan *ReleaseHiStoreInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ReleaseHiStoreInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ReleaseHiStoreInstanceWithCallback invokes the drds.ReleaseHiStoreInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/releasehistoreinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReleaseHiStoreInstanceWithCallback(request *ReleaseHiStoreInstanceRequest, callback func(response *ReleaseHiStoreInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ReleaseHiStoreInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.ReleaseHiStoreInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ReleaseHiStoreInstanceRequest is the request struct for api ReleaseHiStoreInstance
+type ReleaseHiStoreInstanceRequest struct {
+	*requests.RpcRequest
+	HistoreInstanceId string `position:"Query" name:"HistoreInstanceId"`
+	DrdsPassword      string `position:"Query" name:"DrdsPassword"`
+	DrdsInstanceId    string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ReleaseHiStoreInstanceResponse is the response struct for api ReleaseHiStoreInstance
+type ReleaseHiStoreInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Data      int64  `json:"Data" xml:"Data"`
+}
+
+// CreateReleaseHiStoreInstanceRequest creates a request to invoke ReleaseHiStoreInstance API
+func CreateReleaseHiStoreInstanceRequest() (request *ReleaseHiStoreInstanceRequest) {
+	request = &ReleaseHiStoreInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ReleaseHiStoreInstance", "drds", "openAPI")
+	return
+}
+
+// CreateReleaseHiStoreInstanceResponse creates a response to parse from ReleaseHiStoreInstance response
+func CreateReleaseHiStoreInstanceResponse() (response *ReleaseHiStoreInstanceResponse) {
+	response = &ReleaseHiStoreInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/release_instance_internet_address.go

@@ -0,0 +1,105 @@
+package drds
+
+//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.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ReleaseInstanceInternetAddress invokes the drds.ReleaseInstanceInternetAddress API synchronously
+// api document: https://help.aliyun.com/api/drds/releaseinstanceinternetaddress.html
+func (client *Client) ReleaseInstanceInternetAddress(request *ReleaseInstanceInternetAddressRequest) (response *ReleaseInstanceInternetAddressResponse, err error) {
+	response = CreateReleaseInstanceInternetAddressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ReleaseInstanceInternetAddressWithChan invokes the drds.ReleaseInstanceInternetAddress API asynchronously
+// api document: https://help.aliyun.com/api/drds/releaseinstanceinternetaddress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReleaseInstanceInternetAddressWithChan(request *ReleaseInstanceInternetAddressRequest) (<-chan *ReleaseInstanceInternetAddressResponse, <-chan error) {
+	responseChan := make(chan *ReleaseInstanceInternetAddressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ReleaseInstanceInternetAddress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ReleaseInstanceInternetAddressWithCallback invokes the drds.ReleaseInstanceInternetAddress API asynchronously
+// api document: https://help.aliyun.com/api/drds/releaseinstanceinternetaddress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReleaseInstanceInternetAddressWithCallback(request *ReleaseInstanceInternetAddressRequest, callback func(response *ReleaseInstanceInternetAddressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ReleaseInstanceInternetAddressResponse
+		var err error
+		defer close(result)
+		response, err = client.ReleaseInstanceInternetAddress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ReleaseInstanceInternetAddressRequest is the request struct for api ReleaseInstanceInternetAddress
+type ReleaseInstanceInternetAddressRequest struct {
+	*requests.RpcRequest
+	DrdsPassword   string `position:"Query" name:"DrdsPassword"`
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// ReleaseInstanceInternetAddressResponse is the response struct for api ReleaseInstanceInternetAddress
+type ReleaseInstanceInternetAddressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Data      bool   `json:"Data" xml:"Data"`
+}
+
+// CreateReleaseInstanceInternetAddressRequest creates a request to invoke ReleaseInstanceInternetAddress API
+func CreateReleaseInstanceInternetAddressRequest() (request *ReleaseInstanceInternetAddressRequest) {
+	request = &ReleaseInstanceInternetAddressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2019-01-23", "ReleaseInstanceInternetAddress", "drds", "openAPI")
+	return
+}
+
+// CreateReleaseInstanceInternetAddressResponse creates a response to parse from ReleaseInstanceInternetAddress response
+func CreateReleaseInstanceInternetAddressResponse() (response *ReleaseInstanceInternetAddressResponse) {
+	response = &ReleaseInstanceInternetAddressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff