Explorar el Código

由点萤发起的DRDS SDK自动发布, 版本号:1.11.1

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao hace 7 años
padre
commit
949e3f4669
Se han modificado 55 ficheros con 3494 adiciones y 0 borrados
  1. 4 0
      ChangeLog.txt
  2. 81 0
      services/drds/client.go
  3. 108 0
      services/drds/create_drds_db.go
  4. 114 0
      services/drds/create_drds_instance.go
  5. 107 0
      services/drds/create_read_only_account.go
  6. 105 0
      services/drds/delete_drds_db.go
  7. 105 0
      services/drds/delete_failed_drds_db.go
  8. 105 0
      services/drds/describe_create_drds_instance_status.go
  9. 105 0
      services/drds/describe_drds_d_bs.go
  10. 106 0
      services/drds/describe_drds_db.go
  11. 107 0
      services/drds/describe_drds_db_ip_white_list.go
  12. 105 0
      services/drds/describe_drds_instance.go
  13. 107 0
      services/drds/describe_drds_instance_net_info_for_inner.go
  14. 105 0
      services/drds/describe_drds_instances.go
  15. 106 0
      services/drds/describe_rds_list.go
  16. 106 0
      services/drds/describe_read_only_account.go
  17. 104 0
      services/drds/describe_regions.go
  18. 106 0
      services/drds/describe_shard_d_bs.go
  19. 107 0
      services/drds/describe_shard_db_connection_info.go
  20. 106 0
      services/drds/modify_drds_db_passwd.go
  21. 105 0
      services/drds/modify_drds_instance_description.go
  22. 109 0
      services/drds/modify_drds_ip_white_list.go
  23. 107 0
      services/drds/modify_full_table_scan.go
  24. 107 0
      services/drds/modify_rds_read_weight.go
  25. 108 0
      services/drds/modify_read_only_account_password.go
  26. 107 0
      services/drds/query_instance_info_by_conn.go
  27. 104 0
      services/drds/remove_drds_instance.go
  28. 106 0
      services/drds/remove_read_only_account.go
  29. 27 0
      services/drds/struct_child.go
  30. 32 0
      services/drds/struct_connection_info.go
  31. 39 0
      services/drds/struct_data.go
  32. 21 0
      services/drds/struct_data_in_describe_drds_d_bs.go
  33. 25 0
      services/drds/struct_data_in_describe_drds_db.go
  34. 21 0
      services/drds/struct_data_in_describe_drds_instances.go
  35. 21 0
      services/drds/struct_data_in_describe_rds_list.go
  36. 21 0
      services/drds/struct_data_in_describe_shard_d_bs.go
  37. 25 0
      services/drds/struct_db.go
  38. 22 0
      services/drds/struct_db_intance_pair.go
  39. 21 0
      services/drds/struct_drds_instance_id_list.go
  40. 25 0
      services/drds/struct_drds_region.go
  41. 21 0
      services/drds/struct_drds_regions.go
  42. 31 0
      services/drds/struct_instance.go
  43. 23 0
      services/drds/struct_instance_series.go
  44. 21 0
      services/drds/struct_instance_series_list.go
  45. 21 0
      services/drds/struct_ip_white_list.go
  46. 24 0
      services/drds/struct_net_info.go
  47. 21 0
      services/drds/struct_net_infos.go
  48. 28 0
      services/drds/struct_rds_instance.go
  49. 21 0
      services/drds/struct_read_only_children.go
  50. 22 0
      services/drds/struct_spec.go
  51. 21 0
      services/drds/struct_spec_list.go
  52. 25 0
      services/drds/struct_vip.go
  53. 21 0
      services/drds/struct_vips_in_describe_drds_instance.go
  54. 21 0
      services/drds/struct_vips_in_describe_drds_instances.go
  55. 21 0
      services/drds/struct_vips_in_query_instance_info_by_conn.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-05-03 Version: 1.11.1
+1, Publish DRDS go sdk for the first time.
+2, Support for creation/modification/deletion/description operation for DRDS instances and databases.
+
 2018-05-02 Version: 1.11.0
 2018-05-02 Version: 1.11.0
 1, Add new interface InstallCloudAssistant, support Cloud Assistant client installation.
 1, Add new interface InstallCloudAssistant, support Cloud Assistant client installation.
 2, Add new interface DescribeCloudAssistantStatus, support Cloud Assistant client status detection.
 2, Add new interface DescribeCloudAssistantStatus, support Cloud Assistant client status detection.

+ 81 - 0
services/drds/client.go

