Ver Fonte

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

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao há 7 anos atrás
pai
commit
949e3f4669
55 ficheiros alterados com 3494 adições e 0 exclusões
  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
 1, Add new interface InstallCloudAssistant, support Cloud Assistant client installation.
 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"`
+}