@@ -0,0 +1,81 @@
+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"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 108 - 0
services/drds/create_drds_db.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"
+)
+
+// CreateDrdsDB invokes the drds.CreateDrdsDB API synchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdb.html
+func (client *Client) CreateDrdsDB(request *CreateDrdsDBRequest) (response *CreateDrdsDBResponse, err error) {
+	response = CreateCreateDrdsDBResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateDrdsDBWithChan invokes the drds.CreateDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsDBWithChan(request *CreateDrdsDBRequest) (<-chan *CreateDrdsDBResponse, <-chan error) {
+	responseChan := make(chan *CreateDrdsDBResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDrdsDB(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDrdsDBWithCallback invokes the drds.CreateDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsDBWithCallback(request *CreateDrdsDBRequest, callback func(response *CreateDrdsDBResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDrdsDBResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDrdsDB(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDrdsDBRequest is the request struct for api CreateDrdsDB
+type CreateDrdsDBRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	Encode         string `position:"Query" name:"Encode"`
+	Password       string `position:"Query" name:"Password"`
+	RdsInstances   string `position:"Query" name:"RdsInstances"`
+}
+
+// CreateDrdsDBResponse is the response struct for api CreateDrdsDB
+type CreateDrdsDBResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateCreateDrdsDBRequest creates a request to invoke CreateDrdsDB API
+func CreateCreateDrdsDBRequest() (request *CreateDrdsDBRequest) {
+	request = &CreateDrdsDBRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "CreateDrdsDB", "", "")
+	return
+}
+
+// CreateCreateDrdsDBResponse creates a response to parse from CreateDrdsDB response
+func CreateCreateDrdsDBResponse() (response *CreateDrdsDBResponse) {
+	response = &CreateDrdsDBResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/drds/create_drds_instance.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"
+)
+
+// CreateDrdsInstance invokes the drds.CreateDrdsInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsinstance.html
+func (client *Client) CreateDrdsInstance(request *CreateDrdsInstanceRequest) (response *CreateDrdsInstanceResponse, err error) {
+	response = CreateCreateDrdsInstanceResponse()
+	err = client.DoAction(request, response)
+	return response, err
+}
+
+// CreateDrdsInstanceWithChan invokes the drds.CreateDrdsInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsInstanceWithChan(request *CreateDrdsInstanceRequest) (<-chan *CreateDrdsInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateDrdsInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDrdsInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDrdsInstanceWithCallback invokes the drds.CreateDrdsInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/createdrdsinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDrdsInstanceWithCallback(request *CreateDrdsInstanceRequest, callback func(response *CreateDrdsInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDrdsInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDrdsInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDrdsInstanceRequest is the request struct for api CreateDrdsInstance
+type CreateDrdsInstanceRequest struct {
+	*requests.RpcRequest
+	Description    string           `position:"Query" name:"Description"`
+	ZoneId         string           `position:"Query" name:"ZoneId"`
+	Type           string           `position:"Query" name:"Type"`
+	Quantity       string		    `position:"Query" name:"Quantity"`
+	InstanceSeries string           `position:"Query" name:"instanceSeries"`
+	Specification  string           `position:"Query" name:"Specification"`
+	PayType        string           `position:"Query" name:"PayType"`
+	VpcId          string           `position:"Query" name:"VpcId"`
+	VswitchId      string           `position:"Query" name:"VswitchId"`
+	IsHa           requests.Boolean `position:"Query" name:"isHa"`
+}
+
+// CreateDrdsInstanceResponse is the response struct for api CreateDrdsInstance
+type CreateDrdsInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateCreateDrdsInstanceRequest creates a request to invoke CreateDrdsInstance API
+func CreateCreateDrdsInstanceRequest() (request *CreateDrdsInstanceRequest) {
+	request = &CreateDrdsInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "CreateDrdsInstance", "", "")
+	return
+}
+
+// CreateCreateDrdsInstanceResponse creates a response to parse from CreateDrdsInstance response
+func CreateCreateDrdsInstanceResponse() (response *CreateDrdsInstanceResponse) {
+	response = &CreateDrdsInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/create_read_only_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"
+)
+
+// CreateReadOnlyAccount invokes the drds.CreateReadOnlyAccount API synchronously
+// api document: https://help.aliyun.com/api/drds/createreadonlyaccount.html
+func (client *Client) CreateReadOnlyAccount(request *CreateReadOnlyAccountRequest) (response *CreateReadOnlyAccountResponse, err error) {
+	response = CreateCreateReadOnlyAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateReadOnlyAccountWithChan invokes the drds.CreateReadOnlyAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/createreadonlyaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateReadOnlyAccountWithChan(request *CreateReadOnlyAccountRequest) (<-chan *CreateReadOnlyAccountResponse, <-chan error) {
+	responseChan := make(chan *CreateReadOnlyAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateReadOnlyAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateReadOnlyAccountWithCallback invokes the drds.CreateReadOnlyAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/createreadonlyaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateReadOnlyAccountWithCallback(request *CreateReadOnlyAccountRequest, callback func(response *CreateReadOnlyAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateReadOnlyAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateReadOnlyAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateReadOnlyAccountRequest is the request struct for api CreateReadOnlyAccount
+type CreateReadOnlyAccountRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	Password       string `position:"Query" name:"password"`
+}
+
+// CreateReadOnlyAccountResponse is the response struct for api CreateReadOnlyAccount
+type CreateReadOnlyAccountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateCreateReadOnlyAccountRequest creates a request to invoke CreateReadOnlyAccount API
+func CreateCreateReadOnlyAccountRequest() (request *CreateReadOnlyAccountRequest) {
+	request = &CreateReadOnlyAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "CreateReadOnlyAccount", "", "")
+	return
+}
+
+// CreateCreateReadOnlyAccountResponse creates a response to parse from CreateReadOnlyAccount response
+func CreateCreateReadOnlyAccountResponse() (response *CreateReadOnlyAccountResponse) {
+	response = &CreateReadOnlyAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/delete_drds_db.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"
+)
+
+// DeleteDrdsDB invokes the drds.DeleteDrdsDB API synchronously
+// api document: https://help.aliyun.com/api/drds/deletedrdsdb.html
+func (client *Client) DeleteDrdsDB(request *DeleteDrdsDBRequest) (response *DeleteDrdsDBResponse, err error) {
+	response = CreateDeleteDrdsDBResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteDrdsDBWithChan invokes the drds.DeleteDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/deletedrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDrdsDBWithChan(request *DeleteDrdsDBRequest) (<-chan *DeleteDrdsDBResponse, <-chan error) {
+	responseChan := make(chan *DeleteDrdsDBResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteDrdsDB(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteDrdsDBWithCallback invokes the drds.DeleteDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/deletedrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDrdsDBWithCallback(request *DeleteDrdsDBRequest, callback func(response *DeleteDrdsDBResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteDrdsDBResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteDrdsDB(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteDrdsDBRequest is the request struct for api DeleteDrdsDB
+type DeleteDrdsDBRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+}
+
+// DeleteDrdsDBResponse is the response struct for api DeleteDrdsDB
+type DeleteDrdsDBResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateDeleteDrdsDBRequest creates a request to invoke DeleteDrdsDB API
+func CreateDeleteDrdsDBRequest() (request *DeleteDrdsDBRequest) {
+	request = &DeleteDrdsDBRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DeleteDrdsDB", "", "")
+	return
+}
+
+// CreateDeleteDrdsDBResponse creates a response to parse from DeleteDrdsDB response
+func CreateDeleteDrdsDBResponse() (response *DeleteDrdsDBResponse) {
+	response = &DeleteDrdsDBResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/delete_failed_drds_db.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"
+)
+
+// DeleteFailedDrdsDB invokes the drds.DeleteFailedDrdsDB API synchronously
+// api document: https://help.aliyun.com/api/drds/deletefaileddrdsdb.html
+func (client *Client) DeleteFailedDrdsDB(request *DeleteFailedDrdsDBRequest) (response *DeleteFailedDrdsDBResponse, err error) {
+	response = CreateDeleteFailedDrdsDBResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteFailedDrdsDBWithChan invokes the drds.DeleteFailedDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/deletefaileddrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFailedDrdsDBWithChan(request *DeleteFailedDrdsDBRequest) (<-chan *DeleteFailedDrdsDBResponse, <-chan error) {
+	responseChan := make(chan *DeleteFailedDrdsDBResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteFailedDrdsDB(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteFailedDrdsDBWithCallback invokes the drds.DeleteFailedDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/deletefaileddrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFailedDrdsDBWithCallback(request *DeleteFailedDrdsDBRequest, callback func(response *DeleteFailedDrdsDBResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteFailedDrdsDBResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteFailedDrdsDB(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteFailedDrdsDBRequest is the request struct for api DeleteFailedDrdsDB
+type DeleteFailedDrdsDBRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+}
+
+// DeleteFailedDrdsDBResponse is the response struct for api DeleteFailedDrdsDB
+type DeleteFailedDrdsDBResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateDeleteFailedDrdsDBRequest creates a request to invoke DeleteFailedDrdsDB API
+func CreateDeleteFailedDrdsDBRequest() (request *DeleteFailedDrdsDBRequest) {
+	request = &DeleteFailedDrdsDBRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DeleteFailedDrdsDB", "", "")
+	return
+}
+
+// CreateDeleteFailedDrdsDBResponse creates a response to parse from DeleteFailedDrdsDB response
+func CreateDeleteFailedDrdsDBResponse() (response *DeleteFailedDrdsDBResponse) {
+	response = &DeleteFailedDrdsDBResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_create_drds_instance_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"
+)
+
+// DescribeCreateDrdsInstanceStatus invokes the drds.DescribeCreateDrdsInstanceStatus API synchronously
+// api document: https://help.aliyun.com/api/drds/describecreatedrdsinstancestatus.html
+func (client *Client) DescribeCreateDrdsInstanceStatus(request *DescribeCreateDrdsInstanceStatusRequest) (response *DescribeCreateDrdsInstanceStatusResponse, err error) {
+	response = CreateDescribeCreateDrdsInstanceStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCreateDrdsInstanceStatusWithChan invokes the drds.DescribeCreateDrdsInstanceStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/describecreatedrdsinstancestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCreateDrdsInstanceStatusWithChan(request *DescribeCreateDrdsInstanceStatusRequest) (<-chan *DescribeCreateDrdsInstanceStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeCreateDrdsInstanceStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCreateDrdsInstanceStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCreateDrdsInstanceStatusWithCallback invokes the drds.DescribeCreateDrdsInstanceStatus API asynchronously
+// api document: https://help.aliyun.com/api/drds/describecreatedrdsinstancestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCreateDrdsInstanceStatusWithCallback(request *DescribeCreateDrdsInstanceStatusRequest, callback func(response *DescribeCreateDrdsInstanceStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCreateDrdsInstanceStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCreateDrdsInstanceStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCreateDrdsInstanceStatusRequest is the request struct for api DescribeCreateDrdsInstanceStatus
+type DescribeCreateDrdsInstanceStatusRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeCreateDrdsInstanceStatusResponse is the response struct for api DescribeCreateDrdsInstanceStatus
+type DescribeCreateDrdsInstanceStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeCreateDrdsInstanceStatusRequest creates a request to invoke DescribeCreateDrdsInstanceStatus API
+func CreateDescribeCreateDrdsInstanceStatusRequest() (request *DescribeCreateDrdsInstanceStatusRequest) {
+	request = &DescribeCreateDrdsInstanceStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeCreateDrdsInstanceStatus", "", "")
+	return
+}
+
+// CreateDescribeCreateDrdsInstanceStatusResponse creates a response to parse from DescribeCreateDrdsInstanceStatus response
+func CreateDescribeCreateDrdsInstanceStatusResponse() (response *DescribeCreateDrdsInstanceStatusResponse) {
+	response = &DescribeCreateDrdsInstanceStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_drds_d_bs.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"
+)
+
+// DescribeDrdsDBs invokes the drds.DescribeDrdsDBs API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbs.html
+func (client *Client) DescribeDrdsDBs(request *DescribeDrdsDBsRequest) (response *DescribeDrdsDBsResponse, err error) {
+	response = CreateDescribeDrdsDBsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDBsWithChan invokes the drds.DescribeDrdsDBs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBsWithChan(request *DescribeDrdsDBsRequest) (<-chan *DescribeDrdsDBsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDBsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDBs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDBsWithCallback invokes the drds.DescribeDrdsDBs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBsWithCallback(request *DescribeDrdsDBsRequest, callback func(response *DescribeDrdsDBsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDBsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDBs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDBsRequest is the request struct for api DescribeDrdsDBs
+type DescribeDrdsDBsRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsDBsResponse is the response struct for api DescribeDrdsDBs
+type DescribeDrdsDBsResponse struct {
+	*responses.BaseResponse
+	RequestId string                `json:"RequestId" xml:"RequestId"`
+	Success   bool                  `json:"Success" xml:"Success"`
+	Data      DataInDescribeDrdsDBs `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsDBsRequest creates a request to invoke DescribeDrdsDBs API
+func CreateDescribeDrdsDBsRequest() (request *DescribeDrdsDBsRequest) {
+	request = &DescribeDrdsDBsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeDrdsDBs", "", "")
+	return
+}
+
+// CreateDescribeDrdsDBsResponse creates a response to parse from DescribeDrdsDBs response
+func CreateDescribeDrdsDBsResponse() (response *DescribeDrdsDBsResponse) {
+	response = &DescribeDrdsDBsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_drds_db.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"
+)
+
+// DescribeDrdsDB invokes the drds.DescribeDrdsDB API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdb.html
+func (client *Client) DescribeDrdsDB(request *DescribeDrdsDBRequest) (response *DescribeDrdsDBResponse, err error) {
+	response = CreateDescribeDrdsDBResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDBWithChan invokes the drds.DescribeDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBWithChan(request *DescribeDrdsDBRequest) (<-chan *DescribeDrdsDBResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDBResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDB(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDBWithCallback invokes the drds.DescribeDrdsDB API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdb.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBWithCallback(request *DescribeDrdsDBRequest, callback func(response *DescribeDrdsDBResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDBResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDB(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDBRequest is the request struct for api DescribeDrdsDB
+type DescribeDrdsDBRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+}
+
+// DescribeDrdsDBResponse is the response struct for api DescribeDrdsDB
+type DescribeDrdsDBResponse struct {
+	*responses.BaseResponse
+	RequestId string               `json:"RequestId" xml:"RequestId"`
+	Success   bool                 `json:"Success" xml:"Success"`
+	Data      DataInDescribeDrdsDB `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsDBRequest creates a request to invoke DescribeDrdsDB API
+func CreateDescribeDrdsDBRequest() (request *DescribeDrdsDBRequest) {
+	request = &DescribeDrdsDBRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeDrdsDB", "", "")
+	return
+}
+
+// CreateDescribeDrdsDBResponse creates a response to parse from DescribeDrdsDB response
+func CreateDescribeDrdsDBResponse() (response *DescribeDrdsDBResponse) {
+	response = &DescribeDrdsDBResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_db_ip_white_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"
+)
+
+// DescribeDrdsDBIpWhiteList invokes the drds.DescribeDrdsDBIpWhiteList API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbipwhitelist.html
+func (client *Client) DescribeDrdsDBIpWhiteList(request *DescribeDrdsDBIpWhiteListRequest) (response *DescribeDrdsDBIpWhiteListResponse, err error) {
+	response = CreateDescribeDrdsDBIpWhiteListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsDBIpWhiteListWithChan invokes the drds.DescribeDrdsDBIpWhiteList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbipwhitelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBIpWhiteListWithChan(request *DescribeDrdsDBIpWhiteListRequest) (<-chan *DescribeDrdsDBIpWhiteListResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsDBIpWhiteListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsDBIpWhiteList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsDBIpWhiteListWithCallback invokes the drds.DescribeDrdsDBIpWhiteList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsdbipwhitelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsDBIpWhiteListWithCallback(request *DescribeDrdsDBIpWhiteListRequest, callback func(response *DescribeDrdsDBIpWhiteListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsDBIpWhiteListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsDBIpWhiteList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsDBIpWhiteListRequest is the request struct for api DescribeDrdsDBIpWhiteList
+type DescribeDrdsDBIpWhiteListRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	GroupName      string `position:"Query" name:"GroupName"`
+}
+
+// DescribeDrdsDBIpWhiteListResponse is the response struct for api DescribeDrdsDBIpWhiteList
+type DescribeDrdsDBIpWhiteListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsDBIpWhiteListRequest creates a request to invoke DescribeDrdsDBIpWhiteList API
+func CreateDescribeDrdsDBIpWhiteListRequest() (request *DescribeDrdsDBIpWhiteListRequest) {
+	request = &DescribeDrdsDBIpWhiteListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeDrdsDBIpWhiteList", "", "")
+	return
+}
+
+// CreateDescribeDrdsDBIpWhiteListResponse creates a response to parse from DescribeDrdsDBIpWhiteList response
+func CreateDescribeDrdsDBIpWhiteListResponse() (response *DescribeDrdsDBIpWhiteListResponse) {
+	response = &DescribeDrdsDBIpWhiteListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_drds_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"
+)
+
+// DescribeDrdsInstance invokes the drds.DescribeDrdsInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstance.html
+func (client *Client) DescribeDrdsInstance(request *DescribeDrdsInstanceRequest) (response *DescribeDrdsInstanceResponse, err error) {
+	response = CreateDescribeDrdsInstanceResponse()
+	err = client.DoAction(request, response)
+	return response, err
+}
+
+// DescribeDrdsInstanceWithChan invokes the drds.DescribeDrdsInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceWithChan(request *DescribeDrdsInstanceRequest) (<-chan *DescribeDrdsInstanceResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsInstanceWithCallback invokes the drds.DescribeDrdsInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceWithCallback(request *DescribeDrdsInstanceRequest, callback func(response *DescribeDrdsInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsInstanceRequest is the request struct for api DescribeDrdsInstance
+type DescribeDrdsInstanceRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsInstanceResponse is the response struct for api DescribeDrdsInstance
+type DescribeDrdsInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsInstanceRequest creates a request to invoke DescribeDrdsInstance API
+func CreateDescribeDrdsInstanceRequest() (request *DescribeDrdsInstanceRequest) {
+	request = &DescribeDrdsInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeDrdsInstance", "", "")
+	return request
+}
+
+// CreateDescribeDrdsInstanceResponse creates a response to parse from DescribeDrdsInstance response
+func CreateDescribeDrdsInstanceResponse() (response *DescribeDrdsInstanceResponse) {
+	response = &DescribeDrdsInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_drds_instance_net_info_for_inner.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"
+)
+
+// DescribeDrdsInstanceNetInfoForInner invokes the drds.DescribeDrdsInstanceNetInfoForInner API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstancenetinfoforinner.html
+func (client *Client) DescribeDrdsInstanceNetInfoForInner(request *DescribeDrdsInstanceNetInfoForInnerRequest) (response *DescribeDrdsInstanceNetInfoForInnerResponse, err error) {
+	response = CreateDescribeDrdsInstanceNetInfoForInnerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsInstanceNetInfoForInnerWithChan invokes the drds.DescribeDrdsInstanceNetInfoForInner API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstancenetinfoforinner.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceNetInfoForInnerWithChan(request *DescribeDrdsInstanceNetInfoForInnerRequest) (<-chan *DescribeDrdsInstanceNetInfoForInnerResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsInstanceNetInfoForInnerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsInstanceNetInfoForInner(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsInstanceNetInfoForInnerWithCallback invokes the drds.DescribeDrdsInstanceNetInfoForInner API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstancenetinfoforinner.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstanceNetInfoForInnerWithCallback(request *DescribeDrdsInstanceNetInfoForInnerRequest, callback func(response *DescribeDrdsInstanceNetInfoForInnerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsInstanceNetInfoForInnerResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsInstanceNetInfoForInner(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsInstanceNetInfoForInnerRequest is the request struct for api DescribeDrdsInstanceNetInfoForInner
+type DescribeDrdsInstanceNetInfoForInnerRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// DescribeDrdsInstanceNetInfoForInnerResponse is the response struct for api DescribeDrdsInstanceNetInfoForInner
+type DescribeDrdsInstanceNetInfoForInnerResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	DrdsInstanceId string   `json:"DrdsInstanceId" xml:"DrdsInstanceId"`
+	NetworkType    string   `json:"NetworkType" xml:"NetworkType"`
+	NetInfos       NetInfos `json:"NetInfos" xml:"NetInfos"`
+}
+
+// CreateDescribeDrdsInstanceNetInfoForInnerRequest creates a request to invoke DescribeDrdsInstanceNetInfoForInner API
+func CreateDescribeDrdsInstanceNetInfoForInnerRequest() (request *DescribeDrdsInstanceNetInfoForInnerRequest) {
+	request = &DescribeDrdsInstanceNetInfoForInnerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeDrdsInstanceNetInfoForInner", "", "")
+	return
+}
+
+// CreateDescribeDrdsInstanceNetInfoForInnerResponse creates a response to parse from DescribeDrdsInstanceNetInfoForInner response
+func CreateDescribeDrdsInstanceNetInfoForInnerResponse() (response *DescribeDrdsInstanceNetInfoForInnerResponse) {
+	response = &DescribeDrdsInstanceNetInfoForInnerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/describe_drds_instances.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"
+)
+
+// DescribeDrdsInstances invokes the drds.DescribeDrdsInstances API synchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstances.html
+func (client *Client) DescribeDrdsInstances(request *DescribeDrdsInstancesRequest) (response *DescribeDrdsInstancesResponse, err error) {
+	response = CreateDescribeDrdsInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDrdsInstancesWithChan invokes the drds.DescribeDrdsInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstancesWithChan(request *DescribeDrdsInstancesRequest) (<-chan *DescribeDrdsInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeDrdsInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDrdsInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDrdsInstancesWithCallback invokes the drds.DescribeDrdsInstances API asynchronously
+// api document: https://help.aliyun.com/api/drds/describedrdsinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDrdsInstancesWithCallback(request *DescribeDrdsInstancesRequest, callback func(response *DescribeDrdsInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDrdsInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDrdsInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDrdsInstancesRequest is the request struct for api DescribeDrdsInstances
+type DescribeDrdsInstancesRequest struct {
+	*requests.RpcRequest
+	Type string `position:"Query" name:"Type"`
+}
+
+// DescribeDrdsInstancesResponse is the response struct for api DescribeDrdsInstances
+type DescribeDrdsInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId string                      `json:"RequestId" xml:"RequestId"`
+	Success   bool                        `json:"Success" xml:"Success"`
+	Data      DataInDescribeDrdsInstances `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeDrdsInstancesRequest creates a request to invoke DescribeDrdsInstances API
+func CreateDescribeDrdsInstancesRequest() (request *DescribeDrdsInstancesRequest) {
+	request = &DescribeDrdsInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeDrdsInstances", "", "")
+	return
+}
+
+// CreateDescribeDrdsInstancesResponse creates a response to parse from DescribeDrdsInstances response
+func CreateDescribeDrdsInstancesResponse() (response *DescribeDrdsInstancesResponse) {
+	response = &DescribeDrdsInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_rds_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"
+)
+
+// DescribeRdsList invokes the drds.DescribeRdsList API synchronously
+// api document: https://help.aliyun.com/api/drds/describerdslist.html
+func (client *Client) DescribeRdsList(request *DescribeRdsListRequest) (response *DescribeRdsListResponse, err error) {
+	response = CreateDescribeRdsListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsListWithChan invokes the drds.DescribeRdsList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsListWithChan(request *DescribeRdsListRequest) (<-chan *DescribeRdsListResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsListWithCallback invokes the drds.DescribeRdsList API asynchronously
+// api document: https://help.aliyun.com/api/drds/describerdslist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsListWithCallback(request *DescribeRdsListRequest, callback func(response *DescribeRdsListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsListRequest is the request struct for api DescribeRdsList
+type DescribeRdsListRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+}
+
+// DescribeRdsListResponse is the response struct for api DescribeRdsList
+type DescribeRdsListResponse struct {
+	*responses.BaseResponse
+	RequestId string                `json:"RequestId" xml:"RequestId"`
+	Success   bool                  `json:"Success" xml:"Success"`
+	Data      DataInDescribeRdsList `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeRdsListRequest creates a request to invoke DescribeRdsList API
+func CreateDescribeRdsListRequest() (request *DescribeRdsListRequest) {
+	request = &DescribeRdsListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeRdsList", "", "")
+	return
+}
+
+// CreateDescribeRdsListResponse creates a response to parse from DescribeRdsList response
+func CreateDescribeRdsListResponse() (response *DescribeRdsListResponse) {
+	response = &DescribeRdsListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_read_only_account.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"
+)
+
+// DescribeReadOnlyAccount invokes the drds.DescribeReadOnlyAccount API synchronously
+// api document: https://help.aliyun.com/api/drds/describereadonlyaccount.html
+func (client *Client) DescribeReadOnlyAccount(request *DescribeReadOnlyAccountRequest) (response *DescribeReadOnlyAccountResponse, err error) {
+	response = CreateDescribeReadOnlyAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeReadOnlyAccountWithChan invokes the drds.DescribeReadOnlyAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/describereadonlyaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReadOnlyAccountWithChan(request *DescribeReadOnlyAccountRequest) (<-chan *DescribeReadOnlyAccountResponse, <-chan error) {
+	responseChan := make(chan *DescribeReadOnlyAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeReadOnlyAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeReadOnlyAccountWithCallback invokes the drds.DescribeReadOnlyAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/describereadonlyaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReadOnlyAccountWithCallback(request *DescribeReadOnlyAccountRequest, callback func(response *DescribeReadOnlyAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeReadOnlyAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeReadOnlyAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeReadOnlyAccountRequest is the request struct for api DescribeReadOnlyAccount
+type DescribeReadOnlyAccountRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+}
+
+// DescribeReadOnlyAccountResponse is the response struct for api DescribeReadOnlyAccount
+type DescribeReadOnlyAccountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeReadOnlyAccountRequest creates a request to invoke DescribeReadOnlyAccount API
+func CreateDescribeReadOnlyAccountRequest() (request *DescribeReadOnlyAccountRequest) {
+	request = &DescribeReadOnlyAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeReadOnlyAccount", "", "")
+	return
+}
+
+// CreateDescribeReadOnlyAccountResponse creates a response to parse from DescribeReadOnlyAccount response
+func CreateDescribeReadOnlyAccountResponse() (response *DescribeReadOnlyAccountResponse) {
+	response = &DescribeReadOnlyAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/drds/describe_regions.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"
+)
+
+// DescribeRegions invokes the drds.DescribeRegions API synchronously
+// api document: https://help.aliyun.com/api/drds/describeregions.html
+func (client *Client) DescribeRegions(request *DescribeRegionsRequest) (response *DescribeRegionsResponse, err error) {
+	response = CreateDescribeRegionsResponse()
+	err = client.DoAction(request, response)
+	return response, err
+}
+
+// DescribeRegionsWithChan invokes the drds.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithChan(request *DescribeRegionsRequest) (<-chan *DescribeRegionsResponse, <-chan error) {
+	responseChan := make(chan *DescribeRegionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRegions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRegionsWithCallback invokes the drds.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/drds/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithCallback(request *DescribeRegionsRequest, callback func(response *DescribeRegionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRegionsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRegions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRegionsRequest is the request struct for api DescribeRegions
+type DescribeRegionsRequest struct {
+	*requests.RpcRequest
+}
+
+// DescribeRegionsResponse is the response struct for api DescribeRegions
+type DescribeRegionsResponse struct {
+	*responses.BaseResponse
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	Success     bool        `json:"Success" xml:"Success"`
+	DrdsRegions DrdsRegions `json:"DrdsRegions" xml:"DrdsRegions"`
+}
+
+// CreateDescribeRegionsRequest creates a request to invoke DescribeRegions API
+func CreateDescribeRegionsRequest() (request *DescribeRegionsRequest) {
+	request = &DescribeRegionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeRegions", "", "")
+	return
+}
+
+// CreateDescribeRegionsResponse creates a response to parse from DescribeRegions response
+func CreateDescribeRegionsResponse() (response *DescribeRegionsResponse) {
+	response = &DescribeRegionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/describe_shard_d_bs.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"
+)
+
+// DescribeShardDBs invokes the drds.DescribeShardDBs API synchronously
+// api document: https://help.aliyun.com/api/drds/describesharddbs.html
+func (client *Client) DescribeShardDBs(request *DescribeShardDBsRequest) (response *DescribeShardDBsResponse, err error) {
+	response = CreateDescribeShardDBsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeShardDBsWithChan invokes the drds.DescribeShardDBs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesharddbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardDBsWithChan(request *DescribeShardDBsRequest) (<-chan *DescribeShardDBsResponse, <-chan error) {
+	responseChan := make(chan *DescribeShardDBsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeShardDBs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeShardDBsWithCallback invokes the drds.DescribeShardDBs API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesharddbs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardDBsWithCallback(request *DescribeShardDBsRequest, callback func(response *DescribeShardDBsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeShardDBsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeShardDBs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeShardDBsRequest is the request struct for api DescribeShardDBs
+type DescribeShardDBsRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+}
+
+// DescribeShardDBsResponse is the response struct for api DescribeShardDBs
+type DescribeShardDBsResponse struct {
+	*responses.BaseResponse
+	RequestId string                 `json:"RequestId" xml:"RequestId"`
+	Success   bool                   `json:"Success" xml:"Success"`
+	Data      DataInDescribeShardDBs `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeShardDBsRequest creates a request to invoke DescribeShardDBs API
+func CreateDescribeShardDBsRequest() (request *DescribeShardDBsRequest) {
+	request = &DescribeShardDBsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeShardDBs", "", "")
+	return
+}
+
+// CreateDescribeShardDBsResponse creates a response to parse from DescribeShardDBs response
+func CreateDescribeShardDBsResponse() (response *DescribeShardDBsResponse) {
+	response = &DescribeShardDBsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/describe_shard_db_connection_info.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"
+)
+
+// DescribeShardDbConnectionInfo invokes the drds.DescribeShardDbConnectionInfo API synchronously
+// api document: https://help.aliyun.com/api/drds/describesharddbconnectioninfo.html
+func (client *Client) DescribeShardDbConnectionInfo(request *DescribeShardDbConnectionInfoRequest) (response *DescribeShardDbConnectionInfoResponse, err error) {
+	response = CreateDescribeShardDbConnectionInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeShardDbConnectionInfoWithChan invokes the drds.DescribeShardDbConnectionInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesharddbconnectioninfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardDbConnectionInfoWithChan(request *DescribeShardDbConnectionInfoRequest) (<-chan *DescribeShardDbConnectionInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeShardDbConnectionInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeShardDbConnectionInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeShardDbConnectionInfoWithCallback invokes the drds.DescribeShardDbConnectionInfo API asynchronously
+// api document: https://help.aliyun.com/api/drds/describesharddbconnectioninfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardDbConnectionInfoWithCallback(request *DescribeShardDbConnectionInfoRequest, callback func(response *DescribeShardDbConnectionInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeShardDbConnectionInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeShardDbConnectionInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeShardDbConnectionInfoRequest is the request struct for api DescribeShardDbConnectionInfo
+type DescribeShardDbConnectionInfoRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	SubDbName      string `position:"Query" name:"SubDbName"`
+}
+
+// DescribeShardDbConnectionInfoResponse is the response struct for api DescribeShardDbConnectionInfo
+type DescribeShardDbConnectionInfoResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	ConnectionInfo ConnectionInfo `json:"ConnectionInfo" xml:"ConnectionInfo"`
+}
+
+// CreateDescribeShardDbConnectionInfoRequest creates a request to invoke DescribeShardDbConnectionInfo API
+func CreateDescribeShardDbConnectionInfoRequest() (request *DescribeShardDbConnectionInfoRequest) {
+	request = &DescribeShardDbConnectionInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "DescribeShardDbConnectionInfo", "", "")
+	return
+}
+
+// CreateDescribeShardDbConnectionInfoResponse creates a response to parse from DescribeShardDbConnectionInfo response
+func CreateDescribeShardDbConnectionInfoResponse() (response *DescribeShardDbConnectionInfoResponse) {
+	response = &DescribeShardDbConnectionInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/modify_drds_db_passwd.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"
+)
+
+// ModifyDrdsDBPasswd invokes the drds.ModifyDrdsDBPasswd API synchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsdbpasswd.html
+func (client *Client) ModifyDrdsDBPasswd(request *ModifyDrdsDBPasswdRequest) (response *ModifyDrdsDBPasswdResponse, err error) {
+	response = CreateModifyDrdsDBPasswdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDrdsDBPasswdWithChan invokes the drds.ModifyDrdsDBPasswd API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsdbpasswd.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDrdsDBPasswdWithChan(request *ModifyDrdsDBPasswdRequest) (<-chan *ModifyDrdsDBPasswdResponse, <-chan error) {
+	responseChan := make(chan *ModifyDrdsDBPasswdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDrdsDBPasswd(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDrdsDBPasswdWithCallback invokes the drds.ModifyDrdsDBPasswd API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsdbpasswd.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDrdsDBPasswdWithCallback(request *ModifyDrdsDBPasswdRequest, callback func(response *ModifyDrdsDBPasswdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDrdsDBPasswdResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDrdsDBPasswd(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDrdsDBPasswdRequest is the request struct for api ModifyDrdsDBPasswd
+type ModifyDrdsDBPasswdRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	NewPasswd      string `position:"Query" name:"NewPasswd"`
+}
+
+// ModifyDrdsDBPasswdResponse is the response struct for api ModifyDrdsDBPasswd
+type ModifyDrdsDBPasswdResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyDrdsDBPasswdRequest creates a request to invoke ModifyDrdsDBPasswd API
+func CreateModifyDrdsDBPasswdRequest() (request *ModifyDrdsDBPasswdRequest) {
+	request = &ModifyDrdsDBPasswdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "ModifyDrdsDBPasswd", "", "")
+	return
+}
+
+// CreateModifyDrdsDBPasswdResponse creates a response to parse from ModifyDrdsDBPasswd response
+func CreateModifyDrdsDBPasswdResponse() (response *ModifyDrdsDBPasswdResponse) {
+	response = &ModifyDrdsDBPasswdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/drds/modify_drds_instance_description.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"
+)
+
+// ModifyDrdsInstanceDescription invokes the drds.ModifyDrdsInstanceDescription API synchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsinstancedescription.html
+func (client *Client) ModifyDrdsInstanceDescription(request *ModifyDrdsInstanceDescriptionRequest) (response *ModifyDrdsInstanceDescriptionResponse, err error) {
+	response = CreateModifyDrdsInstanceDescriptionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDrdsInstanceDescriptionWithChan invokes the drds.ModifyDrdsInstanceDescription API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsinstancedescription.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDrdsInstanceDescriptionWithChan(request *ModifyDrdsInstanceDescriptionRequest) (<-chan *ModifyDrdsInstanceDescriptionResponse, <-chan error) {
+	responseChan := make(chan *ModifyDrdsInstanceDescriptionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDrdsInstanceDescription(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDrdsInstanceDescriptionWithCallback invokes the drds.ModifyDrdsInstanceDescription API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsinstancedescription.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDrdsInstanceDescriptionWithCallback(request *ModifyDrdsInstanceDescriptionRequest, callback func(response *ModifyDrdsInstanceDescriptionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDrdsInstanceDescriptionResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDrdsInstanceDescription(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDrdsInstanceDescriptionRequest is the request struct for api ModifyDrdsInstanceDescription
+type ModifyDrdsInstanceDescriptionRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	Description    string `position:"Query" name:"Description"`
+}
+
+// ModifyDrdsInstanceDescriptionResponse is the response struct for api ModifyDrdsInstanceDescription
+type ModifyDrdsInstanceDescriptionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyDrdsInstanceDescriptionRequest creates a request to invoke ModifyDrdsInstanceDescription API
+func CreateModifyDrdsInstanceDescriptionRequest() (request *ModifyDrdsInstanceDescriptionRequest) {
+	request = &ModifyDrdsInstanceDescriptionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "ModifyDrdsInstanceDescription", "", "")
+	return
+}
+
+// CreateModifyDrdsInstanceDescriptionResponse creates a response to parse from ModifyDrdsInstanceDescription response
+func CreateModifyDrdsInstanceDescriptionResponse() (response *ModifyDrdsInstanceDescriptionResponse) {
+	response = &ModifyDrdsInstanceDescriptionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/drds/modify_drds_ip_white_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"
+)
+
+// ModifyDrdsIpWhiteList invokes the drds.ModifyDrdsIpWhiteList API synchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsipwhitelist.html
+func (client *Client) ModifyDrdsIpWhiteList(request *ModifyDrdsIpWhiteListRequest) (response *ModifyDrdsIpWhiteListResponse, err error) {
+	response = CreateModifyDrdsIpWhiteListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDrdsIpWhiteListWithChan invokes the drds.ModifyDrdsIpWhiteList API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsipwhitelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDrdsIpWhiteListWithChan(request *ModifyDrdsIpWhiteListRequest) (<-chan *ModifyDrdsIpWhiteListResponse, <-chan error) {
+	responseChan := make(chan *ModifyDrdsIpWhiteListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDrdsIpWhiteList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDrdsIpWhiteListWithCallback invokes the drds.ModifyDrdsIpWhiteList API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifydrdsipwhitelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDrdsIpWhiteListWithCallback(request *ModifyDrdsIpWhiteListRequest, callback func(response *ModifyDrdsIpWhiteListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDrdsIpWhiteListResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDrdsIpWhiteList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDrdsIpWhiteListRequest is the request struct for api ModifyDrdsIpWhiteList
+type ModifyDrdsIpWhiteListRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	DbName         string           `position:"Query" name:"DbName"`
+	IpWhiteList    string           `position:"Query" name:"IpWhiteList"`
+	Mode           requests.Boolean `position:"Query" name:"Mode"`
+	GroupName      string           `position:"Query" name:"GroupName"`
+	GroupAttribute string           `position:"Query" name:"GroupAttribute"`
+}
+
+// ModifyDrdsIpWhiteListResponse is the response struct for api ModifyDrdsIpWhiteList
+type ModifyDrdsIpWhiteListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyDrdsIpWhiteListRequest creates a request to invoke ModifyDrdsIpWhiteList API
+func CreateModifyDrdsIpWhiteListRequest() (request *ModifyDrdsIpWhiteListRequest) {
+	request = &ModifyDrdsIpWhiteListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "ModifyDrdsIpWhiteList", "", "")
+	return
+}
+
+// CreateModifyDrdsIpWhiteListResponse creates a response to parse from ModifyDrdsIpWhiteList response
+func CreateModifyDrdsIpWhiteListResponse() (response *ModifyDrdsIpWhiteListResponse) {
+	response = &ModifyDrdsIpWhiteListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/modify_full_table_scan.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"
+)
+
+// ModifyFullTableScan invokes the drds.ModifyFullTableScan API synchronously
+// api document: https://help.aliyun.com/api/drds/modifyfulltablescan.html
+func (client *Client) ModifyFullTableScan(request *ModifyFullTableScanRequest) (response *ModifyFullTableScanResponse, err error) {
+	response = CreateModifyFullTableScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyFullTableScanWithChan invokes the drds.ModifyFullTableScan API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyfulltablescan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyFullTableScanWithChan(request *ModifyFullTableScanRequest) (<-chan *ModifyFullTableScanResponse, <-chan error) {
+	responseChan := make(chan *ModifyFullTableScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyFullTableScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyFullTableScanWithCallback invokes the drds.ModifyFullTableScan API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyfulltablescan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyFullTableScanWithCallback(request *ModifyFullTableScanRequest, callback func(response *ModifyFullTableScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyFullTableScanResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyFullTableScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyFullTableScanRequest is the request struct for api ModifyFullTableScan
+type ModifyFullTableScanRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string           `position:"Query" name:"DrdsInstanceId"`
+	DbName         string           `position:"Query" name:"DbName"`
+	TableNames     string           `position:"Query" name:"TableNames"`
+	FullTableScan  requests.Boolean `position:"Query" name:"FullTableScan"`
+}
+
+// ModifyFullTableScanResponse is the response struct for api ModifyFullTableScan
+type ModifyFullTableScanResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyFullTableScanRequest creates a request to invoke ModifyFullTableScan API
+func CreateModifyFullTableScanRequest() (request *ModifyFullTableScanRequest) {
+	request = &ModifyFullTableScanRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "ModifyFullTableScan", "", "")
+	return
+}
+
+// CreateModifyFullTableScanResponse creates a response to parse from ModifyFullTableScan response
+func CreateModifyFullTableScanResponse() (response *ModifyFullTableScanResponse) {
+	response = &ModifyFullTableScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/modify_rds_read_weight.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"
+)
+
+// ModifyRdsReadWeight invokes the drds.ModifyRdsReadWeight API synchronously
+// api document: https://help.aliyun.com/api/drds/modifyrdsreadweight.html
+func (client *Client) ModifyRdsReadWeight(request *ModifyRdsReadWeightRequest) (response *ModifyRdsReadWeightResponse, err error) {
+	response = CreateModifyRdsReadWeightResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyRdsReadWeightWithChan invokes the drds.ModifyRdsReadWeight API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyrdsreadweight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyRdsReadWeightWithChan(request *ModifyRdsReadWeightRequest) (<-chan *ModifyRdsReadWeightResponse, <-chan error) {
+	responseChan := make(chan *ModifyRdsReadWeightResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyRdsReadWeight(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyRdsReadWeightWithCallback invokes the drds.ModifyRdsReadWeight API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyrdsreadweight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyRdsReadWeightWithCallback(request *ModifyRdsReadWeightRequest, callback func(response *ModifyRdsReadWeightResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyRdsReadWeightResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyRdsReadWeight(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyRdsReadWeightRequest is the request struct for api ModifyRdsReadWeight
+type ModifyRdsReadWeightRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	InstanceNames  string `position:"Query" name:"InstanceNames"`
+	Weights        string `position:"Query" name:"Weights"`
+}
+
+// ModifyRdsReadWeightResponse is the response struct for api ModifyRdsReadWeight
+type ModifyRdsReadWeightResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyRdsReadWeightRequest creates a request to invoke ModifyRdsReadWeight API
+func CreateModifyRdsReadWeightRequest() (request *ModifyRdsReadWeightRequest) {
+	request = &ModifyRdsReadWeightRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "ModifyRdsReadWeight", "", "")
+	return
+}
+
+// CreateModifyRdsReadWeightResponse creates a response to parse from ModifyRdsReadWeight response
+func CreateModifyRdsReadWeightResponse() (response *ModifyRdsReadWeightResponse) {
+	response = &ModifyRdsReadWeightResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/drds/modify_read_only_account_password.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"
+)
+
+// ModifyReadOnlyAccountPassword invokes the drds.ModifyReadOnlyAccountPassword API synchronously
+// api document: https://help.aliyun.com/api/drds/modifyreadonlyaccountpassword.html
+func (client *Client) ModifyReadOnlyAccountPassword(request *ModifyReadOnlyAccountPasswordRequest) (response *ModifyReadOnlyAccountPasswordResponse, err error) {
+	response = CreateModifyReadOnlyAccountPasswordResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyReadOnlyAccountPasswordWithChan invokes the drds.ModifyReadOnlyAccountPassword API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyreadonlyaccountpassword.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReadOnlyAccountPasswordWithChan(request *ModifyReadOnlyAccountPasswordRequest) (<-chan *ModifyReadOnlyAccountPasswordResponse, <-chan error) {
+	responseChan := make(chan *ModifyReadOnlyAccountPasswordResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyReadOnlyAccountPassword(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyReadOnlyAccountPasswordWithCallback invokes the drds.ModifyReadOnlyAccountPassword API asynchronously
+// api document: https://help.aliyun.com/api/drds/modifyreadonlyaccountpassword.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReadOnlyAccountPasswordWithCallback(request *ModifyReadOnlyAccountPasswordRequest, callback func(response *ModifyReadOnlyAccountPasswordResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyReadOnlyAccountPasswordResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyReadOnlyAccountPassword(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyReadOnlyAccountPasswordRequest is the request struct for api ModifyReadOnlyAccountPassword
+type ModifyReadOnlyAccountPasswordRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	AccountName    string `position:"Query" name:"AccountName"`
+	OriginPassword string `position:"Query" name:"OriginPassword"`
+	NewPasswd      string `position:"Query" name:"NewPasswd"`
+}
+
+// ModifyReadOnlyAccountPasswordResponse is the response struct for api ModifyReadOnlyAccountPassword
+type ModifyReadOnlyAccountPasswordResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateModifyReadOnlyAccountPasswordRequest creates a request to invoke ModifyReadOnlyAccountPassword API
+func CreateModifyReadOnlyAccountPasswordRequest() (request *ModifyReadOnlyAccountPasswordRequest) {
+	request = &ModifyReadOnlyAccountPasswordRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "ModifyReadOnlyAccountPassword", "", "")
+	return
+}
+
+// CreateModifyReadOnlyAccountPasswordResponse creates a response to parse from ModifyReadOnlyAccountPassword response
+func CreateModifyReadOnlyAccountPasswordResponse() (response *ModifyReadOnlyAccountPasswordResponse) {
+	response = &ModifyReadOnlyAccountPasswordResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/drds/query_instance_info_by_conn.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"
+)
+
+// QueryInstanceInfoByConn invokes the drds.QueryInstanceInfoByConn API synchronously
+// api document: https://help.aliyun.com/api/drds/queryinstanceinfobyconn.html
+func (client *Client) QueryInstanceInfoByConn(request *QueryInstanceInfoByConnRequest) (response *QueryInstanceInfoByConnResponse, err error) {
+	response = CreateQueryInstanceInfoByConnResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryInstanceInfoByConnWithChan invokes the drds.QueryInstanceInfoByConn API asynchronously
+// api document: https://help.aliyun.com/api/drds/queryinstanceinfobyconn.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryInstanceInfoByConnWithChan(request *QueryInstanceInfoByConnRequest) (<-chan *QueryInstanceInfoByConnResponse, <-chan error) {
+	responseChan := make(chan *QueryInstanceInfoByConnResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryInstanceInfoByConn(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryInstanceInfoByConnWithCallback invokes the drds.QueryInstanceInfoByConn API asynchronously
+// api document: https://help.aliyun.com/api/drds/queryinstanceinfobyconn.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryInstanceInfoByConnWithCallback(request *QueryInstanceInfoByConnRequest, callback func(response *QueryInstanceInfoByConnResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryInstanceInfoByConnResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryInstanceInfoByConn(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryInstanceInfoByConnRequest is the request struct for api QueryInstanceInfoByConn
+type QueryInstanceInfoByConnRequest struct {
+	*requests.RpcRequest
+	Host     string           `position:"Query" name:"Host"`
+	Port     requests.Integer `position:"Query" name:"Port"`
+	UserName string           `position:"Query" name:"UserName"`
+}
+
+// QueryInstanceInfoByConnResponse is the response struct for api QueryInstanceInfoByConn
+type QueryInstanceInfoByConnResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      Data   `json:"Data" xml:"Data"`
+}
+
+// CreateQueryInstanceInfoByConnRequest creates a request to invoke QueryInstanceInfoByConn API
+func CreateQueryInstanceInfoByConnRequest() (request *QueryInstanceInfoByConnRequest) {
+	request = &QueryInstanceInfoByConnRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "QueryInstanceInfoByConn", "", "")
+	return
+}
+
+// CreateQueryInstanceInfoByConnResponse creates a response to parse from QueryInstanceInfoByConn response
+func CreateQueryInstanceInfoByConnResponse() (response *QueryInstanceInfoByConnResponse) {
+	response = &QueryInstanceInfoByConnResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/drds/remove_drds_instance.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"
+)
+
+// RemoveDrdsInstance invokes the drds.RemoveDrdsInstance API synchronously
+// api document: https://help.aliyun.com/api/drds/removedrdsinstance.html
+func (client *Client) RemoveDrdsInstance(request *RemoveDrdsInstanceRequest) (response *RemoveDrdsInstanceResponse, err error) {
+	response = CreateRemoveDrdsInstanceResponse()
+	err = client.DoAction(request, response)
+	return response, err
+}
+
+// RemoveDrdsInstanceWithChan invokes the drds.RemoveDrdsInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/removedrdsinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveDrdsInstanceWithChan(request *RemoveDrdsInstanceRequest) (<-chan *RemoveDrdsInstanceResponse, <-chan error) {
+	responseChan := make(chan *RemoveDrdsInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RemoveDrdsInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RemoveDrdsInstanceWithCallback invokes the drds.RemoveDrdsInstance API asynchronously
+// api document: https://help.aliyun.com/api/drds/removedrdsinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveDrdsInstanceWithCallback(request *RemoveDrdsInstanceRequest, callback func(response *RemoveDrdsInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RemoveDrdsInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.RemoveDrdsInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RemoveDrdsInstanceRequest is the request struct for api RemoveDrdsInstance
+type RemoveDrdsInstanceRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+}
+
+// RemoveDrdsInstanceResponse is the response struct for api RemoveDrdsInstance
+type RemoveDrdsInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateRemoveDrdsInstanceRequest creates a request to invoke RemoveDrdsInstance API
+func CreateRemoveDrdsInstanceRequest() (request *RemoveDrdsInstanceRequest) {
+	request = &RemoveDrdsInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "RemoveDrdsInstance", "", "")
+	return request
+}
+
+// CreateRemoveDrdsInstanceResponse creates a response to parse from RemoveDrdsInstance response
+func CreateRemoveDrdsInstanceResponse() (response *RemoveDrdsInstanceResponse) {
+	response = &RemoveDrdsInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/drds/remove_read_only_account.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"
+)
+
+// RemoveReadOnlyAccount invokes the drds.RemoveReadOnlyAccount API synchronously
+// api document: https://help.aliyun.com/api/drds/removereadonlyaccount.html
+func (client *Client) RemoveReadOnlyAccount(request *RemoveReadOnlyAccountRequest) (response *RemoveReadOnlyAccountResponse, err error) {
+	response = CreateRemoveReadOnlyAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RemoveReadOnlyAccountWithChan invokes the drds.RemoveReadOnlyAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/removereadonlyaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveReadOnlyAccountWithChan(request *RemoveReadOnlyAccountRequest) (<-chan *RemoveReadOnlyAccountResponse, <-chan error) {
+	responseChan := make(chan *RemoveReadOnlyAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RemoveReadOnlyAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RemoveReadOnlyAccountWithCallback invokes the drds.RemoveReadOnlyAccount API asynchronously
+// api document: https://help.aliyun.com/api/drds/removereadonlyaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveReadOnlyAccountWithCallback(request *RemoveReadOnlyAccountRequest, callback func(response *RemoveReadOnlyAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RemoveReadOnlyAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.RemoveReadOnlyAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RemoveReadOnlyAccountRequest is the request struct for api RemoveReadOnlyAccount
+type RemoveReadOnlyAccountRequest struct {
+	*requests.RpcRequest
+	DrdsInstanceId string `position:"Query" name:"DrdsInstanceId"`
+	DbName         string `position:"Query" name:"DbName"`
+	AccountName    string `position:"Query" name:"AccountName"`
+}
+
+// RemoveReadOnlyAccountResponse is the response struct for api RemoveReadOnlyAccount
+type RemoveReadOnlyAccountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+}
+
+// CreateRemoveReadOnlyAccountRequest creates a request to invoke RemoveReadOnlyAccount API
+func CreateRemoveReadOnlyAccountRequest() (request *RemoveReadOnlyAccountRequest) {
+	request = &RemoveReadOnlyAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Drds", "2017-10-16", "RemoveReadOnlyAccount", "", "")
+	return
+}
+
+// CreateRemoveReadOnlyAccountResponse creates a response to parse from RemoveReadOnlyAccount response
+func CreateRemoveReadOnlyAccountResponse() (response *RemoveReadOnlyAccountResponse) {
+	response = &RemoveReadOnlyAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 27 - 0
services/drds/struct_child.go

@@ -0,0 +1,27 @@
+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.
+
+// Child is a nested struct in drds response
+type Child struct {
+	InstanceId     string `json:"InstanceId" xml:"InstanceId"`
+	InstanceName   string `json:"InstanceName" xml:"InstanceName"`
+	ConnectUrl     string `json:"ConnectUrl" xml:"ConnectUrl"`
+	Port           int    `json:"port" xml:"port"`
+	InstanceStatus string `json:"InstanceStatus" xml:"InstanceStatus"`
+	DbType         string `json:"DbType" xml:"DbType"`
+	ReadWeight     int    `json:"ReadWeight" xml:"ReadWeight"`
+}

+ 32 - 0
services/drds/struct_connection_info.go

@@ -0,0 +1,32 @@
+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.
+
+// ConnectionInfo is a nested struct in drds response
+type ConnectionInfo struct {
+	InstanceName               string `json:"InstanceName" xml:"InstanceName"`
+	InstanceUrl                string `json:"InstanceUrl" xml:"InstanceUrl"`
+	SubDbName                  string `json:"subDbName" xml:"subDbName"`
+	DbStatus                   string `json:"dbStatus" xml:"dbStatus"`
+	DbType                     string `json:"dbType" xml:"dbType"`
+	MinPoolSize                int    `json:"minPoolSize" xml:"minPoolSize"`
+	MaxPoolSize                int    `json:"maxPoolSize" xml:"maxPoolSize"`
+	IdleTimeOut                int    `json:"idleTimeOut" xml:"idleTimeOut"`
+	BlockingTimeout            int    `json:"blockingTimeout" xml:"blockingTimeout"`
+	ConnectionProperties       string `json:"connectionProperties" xml:"connectionProperties"`
+	PreparedStatementCacheSize int    `json:"preparedStatementCacheSize" xml:"preparedStatementCacheSize"`
+	UserName                   string `json:"userName" xml:"userName"`
+}

+ 39 - 0
services/drds/struct_data.go

@@ -0,0 +1,39 @@
+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.
+
+// Data is a nested struct in drds response
+type Data struct {
+	Version            int                           `json:"Version" xml:"Version"`
+	SpecTypeName       string                        `json:"SpecTypeName" xml:"SpecTypeName"`
+	OrderId            int                           `json:"OrderId" xml:"OrderId"`
+	CreateTime         int                           `json:"CreateTime" xml:"CreateTime"`
+	DrdsInstanceId     string                        `json:"DrdsInstanceId" xml:"DrdsInstanceId"`
+	DbName             string                        `json:"DbName" xml:"DbName"`
+	VpcCloudInstanceId string                        `json:"VpcCloudInstanceId" xml:"VpcCloudInstanceId"`
+	RegionId           string                        `json:"RegionId" xml:"RegionId"`
+	ZoneId             string                        `json:"ZoneId" xml:"ZoneId"`
+	AccountName        string                        `json:"AccountName" xml:"AccountName"`
+	SpecTypeId         string                        `json:"SpecTypeId" xml:"SpecTypeId"`
+	NetworkType        string                        `json:"NetworkType" xml:"NetworkType"`
+	Status             string                        `json:"Status" xml:"Status"`
+	Description        string                        `json:"Description" xml:"Description"`
+	Specification      string                        `json:"Specification" xml:"Specification"`
+	Type               string                        `json:"Type" xml:"Type"`
+	DrdsInstanceIdList DrdsInstanceIdList            `json:"DrdsInstanceIdList" xml:"DrdsInstanceIdList"`
+	IpWhiteList        IpWhiteList                   `json:"IpWhiteList" xml:"IpWhiteList"`
+	Vips               VipsInQueryInstanceInfoByConn `json:"Vips" xml:"Vips"`
+}

+ 21 - 0
services/drds/struct_data_in_describe_drds_d_bs.go

@@ -0,0 +1,21 @@
+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.
+
+// DataInDescribeDrdsDBs is a nested struct in drds response
+type DataInDescribeDrdsDBs struct {
+	Db []Db `json:"Db" xml:"Db"`
+}

+ 25 - 0
services/drds/struct_data_in_describe_drds_db.go

@@ -0,0 +1,25 @@
+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.
+
+// DataInDescribeDrdsDB is a nested struct in drds response
+type DataInDescribeDrdsDB struct {
+	DbName     string `json:"DbName" xml:"DbName"`
+	Status     int    `json:"Status" xml:"Status"`
+	CreateTime string `json:"CreateTime" xml:"CreateTime"`
+	Msg        string `json:"Msg" xml:"Msg"`
+	Mode       string `json:"Mode" xml:"Mode"`
+}

+ 21 - 0
services/drds/struct_data_in_describe_drds_instances.go

@@ -0,0 +1,21 @@
+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.
+
+// DataInDescribeDrdsInstances is a nested struct in drds response
+type DataInDescribeDrdsInstances struct {
+	Instance []Instance `json:"Instance" xml:"Instance"`
+}

+ 21 - 0
services/drds/struct_data_in_describe_rds_list.go

@@ -0,0 +1,21 @@
+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.
+
+// DataInDescribeRdsList is a nested struct in drds response
+type DataInDescribeRdsList struct {
+	RdsInstance []RdsInstance `json:"RdsInstance" xml:"RdsInstance"`
+}

+ 21 - 0
services/drds/struct_data_in_describe_shard_d_bs.go

@@ -0,0 +1,21 @@
+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.
+
+// DataInDescribeShardDBs is a nested struct in drds response
+type DataInDescribeShardDBs struct {
+	DbIntancePair []DbIntancePair `json:"DbIntancePair" xml:"DbIntancePair"`
+}

+ 25 - 0
services/drds/struct_db.go

@@ -0,0 +1,25 @@
+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.
+
+// Db is a nested struct in drds response
+type Db struct {
+	DbName     string `json:"DbName" xml:"DbName"`
+	Status     int    `json:"Status" xml:"Status"`
+	CreateTime string `json:"CreateTime" xml:"CreateTime"`
+	Msg        string `json:"Msg" xml:"Msg"`
+	Mode       string `json:"Mode" xml:"Mode"`
+}

+ 22 - 0
services/drds/struct_db_intance_pair.go

@@ -0,0 +1,22 @@
+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.
+
+// DbIntancePair is a nested struct in drds response
+type DbIntancePair struct {
+	SubDbName    string `json:"SubDbName" xml:"SubDbName"`
+	InstanceName string `json:"InstanceName" xml:"InstanceName"`
+}

+ 21 - 0
services/drds/struct_drds_instance_id_list.go

@@ -0,0 +1,21 @@
+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.
+
+// DrdsInstanceIdList is a nested struct in drds response
+type DrdsInstanceIdList struct {
+	DrdsInstanceId []string `json:"DrdsInstanceId" xml:"DrdsInstanceId"`
+}

+ 25 - 0
services/drds/struct_drds_region.go

@@ -0,0 +1,25 @@
+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.
+
+// DrdsRegion is a nested struct in drds response
+type DrdsRegion struct {
+	RegionId           string             `json:"RegionId" xml:"RegionId"`
+	RegionName         string             `json:"RegionName" xml:"RegionName"`
+	ZoneId             string             `json:"ZoneId" xml:"ZoneId"`
+	ZoneName           string             `json:"ZoneName" xml:"ZoneName"`
+	InstanceSeriesList InstanceSeriesList `json:"InstanceSeriesList" xml:"InstanceSeriesList"`
+}

+ 21 - 0
services/drds/struct_drds_regions.go

@@ -0,0 +1,21 @@
+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.
+
+// DrdsRegions is a nested struct in drds response
+type DrdsRegions struct {
+	DrdsRegion []DrdsRegion `json:"DrdsRegion" xml:"DrdsRegion"`
+}

+ 31 - 0
services/drds/struct_instance.go

@@ -0,0 +1,31 @@
+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.
+
+// Instance is a nested struct in drds response
+type Instance struct {
+	DrdsInstanceId     string                      `json:"DrdsInstanceId" xml:"DrdsInstanceId"`
+	Type               string                      `json:"Type" xml:"Type"`
+	RegionId           string                      `json:"RegionId" xml:"RegionId"`
+	ZoneId             string                      `json:"ZoneId" xml:"ZoneId"`
+	Description        string                      `json:"Description" xml:"Description"`
+	NetworkType        string                      `json:"NetworkType" xml:"NetworkType"`
+	Status             string                      `json:"Status" xml:"Status"`
+	CreateTime         int                         `json:"CreateTime" xml:"CreateTime"`
+	Version            int                         `json:"Version" xml:"Version"`
+	VpcCloudInstanceId string                      `json:"VpcCloudInstanceId" xml:"VpcCloudInstanceId"`
+	Vips               VipsInDescribeDrdsInstances `json:"Vips" xml:"Vips"`
+}

+ 23 - 0
services/drds/struct_instance_series.go

@@ -0,0 +1,23 @@
+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.
+
+// InstanceSeries is a nested struct in drds response
+type InstanceSeries struct {
+	SeriesId   string   `json:"SeriesId" xml:"SeriesId"`
+	SeriesName string   `json:"SeriesName" xml:"SeriesName"`
+	SpecList   SpecList `json:"SpecList" xml:"SpecList"`
+}

+ 21 - 0
services/drds/struct_instance_series_list.go

@@ -0,0 +1,21 @@
+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.
+
+// InstanceSeriesList is a nested struct in drds response
+type InstanceSeriesList struct {
+	InstanceSeries []InstanceSeries `json:"InstanceSeries" xml:"InstanceSeries"`
+}

+ 21 - 0
services/drds/struct_ip_white_list.go

@@ -0,0 +1,21 @@
+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.
+
+// IpWhiteList is a nested struct in drds response
+type IpWhiteList struct {
+	Ip []string `json:"Ip" xml:"Ip"`
+}

+ 24 - 0
services/drds/struct_net_info.go

@@ -0,0 +1,24 @@
+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.
+
+// NetInfo is a nested struct in drds response
+type NetInfo struct {
+	IP       string `json:"IP" xml:"IP"`
+	Port     string `json:"Port" xml:"Port"`
+	Type     string `json:"Type" xml:"Type"`
+	IsForVpc bool   `json:"IsForVpc" xml:"IsForVpc"`
+}

+ 21 - 0
services/drds/struct_net_infos.go

@@ -0,0 +1,21 @@
+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.
+
+// NetInfos is a nested struct in drds response
+type NetInfos struct {
+	NetInfo []NetInfo `json:"NetInfo" xml:"NetInfo"`
+}

+ 28 - 0
services/drds/struct_rds_instance.go

@@ -0,0 +1,28 @@
+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.
+
+// RdsInstance is a nested struct in drds response
+type RdsInstance struct {
+	InstanceId       int              `json:"InstanceId" xml:"InstanceId"`
+	InstanceName     string           `json:"InstanceName" xml:"InstanceName"`
+	ConnectUrl       string           `json:"ConnectUrl" xml:"ConnectUrl"`
+	Port             int              `json:"Port" xml:"Port"`
+	InstanceStatus   string           `json:"InstanceStatus" xml:"InstanceStatus"`
+	DbType           string           `json:"DbType" xml:"DbType"`
+	ReadWeight       int              `json:"ReadWeight" xml:"ReadWeight"`
+	ReadOnlyChildren ReadOnlyChildren `json:"ReadOnlyChildren" xml:"ReadOnlyChildren"`
+}

+ 21 - 0
services/drds/struct_read_only_children.go

@@ -0,0 +1,21 @@
+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.
+
+// ReadOnlyChildren is a nested struct in drds response
+type ReadOnlyChildren struct {
+	Child []Child `json:"Child" xml:"Child"`
+}

+ 22 - 0
services/drds/struct_spec.go

@@ -0,0 +1,22 @@
+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.
+
+// Spec is a nested struct in drds response
+type Spec struct {
+	SpecId   string `json:"SpecId" xml:"SpecId"`
+	SpecName string `json:"SpecName" xml:"SpecName"`
+}

+ 21 - 0
services/drds/struct_spec_list.go

@@ -0,0 +1,21 @@
+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.
+
+// SpecList is a nested struct in drds response
+type SpecList struct {
+	Spec []Spec `json:"Spec" xml:"Spec"`
+}

+ 25 - 0
services/drds/struct_vip.go

@@ -0,0 +1,25 @@
+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.
+
+// Vip is a nested struct in drds response
+type Vip struct {
+	Port      string `json:"Port" xml:"Port"`
+	IP        string `json:"IP" xml:"IP"`
+	VswitchId string `json:"VswitchId" xml:"VswitchId"`
+	VpcId     string `json:"VpcId" xml:"VpcId"`
+	Type      string `json:"Type" xml:"Type"`
+}

+ 21 - 0
services/drds/struct_vips_in_describe_drds_instance.go

@@ -0,0 +1,21 @@
+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.
+
+// VipsInDescribeDrdsInstance is a nested struct in drds response
+type VipsInDescribeDrdsInstance struct {
+	Vip []Vip `json:"Vip" xml:"Vip"`
+}

+ 21 - 0
services/drds/struct_vips_in_describe_drds_instances.go

@@ -0,0 +1,21 @@
+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.
+
+// VipsInDescribeDrdsInstances is a nested struct in drds response
+type VipsInDescribeDrdsInstances struct {
+	Vip []Vip `json:"Vip" xml:"Vip"`
+}

+ 21 - 0
services/drds/struct_vips_in_query_instance_info_by_conn.go

@@ -0,0 +1,21 @@
+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.
+
+// VipsInQueryInstanceInfoByConn is a nested struct in drds response
+type VipsInQueryInstanceInfoByConn struct {
+	Vip []Vip `json:"Vip" xml:"Vip"`
+}