瀏覽代碼

Generated 2015-01-01 for R-kvstore

sdk-team 6 年之前
父節點
當前提交
1a11134695
共有 100 個文件被更改,包括 11120 次插入0 次删除
  1. 3 0
      ChangeLog.txt
  2. 110 0
      services/r_kvstore/allocate_instance_public_connection.go
  3. 104 0
      services/r_kvstore/client.go
  4. 115 0
      services/r_kvstore/create_account.go
  5. 109 0
      services/r_kvstore/create_backup.go
  6. 108 0
      services/r_kvstore/create_cache_analysis_task.go
  7. 150 0
      services/r_kvstore/create_instance.go
  8. 140 0
      services/r_kvstore/create_sharding_instance.go
  9. 108 0
      services/r_kvstore/create_snapshot.go
  10. 110 0
      services/r_kvstore/create_static_verification.go
  11. 110 0
      services/r_kvstore/create_temp_instance.go
  12. 109 0
      services/r_kvstore/delete_account.go
  13. 108 0
      services/r_kvstore/delete_instance.go
  14. 106 0
      services/r_kvstore/delete_snapshot.go
  15. 106 0
      services/r_kvstore/delete_snapshot_settings.go
  16. 106 0
      services/r_kvstore/delete_temp_instance.go
  17. 110 0
      services/r_kvstore/describe_accounts.go
  18. 116 0
      services/r_kvstore/describe_active_operation_task.go
  19. 109 0
      services/r_kvstore/describe_active_operation_task_count.go
  20. 110 0
      services/r_kvstore/describe_active_operation_task_region.go
  21. 109 0
      services/r_kvstore/describe_active_operation_task_type.go
  22. 124 0
      services/r_kvstore/describe_audit_records.go
  23. 111 0
      services/r_kvstore/describe_available_resource.go
  24. 112 0
      services/r_kvstore/describe_backup_policy.go
  25. 117 0
      services/r_kvstore/describe_backups.go
  26. 119 0
      services/r_kvstore/describe_cache_analysis_report.go
  27. 117 0
      services/r_kvstore/describe_cache_analysis_report_list.go
  28. 110 0
      services/r_kvstore/describe_certification.go
  29. 109 0
      services/r_kvstore/describe_db_instance_monitor.go
  30. 110 0
      services/r_kvstore/describe_db_instance_net_info.go
  31. 121 0
      services/r_kvstore/describe_error_log_records.go
  32. 114 0
      services/r_kvstore/describe_history_monitor_values.go
  33. 109 0
      services/r_kvstore/describe_instance_attribute.go
  34. 115 0
      services/r_kvstore/describe_instance_auto_renewal_attribute.go
  35. 109 0
      services/r_kvstore/describe_instance_config.go
  36. 112 0
      services/r_kvstore/describe_instance_ssl.go
  37. 133 0
      services/r_kvstore/describe_instances.go
  38. 116 0
      services/r_kvstore/describe_instances_by_expire_time.go
  39. 110 0
      services/r_kvstore/describe_intranet_attribute.go
  40. 111 0
      services/r_kvstore/describe_logic_instance_topology.go
  41. 108 0
      services/r_kvstore/describe_monitor_items.go
  42. 111 0
      services/r_kvstore/describe_monthly_service_status.go
  43. 112 0
      services/r_kvstore/describe_monthly_service_status_detail.go
  44. 112 0
      services/r_kvstore/describe_parameter_modification_history.go
  45. 114 0
      services/r_kvstore/describe_parameter_templates.go
  46. 113 0
      services/r_kvstore/describe_parameters.go
  47. 110 0
      services/r_kvstore/describe_rds_v_switchs.go
  48. 109 0
      services/r_kvstore/describe_rds_vpcs.go
  49. 109 0
      services/r_kvstore/describe_regions.go
  50. 117 0
      services/r_kvstore/describe_replica_conflict_info.go
  51. 109 0
      services/r_kvstore/describe_replica_initialize_progress.go
  52. 117 0
      services/r_kvstore/describe_replica_performance.go
  53. 114 0
      services/r_kvstore/describe_replica_usage.go
  54. 115 0
      services/r_kvstore/describe_replicas.go
  55. 124 0
      services/r_kvstore/describe_running_log_records.go
  56. 109 0
      services/r_kvstore/describe_security_ips.go
  57. 110 0
      services/r_kvstore/describe_sharding_instances.go
  58. 123 0
      services/r_kvstore/describe_slow_log_records.go
  59. 109 0
      services/r_kvstore/describe_snapshots.go
  60. 123 0
      services/r_kvstore/describe_static_verification_list.go
  61. 111 0
      services/r_kvstore/describe_strategy.go
  62. 110 0
      services/r_kvstore/describe_tags.go
  63. 107 0
      services/r_kvstore/describe_temp_instance.go
  64. 117 0
      services/r_kvstore/describe_verification_list.go
  65. 109 0
      services/r_kvstore/describe_zones.go
  66. 108 0
      services/r_kvstore/destroy_instance.go
  67. 112 0
      services/r_kvstore/evaluate_fail_over_switch.go
  68. 108 0
      services/r_kvstore/flush_instance.go
  69. 115 0
      services/r_kvstore/get_snapshot_settings.go
  70. 110 0
      services/r_kvstore/grant_account_privilege.go
  71. 118 0
      services/r_kvstore/list_tag_resources.go
  72. 111 0
      services/r_kvstore/migrate_to_other_zone.go
  73. 110 0
      services/r_kvstore/modify_account_description.go
  74. 110 0
      services/r_kvstore/modify_active_operation_task.go
  75. 110 0
      services/r_kvstore/modify_audit_log_config.go
  76. 110 0
      services/r_kvstore/modify_backup_policy.go
  77. 109 0
      services/r_kvstore/modify_certification.go
  78. 112 0
      services/r_kvstore/modify_db_instance_connection_string.go
  79. 109 0
      services/r_kvstore/modify_db_instance_monitor.go
  80. 109 0
      services/r_kvstore/modify_guard_domain_mode.go
  81. 110 0
      services/r_kvstore/modify_instance_attribute.go
  82. 110 0
      services/r_kvstore/modify_instance_auto_renewal_attribute.go
  83. 109 0
      services/r_kvstore/modify_instance_config.go
  84. 110 0
      services/r_kvstore/modify_instance_maintain_time.go
  85. 110 0
      services/r_kvstore/modify_instance_major_version.go
  86. 110 0
      services/r_kvstore/modify_instance_minor_version.go
  87. 112 0
      services/r_kvstore/modify_instance_net_expire_time.go
  88. 116 0
      services/r_kvstore/modify_instance_spec.go
  89. 112 0
      services/r_kvstore/modify_instance_spec_pre_check.go
  90. 111 0
      services/r_kvstore/modify_instance_ssl.go
  91. 109 0
      services/r_kvstore/modify_instance_vpc_auth_mode.go
  92. 108 0
      services/r_kvstore/modify_intranet_attribute.go
  93. 109 0
      services/r_kvstore/modify_replica_description.go
  94. 111 0
      services/r_kvstore/modify_replica_mode.go
  95. 109 0
      services/r_kvstore/modify_replica_recovery_mode.go
  96. 108 0
      services/r_kvstore/modify_replica_relation.go
  97. 109 0
      services/r_kvstore/modify_replica_verification_mode.go
  98. 112 0
      services/r_kvstore/modify_security_ips.go
  99. 108 0
      services/r_kvstore/query_task.go
  100. 109 0
      services/r_kvstore/release_instance_public_connection.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-06-13 Version: 1.60.43
+- Generated 2015-01-01 for `R-kvstore`
+
 2019-06-13 Version: 1.60.42
 2019-06-13 Version: 1.60.42
 Add Network Assistant openapi sdk
 Add Network Assistant openapi sdk
 
 

+ 110 - 0
services/r_kvstore/allocate_instance_public_connection.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// AllocateInstancePublicConnection invokes the r_kvstore.AllocateInstancePublicConnection API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/allocateinstancepublicconnection.html
+func (client *Client) AllocateInstancePublicConnection(request *AllocateInstancePublicConnectionRequest) (response *AllocateInstancePublicConnectionResponse, err error) {
+	response = CreateAllocateInstancePublicConnectionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AllocateInstancePublicConnectionWithChan invokes the r_kvstore.AllocateInstancePublicConnection API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/allocateinstancepublicconnection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AllocateInstancePublicConnectionWithChan(request *AllocateInstancePublicConnectionRequest) (<-chan *AllocateInstancePublicConnectionResponse, <-chan error) {
+	responseChan := make(chan *AllocateInstancePublicConnectionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AllocateInstancePublicConnection(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AllocateInstancePublicConnectionWithCallback invokes the r_kvstore.AllocateInstancePublicConnection API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/allocateinstancepublicconnection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AllocateInstancePublicConnectionWithCallback(request *AllocateInstancePublicConnectionRequest, callback func(response *AllocateInstancePublicConnectionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AllocateInstancePublicConnectionResponse
+		var err error
+		defer close(result)
+		response, err = client.AllocateInstancePublicConnection(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AllocateInstancePublicConnectionRequest is the request struct for api AllocateInstancePublicConnection
+type AllocateInstancePublicConnectionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId        requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ConnectionStringPrefix string           `position:"Query" name:"ConnectionStringPrefix"`
+	InstanceId             string           `position:"Query" name:"InstanceId"`
+	SecurityToken          string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount   string           `position:"Query" name:"ResourceOwnerAccount"`
+	Port                   string           `position:"Query" name:"Port"`
+	OwnerAccount           string           `position:"Query" name:"OwnerAccount"`
+	OwnerId                requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// AllocateInstancePublicConnectionResponse is the response struct for api AllocateInstancePublicConnection
+type AllocateInstancePublicConnectionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAllocateInstancePublicConnectionRequest creates a request to invoke AllocateInstancePublicConnection API
+func CreateAllocateInstancePublicConnectionRequest() (request *AllocateInstancePublicConnectionRequest) {
+	request = &AllocateInstancePublicConnectionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "AllocateInstancePublicConnection", "redisa", "openAPI")
+	return
+}
+
+// CreateAllocateInstancePublicConnectionResponse creates a response to parse from AllocateInstancePublicConnection response
+func CreateAllocateInstancePublicConnectionResponse() (response *AllocateInstancePublicConnectionResponse) {
+	response = &AllocateInstancePublicConnectionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/r_kvstore/client.go

@@ -0,0 +1,104 @@
+package r_kvstore
+
+//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"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
+)
+
+// 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
+}
+
+// NewClientWithProvider creates a sdk client with providers
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) {
+	client = &Client{}
+	var pc provider.Provider
+	if len(providers) == 0 {
+		pc = provider.DefaultChain
+	} else {
+		pc = provider.NewProviderChain(providers)
+	}
+	err = client.InitWithProviderChain(regionId, pc)
+	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://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+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://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+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://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+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
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 115 - 0
services/r_kvstore/create_account.go

@@ -0,0 +1,115 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateAccount invokes the r_kvstore.CreateAccount API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createaccount.html
+func (client *Client) CreateAccount(request *CreateAccountRequest) (response *CreateAccountResponse, err error) {
+	response = CreateCreateAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateAccountWithChan invokes the r_kvstore.CreateAccount API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateAccountWithChan(request *CreateAccountRequest) (<-chan *CreateAccountResponse, <-chan error) {
+	responseChan := make(chan *CreateAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateAccountWithCallback invokes the r_kvstore.CreateAccount API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateAccountWithCallback(request *CreateAccountRequest, callback func(response *CreateAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateAccountRequest is the request struct for api CreateAccount
+type CreateAccountRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	AccountType          string           `position:"Query" name:"AccountType"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	AccountDescription   string           `position:"Query" name:"AccountDescription"`
+	AccountPrivilege     string           `position:"Query" name:"AccountPrivilege"`
+	AccountPassword      string           `position:"Query" name:"AccountPassword"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	AccountName          string           `position:"Query" name:"AccountName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+}
+
+// CreateAccountResponse is the response struct for api CreateAccount
+type CreateAccountResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	InstanceId string `json:"InstanceId" xml:"InstanceId"`
+	AcountName string `json:"AcountName" xml:"AcountName"`
+}
+
+// CreateCreateAccountRequest creates a request to invoke CreateAccount API
+func CreateCreateAccountRequest() (request *CreateAccountRequest) {
+	request = &CreateAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateAccount", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateAccountResponse creates a response to parse from CreateAccount response
+func CreateCreateAccountResponse() (response *CreateAccountResponse) {
+	response = &CreateAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/create_backup.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateBackup invokes the r_kvstore.CreateBackup API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createbackup.html
+func (client *Client) CreateBackup(request *CreateBackupRequest) (response *CreateBackupResponse, err error) {
+	response = CreateCreateBackupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateBackupWithChan invokes the r_kvstore.CreateBackup API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createbackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateBackupWithChan(request *CreateBackupRequest) (<-chan *CreateBackupResponse, <-chan error) {
+	responseChan := make(chan *CreateBackupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateBackup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateBackupWithCallback invokes the r_kvstore.CreateBackup API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createbackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateBackupWithCallback(request *CreateBackupRequest, callback func(response *CreateBackupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateBackupResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateBackup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateBackupRequest is the request struct for api CreateBackup
+type CreateBackupRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CreateBackupResponse is the response struct for api CreateBackup
+type CreateBackupResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	BackupJobID string `json:"BackupJobID" xml:"BackupJobID"`
+}
+
+// CreateCreateBackupRequest creates a request to invoke CreateBackup API
+func CreateCreateBackupRequest() (request *CreateBackupRequest) {
+	request = &CreateBackupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateBackup", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateBackupResponse creates a response to parse from CreateBackup response
+func CreateCreateBackupResponse() (response *CreateBackupResponse) {
+	response = &CreateBackupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/create_cache_analysis_task.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateCacheAnalysisTask invokes the r_kvstore.CreateCacheAnalysisTask API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createcacheanalysistask.html
+func (client *Client) CreateCacheAnalysisTask(request *CreateCacheAnalysisTaskRequest) (response *CreateCacheAnalysisTaskResponse, err error) {
+	response = CreateCreateCacheAnalysisTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCacheAnalysisTaskWithChan invokes the r_kvstore.CreateCacheAnalysisTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createcacheanalysistask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCacheAnalysisTaskWithChan(request *CreateCacheAnalysisTaskRequest) (<-chan *CreateCacheAnalysisTaskResponse, <-chan error) {
+	responseChan := make(chan *CreateCacheAnalysisTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCacheAnalysisTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCacheAnalysisTaskWithCallback invokes the r_kvstore.CreateCacheAnalysisTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createcacheanalysistask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCacheAnalysisTaskWithCallback(request *CreateCacheAnalysisTaskRequest, callback func(response *CreateCacheAnalysisTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCacheAnalysisTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCacheAnalysisTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCacheAnalysisTaskRequest is the request struct for api CreateCacheAnalysisTask
+type CreateCacheAnalysisTaskRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CreateCacheAnalysisTaskResponse is the response struct for api CreateCacheAnalysisTask
+type CreateCacheAnalysisTaskResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateCacheAnalysisTaskRequest creates a request to invoke CreateCacheAnalysisTask API
+func CreateCreateCacheAnalysisTaskRequest() (request *CreateCacheAnalysisTaskRequest) {
+	request = &CreateCacheAnalysisTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateCacheAnalysisTask", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateCacheAnalysisTaskResponse creates a response to parse from CreateCacheAnalysisTask response
+func CreateCreateCacheAnalysisTaskResponse() (response *CreateCacheAnalysisTaskResponse) {
+	response = &CreateCacheAnalysisTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 150 - 0
services/r_kvstore/create_instance.go

@@ -0,0 +1,150 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateInstance invokes the r_kvstore.CreateInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createinstance.html
+func (client *Client) CreateInstance(request *CreateInstanceRequest) (response *CreateInstanceResponse, err error) {
+	response = CreateCreateInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateInstanceWithChan invokes the r_kvstore.CreateInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceWithChan(request *CreateInstanceRequest) (<-chan *CreateInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateInstanceWithCallback invokes the r_kvstore.CreateInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceWithCallback(request *CreateInstanceRequest, callback func(response *CreateInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateInstanceRequest is the request struct for api CreateInstance
+type CreateInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	NodeType             string           `position:"Query" name:"NodeType"`
+	CouponNo             string           `position:"Query" name:"CouponNo"`
+	NetworkType          string           `position:"Query" name:"NetworkType"`
+	EngineVersion        string           `position:"Query" name:"EngineVersion"`
+	AutoUseCoupon        string           `position:"Query" name:"AutoUseCoupon"`
+	InstanceClass        string           `position:"Query" name:"InstanceClass"`
+	Capacity             requests.Integer `position:"Query" name:"Capacity"`
+	Password             string           `position:"Query" name:"Password"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	InstanceType         string           `position:"Query" name:"InstanceType"`
+	BusinessInfo         string           `position:"Query" name:"BusinessInfo"`
+	AutoRenewPeriod      string           `position:"Query" name:"AutoRenewPeriod"`
+	Period               string           `position:"Query" name:"Period"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	SrcDBInstanceId      string           `position:"Query" name:"SrcDBInstanceId"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	BackupId             string           `position:"Query" name:"BackupId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	Token                string           `position:"Query" name:"Token"`
+	VSwitchId            string           `position:"Query" name:"VSwitchId"`
+	PrivateIpAddress     string           `position:"Query" name:"PrivateIpAddress"`
+	InstanceName         string           `position:"Query" name:"InstanceName"`
+	AutoRenew            string           `position:"Query" name:"AutoRenew"`
+	VpcId                string           `position:"Query" name:"VpcId"`
+	ZoneId               string           `position:"Query" name:"ZoneId"`
+	ChargeType           string           `position:"Query" name:"ChargeType"`
+	Config               string           `position:"Query" name:"Config"`
+}
+
+// CreateInstanceResponse is the response struct for api CreateInstance
+type CreateInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId        string `json:"RequestId" xml:"RequestId"`
+	InstanceId       string `json:"InstanceId" xml:"InstanceId"`
+	InstanceName     string `json:"InstanceName" xml:"InstanceName"`
+	ConnectionDomain string `json:"ConnectionDomain" xml:"ConnectionDomain"`
+	Port             int    `json:"Port" xml:"Port"`
+	UserName         string `json:"UserName" xml:"UserName"`
+	InstanceStatus   string `json:"InstanceStatus" xml:"InstanceStatus"`
+	RegionId         string `json:"RegionId" xml:"RegionId"`
+	Capacity         int64  `json:"Capacity" xml:"Capacity"`
+	QPS              int64  `json:"QPS" xml:"QPS"`
+	Bandwidth        int64  `json:"Bandwidth" xml:"Bandwidth"`
+	Connections      int64  `json:"Connections" xml:"Connections"`
+	ZoneId           string `json:"ZoneId" xml:"ZoneId"`
+	Config           string `json:"Config" xml:"Config"`
+	ChargeType       string `json:"ChargeType" xml:"ChargeType"`
+	EndTime          string `json:"EndTime" xml:"EndTime"`
+	NodeType         string `json:"NodeType" xml:"NodeType"`
+	NetworkType      string `json:"NetworkType" xml:"NetworkType"`
+	VpcId            string `json:"VpcId" xml:"VpcId"`
+	VSwitchId        string `json:"VSwitchId" xml:"VSwitchId"`
+	PrivateIpAddr    string `json:"PrivateIpAddr" xml:"PrivateIpAddr"`
+}
+
+// CreateCreateInstanceRequest creates a request to invoke CreateInstance API
+func CreateCreateInstanceRequest() (request *CreateInstanceRequest) {
+	request = &CreateInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateInstanceResponse creates a response to parse from CreateInstance response
+func CreateCreateInstanceResponse() (response *CreateInstanceResponse) {
+	response = &CreateInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 140 - 0
services/r_kvstore/create_sharding_instance.go

@@ -0,0 +1,140 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateShardingInstance invokes the r_kvstore.CreateShardingInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createshardinginstance.html
+func (client *Client) CreateShardingInstance(request *CreateShardingInstanceRequest) (response *CreateShardingInstanceResponse, err error) {
+	response = CreateCreateShardingInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateShardingInstanceWithChan invokes the r_kvstore.CreateShardingInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createshardinginstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateShardingInstanceWithChan(request *CreateShardingInstanceRequest) (<-chan *CreateShardingInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateShardingInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateShardingInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateShardingInstanceWithCallback invokes the r_kvstore.CreateShardingInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createshardinginstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateShardingInstanceWithCallback(request *CreateShardingInstanceRequest, callback func(response *CreateShardingInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateShardingInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateShardingInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateShardingInstanceRequest is the request struct for api CreateShardingInstance
+type CreateShardingInstanceRequest struct {
+	*requests.RpcRequest
+	ShardStorageQuantity  requests.Integer `position:"Query" name:"ShardStorageQuantity"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	NodeType              string           `position:"Query" name:"NodeType"`
+	CouponNo              string           `position:"Query" name:"CouponNo"`
+	NetworkType           string           `position:"Query" name:"NetworkType"`
+	EngineVersion         string           `position:"Query" name:"EngineVersion"`
+	InstanceClass         string           `position:"Query" name:"InstanceClass"`
+	Capacity              requests.Integer `position:"Query" name:"Capacity"`
+	Password              string           `position:"Query" name:"Password"`
+	ShardReplicaClass     string           `position:"Query" name:"ShardReplicaClass"`
+	SecurityToken         string           `position:"Query" name:"SecurityToken"`
+	IncrementalBackupMode string           `position:"Query" name:"IncrementalBackupMode"`
+	InstanceType          string           `position:"Query" name:"InstanceType"`
+	BusinessInfo          string           `position:"Query" name:"BusinessInfo"`
+	Period                string           `position:"Query" name:"Period"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	SrcDBInstanceId       string           `position:"Query" name:"SrcDBInstanceId"`
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	BackupId              string           `position:"Query" name:"BackupId"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	Token                 string           `position:"Query" name:"Token"`
+	ShardQuantity         requests.Integer `position:"Query" name:"ShardQuantity"`
+	VSwitchId             string           `position:"Query" name:"VSwitchId"`
+	PrivateIpAddress      string           `position:"Query" name:"PrivateIpAddress"`
+	SecurityIPList        string           `position:"Query" name:"SecurityIPList"`
+	InstanceName          string           `position:"Query" name:"InstanceName"`
+	ShardReplicaQuantity  requests.Integer `position:"Query" name:"ShardReplicaQuantity"`
+	ArchitectureType      string           `position:"Query" name:"ArchitectureType"`
+	VpcId                 string           `position:"Query" name:"VpcId"`
+	RedisManagerClass     string           `position:"Query" name:"RedisManagerClass"`
+	ZoneId                string           `position:"Query" name:"ZoneId"`
+	ChargeType            string           `position:"Query" name:"ChargeType"`
+	ProxyQuantity         requests.Integer `position:"Query" name:"ProxyQuantity"`
+	Config                string           `position:"Query" name:"Config"`
+	ProxyMode             string           `position:"Query" name:"ProxyMode"`
+}
+
+// CreateShardingInstanceResponse is the response struct for api CreateShardingInstance
+type CreateShardingInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId  string                            `json:"RequestId" xml:"RequestId"`
+	InstanceId string                            `json:"InstanceId" xml:"InstanceId"`
+	OrderId    string                            `json:"OrderId" xml:"OrderId"`
+	ShardList  ShardListInCreateShardingInstance `json:"ShardList" xml:"ShardList"`
+}
+
+// CreateCreateShardingInstanceRequest creates a request to invoke CreateShardingInstance API
+func CreateCreateShardingInstanceRequest() (request *CreateShardingInstanceRequest) {
+	request = &CreateShardingInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateShardingInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateShardingInstanceResponse creates a response to parse from CreateShardingInstance response
+func CreateCreateShardingInstanceResponse() (response *CreateShardingInstanceResponse) {
+	response = &CreateShardingInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/create_snapshot.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateSnapshot invokes the r_kvstore.CreateSnapshot API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createsnapshot.html
+func (client *Client) CreateSnapshot(request *CreateSnapshotRequest) (response *CreateSnapshotResponse, err error) {
+	response = CreateCreateSnapshotResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSnapshotWithChan invokes the r_kvstore.CreateSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createsnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSnapshotWithChan(request *CreateSnapshotRequest) (<-chan *CreateSnapshotResponse, <-chan error) {
+	responseChan := make(chan *CreateSnapshotResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSnapshot(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSnapshotWithCallback invokes the r_kvstore.CreateSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createsnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSnapshotWithCallback(request *CreateSnapshotRequest, callback func(response *CreateSnapshotResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSnapshotResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSnapshot(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSnapshotRequest is the request struct for api CreateSnapshot
+type CreateSnapshotRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CreateSnapshotResponse is the response struct for api CreateSnapshot
+type CreateSnapshotResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	SnapshotId string `json:"SnapshotId" xml:"SnapshotId"`
+	Status     string `json:"Status" xml:"Status"`
+}
+
+// CreateCreateSnapshotRequest creates a request to invoke CreateSnapshot API
+func CreateCreateSnapshotRequest() (request *CreateSnapshotRequest) {
+	request = &CreateSnapshotRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateSnapshot", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateSnapshotResponse creates a response to parse from CreateSnapshot response
+func CreateCreateSnapshotResponse() (response *CreateSnapshotResponse) {
+	response = &CreateSnapshotResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/create_static_verification.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateStaticVerification invokes the r_kvstore.CreateStaticVerification API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createstaticverification.html
+func (client *Client) CreateStaticVerification(request *CreateStaticVerificationRequest) (response *CreateStaticVerificationResponse, err error) {
+	response = CreateCreateStaticVerificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateStaticVerificationWithChan invokes the r_kvstore.CreateStaticVerification API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createstaticverification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateStaticVerificationWithChan(request *CreateStaticVerificationRequest) (<-chan *CreateStaticVerificationResponse, <-chan error) {
+	responseChan := make(chan *CreateStaticVerificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateStaticVerification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateStaticVerificationWithCallback invokes the r_kvstore.CreateStaticVerification API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createstaticverification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateStaticVerificationWithCallback(request *CreateStaticVerificationRequest, callback func(response *CreateStaticVerificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateStaticVerificationResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateStaticVerification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateStaticVerificationRequest is the request struct for api CreateStaticVerification
+type CreateStaticVerificationRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken         string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId             string           `position:"Query" name:"ReplicaId"`
+	DestinationInstanceId string           `position:"Query" name:"DestinationInstanceId"`
+	SourceInstanceId      string           `position:"Query" name:"SourceInstanceId"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CreateStaticVerificationResponse is the response struct for api CreateStaticVerification
+type CreateStaticVerificationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateStaticVerificationRequest creates a request to invoke CreateStaticVerification API
+func CreateCreateStaticVerificationRequest() (request *CreateStaticVerificationRequest) {
+	request = &CreateStaticVerificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateStaticVerification", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateStaticVerificationResponse creates a response to parse from CreateStaticVerification response
+func CreateCreateStaticVerificationResponse() (response *CreateStaticVerificationResponse) {
+	response = &CreateStaticVerificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/create_temp_instance.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// CreateTempInstance invokes the r_kvstore.CreateTempInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createtempinstance.html
+func (client *Client) CreateTempInstance(request *CreateTempInstanceRequest) (response *CreateTempInstanceResponse, err error) {
+	response = CreateCreateTempInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateTempInstanceWithChan invokes the r_kvstore.CreateTempInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createtempinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateTempInstanceWithChan(request *CreateTempInstanceRequest) (<-chan *CreateTempInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateTempInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateTempInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateTempInstanceWithCallback invokes the r_kvstore.CreateTempInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/createtempinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateTempInstanceWithCallback(request *CreateTempInstanceRequest, callback func(response *CreateTempInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateTempInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateTempInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateTempInstanceRequest is the request struct for api CreateTempInstance
+type CreateTempInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CreateTempInstanceResponse is the response struct for api CreateTempInstance
+type CreateTempInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	InstanceId     string `json:"InstanceId" xml:"InstanceId"`
+	SnapshotId     string `json:"SnapshotId" xml:"SnapshotId"`
+	TempInstanceId string `json:"TempInstanceId" xml:"TempInstanceId"`
+	Status         string `json:"Status" xml:"Status"`
+}
+
+// CreateCreateTempInstanceRequest creates a request to invoke CreateTempInstance API
+func CreateCreateTempInstanceRequest() (request *CreateTempInstanceRequest) {
+	request = &CreateTempInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "CreateTempInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateCreateTempInstanceResponse creates a response to parse from CreateTempInstance response
+func CreateCreateTempInstanceResponse() (response *CreateTempInstanceResponse) {
+	response = &CreateTempInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/delete_account.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DeleteAccount invokes the r_kvstore.DeleteAccount API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deleteaccount.html
+func (client *Client) DeleteAccount(request *DeleteAccountRequest) (response *DeleteAccountResponse, err error) {
+	response = CreateDeleteAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteAccountWithChan invokes the r_kvstore.DeleteAccount API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deleteaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteAccountWithChan(request *DeleteAccountRequest) (<-chan *DeleteAccountResponse, <-chan error) {
+	responseChan := make(chan *DeleteAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteAccountWithCallback invokes the r_kvstore.DeleteAccount API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deleteaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteAccountWithCallback(request *DeleteAccountRequest, callback func(response *DeleteAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteAccountRequest is the request struct for api DeleteAccount
+type DeleteAccountRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	AccountName          string           `position:"Query" name:"AccountName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteAccountResponse is the response struct for api DeleteAccount
+type DeleteAccountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteAccountRequest creates a request to invoke DeleteAccount API
+func CreateDeleteAccountRequest() (request *DeleteAccountRequest) {
+	request = &DeleteAccountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DeleteAccount", "redisa", "openAPI")
+	return
+}
+
+// CreateDeleteAccountResponse creates a response to parse from DeleteAccount response
+func CreateDeleteAccountResponse() (response *DeleteAccountResponse) {
+	response = &DeleteAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/delete_instance.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// DeleteInstance invokes the r_kvstore.DeleteInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deleteinstance.html
+func (client *Client) DeleteInstance(request *DeleteInstanceRequest) (response *DeleteInstanceResponse, err error) {
+	response = CreateDeleteInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteInstanceWithChan invokes the r_kvstore.DeleteInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deleteinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteInstanceWithChan(request *DeleteInstanceRequest) (<-chan *DeleteInstanceResponse, <-chan error) {
+	responseChan := make(chan *DeleteInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteInstanceWithCallback invokes the r_kvstore.DeleteInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deleteinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteInstanceWithCallback(request *DeleteInstanceRequest, callback func(response *DeleteInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteInstanceRequest is the request struct for api DeleteInstance
+type DeleteInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteInstanceResponse is the response struct for api DeleteInstance
+type DeleteInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteInstanceRequest creates a request to invoke DeleteInstance API
+func CreateDeleteInstanceRequest() (request *DeleteInstanceRequest) {
+	request = &DeleteInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DeleteInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateDeleteInstanceResponse creates a response to parse from DeleteInstance response
+func CreateDeleteInstanceResponse() (response *DeleteInstanceResponse) {
+	response = &DeleteInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/r_kvstore/delete_snapshot.go

@@ -0,0 +1,106 @@
+package r_kvstore
+
+//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"
+)
+
+// DeleteSnapshot invokes the r_kvstore.DeleteSnapshot API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletesnapshot.html
+func (client *Client) DeleteSnapshot(request *DeleteSnapshotRequest) (response *DeleteSnapshotResponse, err error) {
+	response = CreateDeleteSnapshotResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteSnapshotWithChan invokes the r_kvstore.DeleteSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletesnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSnapshotWithChan(request *DeleteSnapshotRequest) (<-chan *DeleteSnapshotResponse, <-chan error) {
+	responseChan := make(chan *DeleteSnapshotResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteSnapshot(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteSnapshotWithCallback invokes the r_kvstore.DeleteSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletesnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSnapshotWithCallback(request *DeleteSnapshotRequest, callback func(response *DeleteSnapshotResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteSnapshotResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteSnapshot(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteSnapshotRequest is the request struct for api DeleteSnapshot
+type DeleteSnapshotRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteSnapshotResponse is the response struct for api DeleteSnapshot
+type DeleteSnapshotResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteSnapshotRequest creates a request to invoke DeleteSnapshot API
+func CreateDeleteSnapshotRequest() (request *DeleteSnapshotRequest) {
+	request = &DeleteSnapshotRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DeleteSnapshot", "redisa", "openAPI")
+	return
+}
+
+// CreateDeleteSnapshotResponse creates a response to parse from DeleteSnapshot response
+func CreateDeleteSnapshotResponse() (response *DeleteSnapshotResponse) {
+	response = &DeleteSnapshotResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/r_kvstore/delete_snapshot_settings.go

@@ -0,0 +1,106 @@
+package r_kvstore
+
+//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"
+)
+
+// DeleteSnapshotSettings invokes the r_kvstore.DeleteSnapshotSettings API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletesnapshotsettings.html
+func (client *Client) DeleteSnapshotSettings(request *DeleteSnapshotSettingsRequest) (response *DeleteSnapshotSettingsResponse, err error) {
+	response = CreateDeleteSnapshotSettingsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteSnapshotSettingsWithChan invokes the r_kvstore.DeleteSnapshotSettings API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletesnapshotsettings.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSnapshotSettingsWithChan(request *DeleteSnapshotSettingsRequest) (<-chan *DeleteSnapshotSettingsResponse, <-chan error) {
+	responseChan := make(chan *DeleteSnapshotSettingsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteSnapshotSettings(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteSnapshotSettingsWithCallback invokes the r_kvstore.DeleteSnapshotSettings API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletesnapshotsettings.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSnapshotSettingsWithCallback(request *DeleteSnapshotSettingsRequest, callback func(response *DeleteSnapshotSettingsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteSnapshotSettingsResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteSnapshotSettings(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteSnapshotSettingsRequest is the request struct for api DeleteSnapshotSettings
+type DeleteSnapshotSettingsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteSnapshotSettingsResponse is the response struct for api DeleteSnapshotSettings
+type DeleteSnapshotSettingsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteSnapshotSettingsRequest creates a request to invoke DeleteSnapshotSettings API
+func CreateDeleteSnapshotSettingsRequest() (request *DeleteSnapshotSettingsRequest) {
+	request = &DeleteSnapshotSettingsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DeleteSnapshotSettings", "redisa", "openAPI")
+	return
+}
+
+// CreateDeleteSnapshotSettingsResponse creates a response to parse from DeleteSnapshotSettings response
+func CreateDeleteSnapshotSettingsResponse() (response *DeleteSnapshotSettingsResponse) {
+	response = &DeleteSnapshotSettingsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/r_kvstore/delete_temp_instance.go

@@ -0,0 +1,106 @@
+package r_kvstore
+
+//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"
+)
+
+// DeleteTempInstance invokes the r_kvstore.DeleteTempInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletetempinstance.html
+func (client *Client) DeleteTempInstance(request *DeleteTempInstanceRequest) (response *DeleteTempInstanceResponse, err error) {
+	response = CreateDeleteTempInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteTempInstanceWithChan invokes the r_kvstore.DeleteTempInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletetempinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteTempInstanceWithChan(request *DeleteTempInstanceRequest) (<-chan *DeleteTempInstanceResponse, <-chan error) {
+	responseChan := make(chan *DeleteTempInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteTempInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteTempInstanceWithCallback invokes the r_kvstore.DeleteTempInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/deletetempinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteTempInstanceWithCallback(request *DeleteTempInstanceRequest, callback func(response *DeleteTempInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteTempInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteTempInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteTempInstanceRequest is the request struct for api DeleteTempInstance
+type DeleteTempInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteTempInstanceResponse is the response struct for api DeleteTempInstance
+type DeleteTempInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteTempInstanceRequest creates a request to invoke DeleteTempInstance API
+func CreateDeleteTempInstanceRequest() (request *DeleteTempInstanceRequest) {
+	request = &DeleteTempInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DeleteTempInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateDeleteTempInstanceResponse creates a response to parse from DeleteTempInstance response
+func CreateDeleteTempInstanceResponse() (response *DeleteTempInstanceResponse) {
+	response = &DeleteTempInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_accounts.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeAccounts invokes the r_kvstore.DescribeAccounts API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeaccounts.html
+func (client *Client) DescribeAccounts(request *DescribeAccountsRequest) (response *DescribeAccountsResponse, err error) {
+	response = CreateDescribeAccountsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeAccountsWithChan invokes the r_kvstore.DescribeAccounts API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeaccounts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAccountsWithChan(request *DescribeAccountsRequest) (<-chan *DescribeAccountsResponse, <-chan error) {
+	responseChan := make(chan *DescribeAccountsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeAccounts(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeAccountsWithCallback invokes the r_kvstore.DescribeAccounts API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeaccounts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAccountsWithCallback(request *DescribeAccountsRequest, callback func(response *DescribeAccountsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeAccountsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeAccounts(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeAccountsRequest is the request struct for api DescribeAccounts
+type DescribeAccountsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	AccountName          string           `position:"Query" name:"AccountName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeAccountsResponse is the response struct for api DescribeAccounts
+type DescribeAccountsResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Accounts  AccountsInDescribeAccounts `json:"Accounts" xml:"Accounts"`
+}
+
+// CreateDescribeAccountsRequest creates a request to invoke DescribeAccounts API
+func CreateDescribeAccountsRequest() (request *DescribeAccountsRequest) {
+	request = &DescribeAccountsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeAccounts", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeAccountsResponse creates a response to parse from DescribeAccounts response
+func CreateDescribeAccountsResponse() (response *DescribeAccountsResponse) {
+	response = &DescribeAccountsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/r_kvstore/describe_active_operation_task.go

@@ -0,0 +1,116 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeActiveOperationTask invokes the r_kvstore.DescribeActiveOperationTask API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtask.html
+func (client *Client) DescribeActiveOperationTask(request *DescribeActiveOperationTaskRequest) (response *DescribeActiveOperationTaskResponse, err error) {
+	response = CreateDescribeActiveOperationTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeActiveOperationTaskWithChan invokes the r_kvstore.DescribeActiveOperationTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskWithChan(request *DescribeActiveOperationTaskRequest) (<-chan *DescribeActiveOperationTaskResponse, <-chan error) {
+	responseChan := make(chan *DescribeActiveOperationTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeActiveOperationTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeActiveOperationTaskWithCallback invokes the r_kvstore.DescribeActiveOperationTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskWithCallback(request *DescribeActiveOperationTaskRequest, callback func(response *DescribeActiveOperationTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeActiveOperationTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeActiveOperationTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeActiveOperationTaskRequest is the request struct for api DescribeActiveOperationTask
+type DescribeActiveOperationTaskRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	TaskType             string           `position:"Query" name:"TaskType"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	IsHistory            requests.Integer `position:"Query" name:"IsHistory"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	Region               string           `position:"Query" name:"Region"`
+}
+
+// DescribeActiveOperationTaskResponse is the response struct for api DescribeActiveOperationTask
+type DescribeActiveOperationTaskResponse struct {
+	*responses.BaseResponse
+	RequestId        string      `json:"RequestId" xml:"RequestId"`
+	TotalRecordCount int         `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageSize         int         `json:"PageSize" xml:"PageSize"`
+	PageNumber       int         `json:"PageNumber" xml:"PageNumber"`
+	Items            []ItemsItem `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeActiveOperationTaskRequest creates a request to invoke DescribeActiveOperationTask API
+func CreateDescribeActiveOperationTaskRequest() (request *DescribeActiveOperationTaskRequest) {
+	request = &DescribeActiveOperationTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeActiveOperationTask", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeActiveOperationTaskResponse creates a response to parse from DescribeActiveOperationTask response
+func CreateDescribeActiveOperationTaskResponse() (response *DescribeActiveOperationTaskResponse) {
+	response = &DescribeActiveOperationTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_active_operation_task_count.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeActiveOperationTaskCount invokes the r_kvstore.DescribeActiveOperationTaskCount API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtaskcount.html
+func (client *Client) DescribeActiveOperationTaskCount(request *DescribeActiveOperationTaskCountRequest) (response *DescribeActiveOperationTaskCountResponse, err error) {
+	response = CreateDescribeActiveOperationTaskCountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeActiveOperationTaskCountWithChan invokes the r_kvstore.DescribeActiveOperationTaskCount API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtaskcount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskCountWithChan(request *DescribeActiveOperationTaskCountRequest) (<-chan *DescribeActiveOperationTaskCountResponse, <-chan error) {
+	responseChan := make(chan *DescribeActiveOperationTaskCountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeActiveOperationTaskCount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeActiveOperationTaskCountWithCallback invokes the r_kvstore.DescribeActiveOperationTaskCount API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtaskcount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskCountWithCallback(request *DescribeActiveOperationTaskCountRequest, callback func(response *DescribeActiveOperationTaskCountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeActiveOperationTaskCountResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeActiveOperationTaskCount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeActiveOperationTaskCountRequest is the request struct for api DescribeActiveOperationTaskCount
+type DescribeActiveOperationTaskCountRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeActiveOperationTaskCountResponse is the response struct for api DescribeActiveOperationTaskCount
+type DescribeActiveOperationTaskCountResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	TaskCount int    `json:"TaskCount" xml:"TaskCount"`
+	NeedPop   int    `json:"NeedPop" xml:"NeedPop"`
+}
+
+// CreateDescribeActiveOperationTaskCountRequest creates a request to invoke DescribeActiveOperationTaskCount API
+func CreateDescribeActiveOperationTaskCountRequest() (request *DescribeActiveOperationTaskCountRequest) {
+	request = &DescribeActiveOperationTaskCountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeActiveOperationTaskCount", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeActiveOperationTaskCountResponse creates a response to parse from DescribeActiveOperationTaskCount response
+func CreateDescribeActiveOperationTaskCountResponse() (response *DescribeActiveOperationTaskCountResponse) {
+	response = &DescribeActiveOperationTaskCountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_active_operation_task_region.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeActiveOperationTaskRegion invokes the r_kvstore.DescribeActiveOperationTaskRegion API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtaskregion.html
+func (client *Client) DescribeActiveOperationTaskRegion(request *DescribeActiveOperationTaskRegionRequest) (response *DescribeActiveOperationTaskRegionResponse, err error) {
+	response = CreateDescribeActiveOperationTaskRegionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeActiveOperationTaskRegionWithChan invokes the r_kvstore.DescribeActiveOperationTaskRegion API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtaskregion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskRegionWithChan(request *DescribeActiveOperationTaskRegionRequest) (<-chan *DescribeActiveOperationTaskRegionResponse, <-chan error) {
+	responseChan := make(chan *DescribeActiveOperationTaskRegionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeActiveOperationTaskRegion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeActiveOperationTaskRegionWithCallback invokes the r_kvstore.DescribeActiveOperationTaskRegion API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtaskregion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskRegionWithCallback(request *DescribeActiveOperationTaskRegionRequest, callback func(response *DescribeActiveOperationTaskRegionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeActiveOperationTaskRegionResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeActiveOperationTaskRegion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeActiveOperationTaskRegionRequest is the request struct for api DescribeActiveOperationTaskRegion
+type DescribeActiveOperationTaskRegionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	IsHistory            requests.Integer `position:"Query" name:"IsHistory"`
+	TaskType             string           `position:"Query" name:"TaskType"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeActiveOperationTaskRegionResponse is the response struct for api DescribeActiveOperationTaskRegion
+type DescribeActiveOperationTaskRegionResponse struct {
+	*responses.BaseResponse
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	RegionList []Items `json:"RegionList" xml:"RegionList"`
+}
+
+// CreateDescribeActiveOperationTaskRegionRequest creates a request to invoke DescribeActiveOperationTaskRegion API
+func CreateDescribeActiveOperationTaskRegionRequest() (request *DescribeActiveOperationTaskRegionRequest) {
+	request = &DescribeActiveOperationTaskRegionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeActiveOperationTaskRegion", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeActiveOperationTaskRegionResponse creates a response to parse from DescribeActiveOperationTaskRegion response
+func CreateDescribeActiveOperationTaskRegionResponse() (response *DescribeActiveOperationTaskRegionResponse) {
+	response = &DescribeActiveOperationTaskRegionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_active_operation_task_type.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeActiveOperationTaskType invokes the r_kvstore.DescribeActiveOperationTaskType API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtasktype.html
+func (client *Client) DescribeActiveOperationTaskType(request *DescribeActiveOperationTaskTypeRequest) (response *DescribeActiveOperationTaskTypeResponse, err error) {
+	response = CreateDescribeActiveOperationTaskTypeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeActiveOperationTaskTypeWithChan invokes the r_kvstore.DescribeActiveOperationTaskType API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtasktype.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskTypeWithChan(request *DescribeActiveOperationTaskTypeRequest) (<-chan *DescribeActiveOperationTaskTypeResponse, <-chan error) {
+	responseChan := make(chan *DescribeActiveOperationTaskTypeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeActiveOperationTaskType(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeActiveOperationTaskTypeWithCallback invokes the r_kvstore.DescribeActiveOperationTaskType API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeactiveoperationtasktype.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeActiveOperationTaskTypeWithCallback(request *DescribeActiveOperationTaskTypeRequest, callback func(response *DescribeActiveOperationTaskTypeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeActiveOperationTaskTypeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeActiveOperationTaskType(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeActiveOperationTaskTypeRequest is the request struct for api DescribeActiveOperationTaskType
+type DescribeActiveOperationTaskTypeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	IsHistory            requests.Integer `position:"Query" name:"IsHistory"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeActiveOperationTaskTypeResponse is the response struct for api DescribeActiveOperationTaskType
+type DescribeActiveOperationTaskTypeResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	TypeList  []Items `json:"TypeList" xml:"TypeList"`
+}
+
+// CreateDescribeActiveOperationTaskTypeRequest creates a request to invoke DescribeActiveOperationTaskType API
+func CreateDescribeActiveOperationTaskTypeRequest() (request *DescribeActiveOperationTaskTypeRequest) {
+	request = &DescribeActiveOperationTaskTypeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeActiveOperationTaskType", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeActiveOperationTaskTypeResponse creates a response to parse from DescribeActiveOperationTaskType response
+func CreateDescribeActiveOperationTaskTypeResponse() (response *DescribeActiveOperationTaskTypeResponse) {
+	response = &DescribeActiveOperationTaskTypeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 124 - 0
services/r_kvstore/describe_audit_records.go

@@ -0,0 +1,124 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeAuditRecords invokes the r_kvstore.DescribeAuditRecords API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeauditrecords.html
+func (client *Client) DescribeAuditRecords(request *DescribeAuditRecordsRequest) (response *DescribeAuditRecordsResponse, err error) {
+	response = CreateDescribeAuditRecordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeAuditRecordsWithChan invokes the r_kvstore.DescribeAuditRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeauditrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAuditRecordsWithChan(request *DescribeAuditRecordsRequest) (<-chan *DescribeAuditRecordsResponse, <-chan error) {
+	responseChan := make(chan *DescribeAuditRecordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeAuditRecords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeAuditRecordsWithCallback invokes the r_kvstore.DescribeAuditRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeauditrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAuditRecordsWithCallback(request *DescribeAuditRecordsRequest, callback func(response *DescribeAuditRecordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeAuditRecordsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeAuditRecords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeAuditRecordsRequest is the request struct for api DescribeAuditRecords
+type DescribeAuditRecordsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	QueryKeywords        string           `position:"Query" name:"QueryKeywords"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	HostAddress          string           `position:"Query" name:"HostAddress"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	AccountName          string           `position:"Query" name:"AccountName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	DatabaseName         string           `position:"Query" name:"DatabaseName"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeAuditRecordsResponse is the response struct for api DescribeAuditRecords
+type DescribeAuditRecordsResponse struct {
+	*responses.BaseResponse
+	RequestId        string                      `json:"RequestId" xml:"RequestId"`
+	PageNumber       int                         `json:"PageNumber" xml:"PageNumber"`
+	PageSize         int                         `json:"PageSize" xml:"PageSize"`
+	TotalRecordCount int                         `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	InstanceName     string                      `json:"InstanceName" xml:"InstanceName"`
+	StartTime        string                      `json:"StartTime" xml:"StartTime"`
+	EndTime          string                      `json:"EndTime" xml:"EndTime"`
+	Items            ItemsInDescribeAuditRecords `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeAuditRecordsRequest creates a request to invoke DescribeAuditRecords API
+func CreateDescribeAuditRecordsRequest() (request *DescribeAuditRecordsRequest) {
+	request = &DescribeAuditRecordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeAuditRecords", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeAuditRecordsResponse creates a response to parse from DescribeAuditRecords response
+func CreateDescribeAuditRecordsResponse() (response *DescribeAuditRecordsResponse) {
+	response = &DescribeAuditRecordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/describe_available_resource.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeAvailableResource invokes the r_kvstore.DescribeAvailableResource API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeavailableresource.html
+func (client *Client) DescribeAvailableResource(request *DescribeAvailableResourceRequest) (response *DescribeAvailableResourceResponse, err error) {
+	response = CreateDescribeAvailableResourceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeAvailableResourceWithChan invokes the r_kvstore.DescribeAvailableResource API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeavailableresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAvailableResourceWithChan(request *DescribeAvailableResourceRequest) (<-chan *DescribeAvailableResourceResponse, <-chan error) {
+	responseChan := make(chan *DescribeAvailableResourceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeAvailableResource(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeAvailableResourceWithCallback invokes the r_kvstore.DescribeAvailableResource API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeavailableresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeAvailableResourceWithCallback(request *DescribeAvailableResourceRequest, callback func(response *DescribeAvailableResourceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeAvailableResourceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeAvailableResource(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeAvailableResourceRequest is the request struct for api DescribeAvailableResource
+type DescribeAvailableResourceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ZoneId               string           `position:"Query" name:"ZoneId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	InstanceChargeType   string           `position:"Query" name:"InstanceChargeType"`
+	OrderType            string           `position:"Query" name:"OrderType"`
+}
+
+// DescribeAvailableResourceResponse is the response struct for api DescribeAvailableResource
+type DescribeAvailableResourceResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	AvailableZones AvailableZones `json:"AvailableZones" xml:"AvailableZones"`
+}
+
+// CreateDescribeAvailableResourceRequest creates a request to invoke DescribeAvailableResource API
+func CreateDescribeAvailableResourceRequest() (request *DescribeAvailableResourceRequest) {
+	request = &DescribeAvailableResourceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeAvailableResource", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeAvailableResourceResponse creates a response to parse from DescribeAvailableResource response
+func CreateDescribeAvailableResourceResponse() (response *DescribeAvailableResourceResponse) {
+	response = &DescribeAvailableResourceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/describe_backup_policy.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeBackupPolicy invokes the r_kvstore.DescribeBackupPolicy API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describebackuppolicy.html
+func (client *Client) DescribeBackupPolicy(request *DescribeBackupPolicyRequest) (response *DescribeBackupPolicyResponse, err error) {
+	response = CreateDescribeBackupPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupPolicyWithChan invokes the r_kvstore.DescribeBackupPolicy API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describebackuppolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupPolicyWithChan(request *DescribeBackupPolicyRequest) (<-chan *DescribeBackupPolicyResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackupPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupPolicyWithCallback invokes the r_kvstore.DescribeBackupPolicy API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describebackuppolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupPolicyWithCallback(request *DescribeBackupPolicyRequest, callback func(response *DescribeBackupPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackupPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupPolicyRequest is the request struct for api DescribeBackupPolicy
+type DescribeBackupPolicyRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeBackupPolicyResponse is the response struct for api DescribeBackupPolicy
+type DescribeBackupPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId               string `json:"RequestId" xml:"RequestId"`
+	BackupRetentionPeriod   string `json:"BackupRetentionPeriod" xml:"BackupRetentionPeriod"`
+	PreferredBackupTime     string `json:"PreferredBackupTime" xml:"PreferredBackupTime"`
+	PreferredBackupPeriod   string `json:"PreferredBackupPeriod" xml:"PreferredBackupPeriod"`
+	PreferredNextBackupTime string `json:"PreferredNextBackupTime" xml:"PreferredNextBackupTime"`
+}
+
+// CreateDescribeBackupPolicyRequest creates a request to invoke DescribeBackupPolicy API
+func CreateDescribeBackupPolicyRequest() (request *DescribeBackupPolicyRequest) {
+	request = &DescribeBackupPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeBackupPolicy", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeBackupPolicyResponse creates a response to parse from DescribeBackupPolicy response
+func CreateDescribeBackupPolicyResponse() (response *DescribeBackupPolicyResponse) {
+	response = &DescribeBackupPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/r_kvstore/describe_backups.go

@@ -0,0 +1,117 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeBackups invokes the r_kvstore.DescribeBackups API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describebackups.html
+func (client *Client) DescribeBackups(request *DescribeBackupsRequest) (response *DescribeBackupsResponse, err error) {
+	response = CreateDescribeBackupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBackupsWithChan invokes the r_kvstore.DescribeBackups API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describebackups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupsWithChan(request *DescribeBackupsRequest) (<-chan *DescribeBackupsResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBackupsWithCallback invokes the r_kvstore.DescribeBackups API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describebackups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBackupsWithCallback(request *DescribeBackupsRequest, callback func(response *DescribeBackupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackupsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBackupsRequest is the request struct for api DescribeBackups
+type DescribeBackupsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	BackupId             requests.Integer `position:"Query" name:"BackupId"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// DescribeBackupsResponse is the response struct for api DescribeBackups
+type DescribeBackupsResponse struct {
+	*responses.BaseResponse
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	PageNumber int     `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int     `json:"PageSize" xml:"PageSize"`
+	TotalCount int     `json:"TotalCount" xml:"TotalCount"`
+	Backups    Backups `json:"Backups" xml:"Backups"`
+}
+
+// CreateDescribeBackupsRequest creates a request to invoke DescribeBackups API
+func CreateDescribeBackupsRequest() (request *DescribeBackupsRequest) {
+	request = &DescribeBackupsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeBackups", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeBackupsResponse creates a response to parse from DescribeBackups response
+func CreateDescribeBackupsResponse() (response *DescribeBackupsResponse) {
+	response = &DescribeBackupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 119 - 0
services/r_kvstore/describe_cache_analysis_report.go

@@ -0,0 +1,119 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeCacheAnalysisReport invokes the r_kvstore.DescribeCacheAnalysisReport API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecacheanalysisreport.html
+func (client *Client) DescribeCacheAnalysisReport(request *DescribeCacheAnalysisReportRequest) (response *DescribeCacheAnalysisReportResponse, err error) {
+	response = CreateDescribeCacheAnalysisReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCacheAnalysisReportWithChan invokes the r_kvstore.DescribeCacheAnalysisReport API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecacheanalysisreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCacheAnalysisReportWithChan(request *DescribeCacheAnalysisReportRequest) (<-chan *DescribeCacheAnalysisReportResponse, <-chan error) {
+	responseChan := make(chan *DescribeCacheAnalysisReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCacheAnalysisReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCacheAnalysisReportWithCallback invokes the r_kvstore.DescribeCacheAnalysisReport API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecacheanalysisreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCacheAnalysisReportWithCallback(request *DescribeCacheAnalysisReportRequest, callback func(response *DescribeCacheAnalysisReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCacheAnalysisReportResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCacheAnalysisReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCacheAnalysisReportRequest is the request struct for api DescribeCacheAnalysisReport
+type DescribeCacheAnalysisReportRequest struct {
+	*requests.RpcRequest
+	Date                 string           `position:"Query" name:"Date"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	AnalysisType         string           `position:"Query" name:"AnalysisType"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	PageNumbers          requests.Integer `position:"Query" name:"PageNumbers"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeCacheAnalysisReportResponse is the response struct for api DescribeCacheAnalysisReport
+type DescribeCacheAnalysisReportResponse struct {
+	*responses.BaseResponse
+	RequestId        string `json:"RequestId" xml:"RequestId"`
+	TotalRecordCount int    `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageSize         int    `json:"PageSize" xml:"PageSize"`
+	PageNumber       int    `json:"PageNumber" xml:"PageNumber"`
+	PageRecordCount  int    `json:"PageRecordCount" xml:"PageRecordCount"`
+	HotKeys          string `json:"HotKeys" xml:"HotKeys"`
+	BigKeys          string `json:"BigKeys" xml:"BigKeys"`
+}
+
+// CreateDescribeCacheAnalysisReportRequest creates a request to invoke DescribeCacheAnalysisReport API
+func CreateDescribeCacheAnalysisReportRequest() (request *DescribeCacheAnalysisReportRequest) {
+	request = &DescribeCacheAnalysisReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeCacheAnalysisReport", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeCacheAnalysisReportResponse creates a response to parse from DescribeCacheAnalysisReport response
+func CreateDescribeCacheAnalysisReportResponse() (response *DescribeCacheAnalysisReportResponse) {
+	response = &DescribeCacheAnalysisReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/r_kvstore/describe_cache_analysis_report_list.go

@@ -0,0 +1,117 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeCacheAnalysisReportList invokes the r_kvstore.DescribeCacheAnalysisReportList API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecacheanalysisreportlist.html
+func (client *Client) DescribeCacheAnalysisReportList(request *DescribeCacheAnalysisReportListRequest) (response *DescribeCacheAnalysisReportListResponse, err error) {
+	response = CreateDescribeCacheAnalysisReportListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCacheAnalysisReportListWithChan invokes the r_kvstore.DescribeCacheAnalysisReportList API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecacheanalysisreportlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCacheAnalysisReportListWithChan(request *DescribeCacheAnalysisReportListRequest) (<-chan *DescribeCacheAnalysisReportListResponse, <-chan error) {
+	responseChan := make(chan *DescribeCacheAnalysisReportListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCacheAnalysisReportList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCacheAnalysisReportListWithCallback invokes the r_kvstore.DescribeCacheAnalysisReportList API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecacheanalysisreportlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCacheAnalysisReportListWithCallback(request *DescribeCacheAnalysisReportListRequest, callback func(response *DescribeCacheAnalysisReportListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCacheAnalysisReportListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCacheAnalysisReportList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCacheAnalysisReportListRequest is the request struct for api DescribeCacheAnalysisReportList
+type DescribeCacheAnalysisReportListRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	PageNumbers          requests.Integer `position:"Query" name:"PageNumbers"`
+	Days                 requests.Integer `position:"Query" name:"Days"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeCacheAnalysisReportListResponse is the response struct for api DescribeCacheAnalysisReportList
+type DescribeCacheAnalysisReportListResponse struct {
+	*responses.BaseResponse
+	RequestId        string     `json:"RequestId" xml:"RequestId"`
+	InstanceId       string     `json:"InstanceId" xml:"InstanceId"`
+	TotalRecordCount int        `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageNumbers      int        `json:"PageNumbers" xml:"PageNumbers"`
+	PageRecordCount  int        `json:"PageRecordCount" xml:"PageRecordCount"`
+	DailyTasks       DailyTasks `json:"DailyTasks" xml:"DailyTasks"`
+}
+
+// CreateDescribeCacheAnalysisReportListRequest creates a request to invoke DescribeCacheAnalysisReportList API
+func CreateDescribeCacheAnalysisReportListRequest() (request *DescribeCacheAnalysisReportListRequest) {
+	request = &DescribeCacheAnalysisReportListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeCacheAnalysisReportList", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeCacheAnalysisReportListResponse creates a response to parse from DescribeCacheAnalysisReportList response
+func CreateDescribeCacheAnalysisReportListResponse() (response *DescribeCacheAnalysisReportListResponse) {
+	response = &DescribeCacheAnalysisReportListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_certification.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeCertification invokes the r_kvstore.DescribeCertification API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecertification.html
+func (client *Client) DescribeCertification(request *DescribeCertificationRequest) (response *DescribeCertificationResponse, err error) {
+	response = CreateDescribeCertificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCertificationWithChan invokes the r_kvstore.DescribeCertification API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecertification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCertificationWithChan(request *DescribeCertificationRequest) (<-chan *DescribeCertificationResponse, <-chan error) {
+	responseChan := make(chan *DescribeCertificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCertification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCertificationWithCallback invokes the r_kvstore.DescribeCertification API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describecertification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCertificationWithCallback(request *DescribeCertificationRequest, callback func(response *DescribeCertificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCertificationResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCertification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCertificationRequest is the request struct for api DescribeCertification
+type DescribeCertificationRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	Parameters           string           `position:"Query" name:"Parameters"`
+}
+
+// DescribeCertificationResponse is the response struct for api DescribeCertification
+type DescribeCertificationResponse struct {
+	*responses.BaseResponse
+	RequestId       string `json:"RequestId" xml:"RequestId"`
+	NoCertification bool   `json:"NoCertification" xml:"NoCertification"`
+}
+
+// CreateDescribeCertificationRequest creates a request to invoke DescribeCertification API
+func CreateDescribeCertificationRequest() (request *DescribeCertificationRequest) {
+	request = &DescribeCertificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeCertification", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeCertificationResponse creates a response to parse from DescribeCertification response
+func CreateDescribeCertificationResponse() (response *DescribeCertificationResponse) {
+	response = &DescribeCertificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_db_instance_monitor.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeDBInstanceMonitor invokes the r_kvstore.DescribeDBInstanceMonitor API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describedbinstancemonitor.html
+func (client *Client) DescribeDBInstanceMonitor(request *DescribeDBInstanceMonitorRequest) (response *DescribeDBInstanceMonitorResponse, err error) {
+	response = CreateDescribeDBInstanceMonitorResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDBInstanceMonitorWithChan invokes the r_kvstore.DescribeDBInstanceMonitor API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describedbinstancemonitor.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDBInstanceMonitorWithChan(request *DescribeDBInstanceMonitorRequest) (<-chan *DescribeDBInstanceMonitorResponse, <-chan error) {
+	responseChan := make(chan *DescribeDBInstanceMonitorResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDBInstanceMonitor(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDBInstanceMonitorWithCallback invokes the r_kvstore.DescribeDBInstanceMonitor API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describedbinstancemonitor.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDBInstanceMonitorWithCallback(request *DescribeDBInstanceMonitorRequest, callback func(response *DescribeDBInstanceMonitorResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDBInstanceMonitorResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDBInstanceMonitor(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDBInstanceMonitorRequest is the request struct for api DescribeDBInstanceMonitor
+type DescribeDBInstanceMonitorRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeDBInstanceMonitorResponse is the response struct for api DescribeDBInstanceMonitor
+type DescribeDBInstanceMonitorResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Interval  string `json:"Interval" xml:"Interval"`
+}
+
+// CreateDescribeDBInstanceMonitorRequest creates a request to invoke DescribeDBInstanceMonitor API
+func CreateDescribeDBInstanceMonitorRequest() (request *DescribeDBInstanceMonitorRequest) {
+	request = &DescribeDBInstanceMonitorRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeDBInstanceMonitor", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeDBInstanceMonitorResponse creates a response to parse from DescribeDBInstanceMonitor response
+func CreateDescribeDBInstanceMonitorResponse() (response *DescribeDBInstanceMonitorResponse) {
+	response = &DescribeDBInstanceMonitorResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_db_instance_net_info.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeDBInstanceNetInfo invokes the r_kvstore.DescribeDBInstanceNetInfo API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describedbinstancenetinfo.html
+func (client *Client) DescribeDBInstanceNetInfo(request *DescribeDBInstanceNetInfoRequest) (response *DescribeDBInstanceNetInfoResponse, err error) {
+	response = CreateDescribeDBInstanceNetInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDBInstanceNetInfoWithChan invokes the r_kvstore.DescribeDBInstanceNetInfo API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describedbinstancenetinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDBInstanceNetInfoWithChan(request *DescribeDBInstanceNetInfoRequest) (<-chan *DescribeDBInstanceNetInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeDBInstanceNetInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDBInstanceNetInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDBInstanceNetInfoWithCallback invokes the r_kvstore.DescribeDBInstanceNetInfo API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describedbinstancenetinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDBInstanceNetInfoWithCallback(request *DescribeDBInstanceNetInfoRequest, callback func(response *DescribeDBInstanceNetInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDBInstanceNetInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDBInstanceNetInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDBInstanceNetInfoRequest is the request struct for api DescribeDBInstanceNetInfo
+type DescribeDBInstanceNetInfoRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeDBInstanceNetInfoResponse is the response struct for api DescribeDBInstanceNetInfo
+type DescribeDBInstanceNetInfoResponse struct {
+	*responses.BaseResponse
+	RequestId           string                                  `json:"RequestId" xml:"RequestId"`
+	InstanceNetworkType string                                  `json:"InstanceNetworkType" xml:"InstanceNetworkType"`
+	NetInfoItems        NetInfoItemsInDescribeDBInstanceNetInfo `json:"NetInfoItems" xml:"NetInfoItems"`
+}
+
+// CreateDescribeDBInstanceNetInfoRequest creates a request to invoke DescribeDBInstanceNetInfo API
+func CreateDescribeDBInstanceNetInfoRequest() (request *DescribeDBInstanceNetInfoRequest) {
+	request = &DescribeDBInstanceNetInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeDBInstanceNetInfo", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeDBInstanceNetInfoResponse creates a response to parse from DescribeDBInstanceNetInfo response
+func CreateDescribeDBInstanceNetInfoResponse() (response *DescribeDBInstanceNetInfoResponse) {
+	response = &DescribeDBInstanceNetInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 121 - 0
services/r_kvstore/describe_error_log_records.go

@@ -0,0 +1,121 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeErrorLogRecords invokes the r_kvstore.DescribeErrorLogRecords API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeerrorlogrecords.html
+func (client *Client) DescribeErrorLogRecords(request *DescribeErrorLogRecordsRequest) (response *DescribeErrorLogRecordsResponse, err error) {
+	response = CreateDescribeErrorLogRecordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeErrorLogRecordsWithChan invokes the r_kvstore.DescribeErrorLogRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeerrorlogrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeErrorLogRecordsWithChan(request *DescribeErrorLogRecordsRequest) (<-chan *DescribeErrorLogRecordsResponse, <-chan error) {
+	responseChan := make(chan *DescribeErrorLogRecordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeErrorLogRecords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeErrorLogRecordsWithCallback invokes the r_kvstore.DescribeErrorLogRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeerrorlogrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeErrorLogRecordsWithCallback(request *DescribeErrorLogRecordsRequest, callback func(response *DescribeErrorLogRecordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeErrorLogRecordsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeErrorLogRecords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeErrorLogRecordsRequest is the request struct for api DescribeErrorLogRecords
+type DescribeErrorLogRecordsRequest struct {
+	*requests.RpcRequest
+	SQLId                requests.Integer `position:"Query" name:"SQLId"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	DBName               string           `position:"Query" name:"DBName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	RoleType             string           `position:"Query" name:"RoleType"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeErrorLogRecordsResponse is the response struct for api DescribeErrorLogRecords
+type DescribeErrorLogRecordsResponse struct {
+	*responses.BaseResponse
+	RequestId        string                         `json:"RequestId" xml:"RequestId"`
+	Engine           string                         `json:"Engine" xml:"Engine"`
+	TotalRecordCount int                            `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageNumber       int                            `json:"PageNumber" xml:"PageNumber"`
+	PageRecordCount  int                            `json:"PageRecordCount" xml:"PageRecordCount"`
+	Items            ItemsInDescribeErrorLogRecords `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeErrorLogRecordsRequest creates a request to invoke DescribeErrorLogRecords API
+func CreateDescribeErrorLogRecordsRequest() (request *DescribeErrorLogRecordsRequest) {
+	request = &DescribeErrorLogRecordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeErrorLogRecords", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeErrorLogRecordsResponse creates a response to parse from DescribeErrorLogRecords response
+func CreateDescribeErrorLogRecordsResponse() (response *DescribeErrorLogRecordsResponse) {
+	response = &DescribeErrorLogRecordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/r_kvstore/describe_history_monitor_values.go

@@ -0,0 +1,114 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeHistoryMonitorValues invokes the r_kvstore.DescribeHistoryMonitorValues API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describehistorymonitorvalues.html
+func (client *Client) DescribeHistoryMonitorValues(request *DescribeHistoryMonitorValuesRequest) (response *DescribeHistoryMonitorValuesResponse, err error) {
+	response = CreateDescribeHistoryMonitorValuesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeHistoryMonitorValuesWithChan invokes the r_kvstore.DescribeHistoryMonitorValues API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describehistorymonitorvalues.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHistoryMonitorValuesWithChan(request *DescribeHistoryMonitorValuesRequest) (<-chan *DescribeHistoryMonitorValuesResponse, <-chan error) {
+	responseChan := make(chan *DescribeHistoryMonitorValuesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeHistoryMonitorValues(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeHistoryMonitorValuesWithCallback invokes the r_kvstore.DescribeHistoryMonitorValues API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describehistorymonitorvalues.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHistoryMonitorValuesWithCallback(request *DescribeHistoryMonitorValuesRequest, callback func(response *DescribeHistoryMonitorValuesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeHistoryMonitorValuesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeHistoryMonitorValues(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeHistoryMonitorValuesRequest is the request struct for api DescribeHistoryMonitorValues
+type DescribeHistoryMonitorValuesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	IntervalForHistory   string           `position:"Query" name:"IntervalForHistory"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+	MonitorKeys          string           `position:"Query" name:"MonitorKeys"`
+}
+
+// DescribeHistoryMonitorValuesResponse is the response struct for api DescribeHistoryMonitorValues
+type DescribeHistoryMonitorValuesResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	MonitorHistory string `json:"MonitorHistory" xml:"MonitorHistory"`
+}
+
+// CreateDescribeHistoryMonitorValuesRequest creates a request to invoke DescribeHistoryMonitorValues API
+func CreateDescribeHistoryMonitorValuesRequest() (request *DescribeHistoryMonitorValuesRequest) {
+	request = &DescribeHistoryMonitorValuesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeHistoryMonitorValues", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeHistoryMonitorValuesResponse creates a response to parse from DescribeHistoryMonitorValues response
+func CreateDescribeHistoryMonitorValuesResponse() (response *DescribeHistoryMonitorValuesResponse) {
+	response = &DescribeHistoryMonitorValuesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_instance_attribute.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeInstanceAttribute invokes the r_kvstore.DescribeInstanceAttribute API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceattribute.html
+func (client *Client) DescribeInstanceAttribute(request *DescribeInstanceAttributeRequest) (response *DescribeInstanceAttributeResponse, err error) {
+	response = CreateDescribeInstanceAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceAttributeWithChan invokes the r_kvstore.DescribeInstanceAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceAttributeWithChan(request *DescribeInstanceAttributeRequest) (<-chan *DescribeInstanceAttributeResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceAttributeWithCallback invokes the r_kvstore.DescribeInstanceAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceAttributeWithCallback(request *DescribeInstanceAttributeRequest, callback func(response *DescribeInstanceAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceAttributeRequest is the request struct for api DescribeInstanceAttribute
+type DescribeInstanceAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeInstanceAttributeResponse is the response struct for api DescribeInstanceAttribute
+type DescribeInstanceAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string                               `json:"RequestId" xml:"RequestId"`
+	Instances InstancesInDescribeInstanceAttribute `json:"Instances" xml:"Instances"`
+}
+
+// CreateDescribeInstanceAttributeRequest creates a request to invoke DescribeInstanceAttribute API
+func CreateDescribeInstanceAttributeRequest() (request *DescribeInstanceAttributeRequest) {
+	request = &DescribeInstanceAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeInstanceAttribute", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceAttributeResponse creates a response to parse from DescribeInstanceAttribute response
+func CreateDescribeInstanceAttributeResponse() (response *DescribeInstanceAttributeResponse) {
+	response = &DescribeInstanceAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/r_kvstore/describe_instance_auto_renewal_attribute.go

@@ -0,0 +1,115 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeInstanceAutoRenewalAttribute invokes the r_kvstore.DescribeInstanceAutoRenewalAttribute API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceautorenewalattribute.html
+func (client *Client) DescribeInstanceAutoRenewalAttribute(request *DescribeInstanceAutoRenewalAttributeRequest) (response *DescribeInstanceAutoRenewalAttributeResponse, err error) {
+	response = CreateDescribeInstanceAutoRenewalAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceAutoRenewalAttributeWithChan invokes the r_kvstore.DescribeInstanceAutoRenewalAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceautorenewalattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceAutoRenewalAttributeWithChan(request *DescribeInstanceAutoRenewalAttributeRequest) (<-chan *DescribeInstanceAutoRenewalAttributeResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceAutoRenewalAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceAutoRenewalAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceAutoRenewalAttributeWithCallback invokes the r_kvstore.DescribeInstanceAutoRenewalAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceautorenewalattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceAutoRenewalAttributeWithCallback(request *DescribeInstanceAutoRenewalAttributeRequest, callback func(response *DescribeInstanceAutoRenewalAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceAutoRenewalAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceAutoRenewalAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceAutoRenewalAttributeRequest is the request struct for api DescribeInstanceAutoRenewalAttribute
+type DescribeInstanceAutoRenewalAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ClientToken          string           `position:"Query" name:"ClientToken"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	ProxyId              string           `position:"Query" name:"proxyId"`
+}
+
+// DescribeInstanceAutoRenewalAttributeResponse is the response struct for api DescribeInstanceAutoRenewalAttribute
+type DescribeInstanceAutoRenewalAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId        string                                      `json:"RequestId" xml:"RequestId"`
+	PageNumber       int                                         `json:"PageNumber" xml:"PageNumber"`
+	TotalRecordCount int                                         `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageRecordCount  int                                         `json:"PageRecordCount" xml:"PageRecordCount"`
+	Items            ItemsInDescribeInstanceAutoRenewalAttribute `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeInstanceAutoRenewalAttributeRequest creates a request to invoke DescribeInstanceAutoRenewalAttribute API
+func CreateDescribeInstanceAutoRenewalAttributeRequest() (request *DescribeInstanceAutoRenewalAttributeRequest) {
+	request = &DescribeInstanceAutoRenewalAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeInstanceAutoRenewalAttribute", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceAutoRenewalAttributeResponse creates a response to parse from DescribeInstanceAutoRenewalAttribute response
+func CreateDescribeInstanceAutoRenewalAttributeResponse() (response *DescribeInstanceAutoRenewalAttributeResponse) {
+	response = &DescribeInstanceAutoRenewalAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_instance_config.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeInstanceConfig invokes the r_kvstore.DescribeInstanceConfig API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceconfig.html
+func (client *Client) DescribeInstanceConfig(request *DescribeInstanceConfigRequest) (response *DescribeInstanceConfigResponse, err error) {
+	response = CreateDescribeInstanceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceConfigWithChan invokes the r_kvstore.DescribeInstanceConfig API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceConfigWithChan(request *DescribeInstanceConfigRequest) (<-chan *DescribeInstanceConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceConfigWithCallback invokes the r_kvstore.DescribeInstanceConfig API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstanceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceConfigWithCallback(request *DescribeInstanceConfigRequest, callback func(response *DescribeInstanceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceConfigRequest is the request struct for api DescribeInstanceConfig
+type DescribeInstanceConfigRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeInstanceConfigResponse is the response struct for api DescribeInstanceConfig
+type DescribeInstanceConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Config    string `json:"Config" xml:"Config"`
+}
+
+// CreateDescribeInstanceConfigRequest creates a request to invoke DescribeInstanceConfig API
+func CreateDescribeInstanceConfigRequest() (request *DescribeInstanceConfigRequest) {
+	request = &DescribeInstanceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeInstanceConfig", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceConfigResponse creates a response to parse from DescribeInstanceConfig response
+func CreateDescribeInstanceConfigResponse() (response *DescribeInstanceConfigResponse) {
+	response = &DescribeInstanceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/describe_instance_ssl.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeInstanceSSL invokes the r_kvstore.DescribeInstanceSSL API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstancessl.html
+func (client *Client) DescribeInstanceSSL(request *DescribeInstanceSSLRequest) (response *DescribeInstanceSSLResponse, err error) {
+	response = CreateDescribeInstanceSSLResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceSSLWithChan invokes the r_kvstore.DescribeInstanceSSL API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstancessl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSSLWithChan(request *DescribeInstanceSSLRequest) (<-chan *DescribeInstanceSSLResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceSSLResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceSSL(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceSSLWithCallback invokes the r_kvstore.DescribeInstanceSSL API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstancessl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSSLWithCallback(request *DescribeInstanceSSLRequest, callback func(response *DescribeInstanceSSLResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceSSLResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceSSL(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceSSLRequest is the request struct for api DescribeInstanceSSL
+type DescribeInstanceSSLRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeInstanceSSLResponse is the response struct for api DescribeInstanceSSL
+type DescribeInstanceSSLResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	InstanceId     string `json:"InstanceId" xml:"InstanceId"`
+	SSLEnabled     string `json:"SSLEnabled" xml:"SSLEnabled"`
+	CertCommonName string `json:"CertCommonName" xml:"CertCommonName"`
+	SSLExpiredTime string `json:"SSLExpiredTime" xml:"SSLExpiredTime"`
+}
+
+// CreateDescribeInstanceSSLRequest creates a request to invoke DescribeInstanceSSL API
+func CreateDescribeInstanceSSLRequest() (request *DescribeInstanceSSLRequest) {
+	request = &DescribeInstanceSSLRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeInstanceSSL", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceSSLResponse creates a response to parse from DescribeInstanceSSL response
+func CreateDescribeInstanceSSLResponse() (response *DescribeInstanceSSLResponse) {
+	response = &DescribeInstanceSSLResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 133 - 0
services/r_kvstore/describe_instances.go

@@ -0,0 +1,133 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeInstances invokes the r_kvstore.DescribeInstances API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstances.html
+func (client *Client) DescribeInstances(request *DescribeInstancesRequest) (response *DescribeInstancesResponse, err error) {
+	response = CreateDescribeInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstancesWithChan invokes the r_kvstore.DescribeInstances API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstancesWithChan(request *DescribeInstancesRequest) (<-chan *DescribeInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstancesWithCallback invokes the r_kvstore.DescribeInstances API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstancesWithCallback(request *DescribeInstancesRequest, callback func(response *DescribeInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstancesRequest is the request struct for api DescribeInstances
+type DescribeInstancesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer        `position:"Query" name:"ResourceOwnerId"`
+	InstanceStatus       string                  `position:"Query" name:"InstanceStatus"`
+	ResourceOwnerAccount string                  `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string                  `position:"Query" name:"OwnerAccount"`
+	SearchKey            string                  `position:"Query" name:"SearchKey"`
+	NetworkType          string                  `position:"Query" name:"NetworkType"`
+	EngineVersion        string                  `position:"Query" name:"EngineVersion"`
+	OwnerId              requests.Integer        `position:"Query" name:"OwnerId"`
+	InstanceClass        string                  `position:"Query" name:"InstanceClass"`
+	PageNumber           requests.Integer        `position:"Query" name:"PageNumber"`
+	VSwitchId            string                  `position:"Query" name:"VSwitchId"`
+	Expired              string                  `position:"Query" name:"Expired"`
+	SecurityToken        string                  `position:"Query" name:"SecurityToken"`
+	InstanceIds          string                  `position:"Query" name:"InstanceIds"`
+	ArchitectureType     string                  `position:"Query" name:"ArchitectureType"`
+	VpcId                string                  `position:"Query" name:"VpcId"`
+	PageSize             requests.Integer        `position:"Query" name:"PageSize"`
+	InstanceType         string                  `position:"Query" name:"InstanceType"`
+	ZoneId               string                  `position:"Query" name:"ZoneId"`
+	ChargeType           string                  `position:"Query" name:"ChargeType"`
+	Tag                  *[]DescribeInstancesTag `position:"Query" name:"Tag"  type:"Repeated"`
+}
+
+// DescribeInstancesTag is a repeated param struct in DescribeInstancesRequest
+type DescribeInstancesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// DescribeInstancesResponse is the response struct for api DescribeInstances
+type DescribeInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId  string                       `json:"RequestId" xml:"RequestId"`
+	PageNumber int                          `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int                          `json:"PageSize" xml:"PageSize"`
+	TotalCount int                          `json:"TotalCount" xml:"TotalCount"`
+	Instances  InstancesInDescribeInstances `json:"Instances" xml:"Instances"`
+}
+
+// CreateDescribeInstancesRequest creates a request to invoke DescribeInstances API
+func CreateDescribeInstancesRequest() (request *DescribeInstancesRequest) {
+	request = &DescribeInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeInstances", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeInstancesResponse creates a response to parse from DescribeInstances response
+func CreateDescribeInstancesResponse() (response *DescribeInstancesResponse) {
+	response = &DescribeInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/r_kvstore/describe_instances_by_expire_time.go

@@ -0,0 +1,116 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeInstancesByExpireTime invokes the r_kvstore.DescribeInstancesByExpireTime API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstancesbyexpiretime.html
+func (client *Client) DescribeInstancesByExpireTime(request *DescribeInstancesByExpireTimeRequest) (response *DescribeInstancesByExpireTimeResponse, err error) {
+	response = CreateDescribeInstancesByExpireTimeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstancesByExpireTimeWithChan invokes the r_kvstore.DescribeInstancesByExpireTime API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstancesbyexpiretime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstancesByExpireTimeWithChan(request *DescribeInstancesByExpireTimeRequest) (<-chan *DescribeInstancesByExpireTimeResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstancesByExpireTimeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstancesByExpireTime(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstancesByExpireTimeWithCallback invokes the r_kvstore.DescribeInstancesByExpireTime API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeinstancesbyexpiretime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstancesByExpireTimeWithCallback(request *DescribeInstancesByExpireTimeRequest, callback func(response *DescribeInstancesByExpireTimeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstancesByExpireTimeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstancesByExpireTime(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstancesByExpireTimeRequest is the request struct for api DescribeInstancesByExpireTime
+type DescribeInstancesByExpireTimeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	HasExpiredRes        requests.Boolean `position:"Query" name:"HasExpiredRes"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	InstanceType         string           `position:"Query" name:"InstanceType"`
+	ExpirePeriod         requests.Integer `position:"Query" name:"ExpirePeriod"`
+}
+
+// DescribeInstancesByExpireTimeResponse is the response struct for api DescribeInstancesByExpireTime
+type DescribeInstancesByExpireTimeResponse struct {
+	*responses.BaseResponse
+	RequestId  string                                   `json:"RequestId" xml:"RequestId"`
+	PageNumber int                                      `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int                                      `json:"PageSize" xml:"PageSize"`
+	TotalCount int                                      `json:"TotalCount" xml:"TotalCount"`
+	Instances  InstancesInDescribeInstancesByExpireTime `json:"Instances" xml:"Instances"`
+}
+
+// CreateDescribeInstancesByExpireTimeRequest creates a request to invoke DescribeInstancesByExpireTime API
+func CreateDescribeInstancesByExpireTimeRequest() (request *DescribeInstancesByExpireTimeRequest) {
+	request = &DescribeInstancesByExpireTimeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeInstancesByExpireTime", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeInstancesByExpireTimeResponse creates a response to parse from DescribeInstancesByExpireTime response
+func CreateDescribeInstancesByExpireTimeResponse() (response *DescribeInstancesByExpireTimeResponse) {
+	response = &DescribeInstancesByExpireTimeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_intranet_attribute.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeIntranetAttribute invokes the r_kvstore.DescribeIntranetAttribute API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeintranetattribute.html
+func (client *Client) DescribeIntranetAttribute(request *DescribeIntranetAttributeRequest) (response *DescribeIntranetAttributeResponse, err error) {
+	response = CreateDescribeIntranetAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeIntranetAttributeWithChan invokes the r_kvstore.DescribeIntranetAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeintranetattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIntranetAttributeWithChan(request *DescribeIntranetAttributeRequest) (<-chan *DescribeIntranetAttributeResponse, <-chan error) {
+	responseChan := make(chan *DescribeIntranetAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeIntranetAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeIntranetAttributeWithCallback invokes the r_kvstore.DescribeIntranetAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeintranetattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIntranetAttributeWithCallback(request *DescribeIntranetAttributeRequest, callback func(response *DescribeIntranetAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeIntranetAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeIntranetAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeIntranetAttributeRequest is the request struct for api DescribeIntranetAttribute
+type DescribeIntranetAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeIntranetAttributeResponse is the response struct for api DescribeIntranetAttribute
+type DescribeIntranetAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId         string `json:"RequestId" xml:"RequestId"`
+	IntranetBandwidth int    `json:"IntranetBandwidth" xml:"IntranetBandwidth"`
+	ExpireTime        string `json:"ExpireTime" xml:"ExpireTime"`
+}
+
+// CreateDescribeIntranetAttributeRequest creates a request to invoke DescribeIntranetAttribute API
+func CreateDescribeIntranetAttributeRequest() (request *DescribeIntranetAttributeRequest) {
+	request = &DescribeIntranetAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeIntranetAttribute", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeIntranetAttributeResponse creates a response to parse from DescribeIntranetAttribute response
+func CreateDescribeIntranetAttributeResponse() (response *DescribeIntranetAttributeResponse) {
+	response = &DescribeIntranetAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/describe_logic_instance_topology.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeLogicInstanceTopology invokes the r_kvstore.DescribeLogicInstanceTopology API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describelogicinstancetopology.html
+func (client *Client) DescribeLogicInstanceTopology(request *DescribeLogicInstanceTopologyRequest) (response *DescribeLogicInstanceTopologyResponse, err error) {
+	response = CreateDescribeLogicInstanceTopologyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLogicInstanceTopologyWithChan invokes the r_kvstore.DescribeLogicInstanceTopology API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describelogicinstancetopology.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLogicInstanceTopologyWithChan(request *DescribeLogicInstanceTopologyRequest) (<-chan *DescribeLogicInstanceTopologyResponse, <-chan error) {
+	responseChan := make(chan *DescribeLogicInstanceTopologyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLogicInstanceTopology(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLogicInstanceTopologyWithCallback invokes the r_kvstore.DescribeLogicInstanceTopology API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describelogicinstancetopology.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLogicInstanceTopologyWithCallback(request *DescribeLogicInstanceTopologyRequest, callback func(response *DescribeLogicInstanceTopologyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLogicInstanceTopologyResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLogicInstanceTopology(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLogicInstanceTopologyRequest is the request struct for api DescribeLogicInstanceTopology
+type DescribeLogicInstanceTopologyRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeLogicInstanceTopologyResponse is the response struct for api DescribeLogicInstanceTopology
+type DescribeLogicInstanceTopologyResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	InstanceId     string         `json:"InstanceId" xml:"InstanceId"`
+	RedisProxyList RedisProxyList `json:"RedisProxyList" xml:"RedisProxyList"`
+	RedisShardList RedisShardList `json:"RedisShardList" xml:"RedisShardList"`
+}
+
+// CreateDescribeLogicInstanceTopologyRequest creates a request to invoke DescribeLogicInstanceTopology API
+func CreateDescribeLogicInstanceTopologyRequest() (request *DescribeLogicInstanceTopologyRequest) {
+	request = &DescribeLogicInstanceTopologyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeLogicInstanceTopology", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeLogicInstanceTopologyResponse creates a response to parse from DescribeLogicInstanceTopology response
+func CreateDescribeLogicInstanceTopologyResponse() (response *DescribeLogicInstanceTopologyResponse) {
+	response = &DescribeLogicInstanceTopologyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/describe_monitor_items.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeMonitorItems invokes the r_kvstore.DescribeMonitorItems API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonitoritems.html
+func (client *Client) DescribeMonitorItems(request *DescribeMonitorItemsRequest) (response *DescribeMonitorItemsResponse, err error) {
+	response = CreateDescribeMonitorItemsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeMonitorItemsWithChan invokes the r_kvstore.DescribeMonitorItems API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonitoritems.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMonitorItemsWithChan(request *DescribeMonitorItemsRequest) (<-chan *DescribeMonitorItemsResponse, <-chan error) {
+	responseChan := make(chan *DescribeMonitorItemsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeMonitorItems(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeMonitorItemsWithCallback invokes the r_kvstore.DescribeMonitorItems API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonitoritems.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMonitorItemsWithCallback(request *DescribeMonitorItemsRequest, callback func(response *DescribeMonitorItemsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeMonitorItemsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeMonitorItems(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeMonitorItemsRequest is the request struct for api DescribeMonitorItems
+type DescribeMonitorItemsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeMonitorItemsResponse is the response struct for api DescribeMonitorItems
+type DescribeMonitorItemsResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	MonitorItems MonitorItems `json:"MonitorItems" xml:"MonitorItems"`
+}
+
+// CreateDescribeMonitorItemsRequest creates a request to invoke DescribeMonitorItems API
+func CreateDescribeMonitorItemsRequest() (request *DescribeMonitorItemsRequest) {
+	request = &DescribeMonitorItemsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeMonitorItems", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeMonitorItemsResponse creates a response to parse from DescribeMonitorItems response
+func CreateDescribeMonitorItemsResponse() (response *DescribeMonitorItemsResponse) {
+	response = &DescribeMonitorItemsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/describe_monthly_service_status.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeMonthlyServiceStatus invokes the r_kvstore.DescribeMonthlyServiceStatus API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonthlyservicestatus.html
+func (client *Client) DescribeMonthlyServiceStatus(request *DescribeMonthlyServiceStatusRequest) (response *DescribeMonthlyServiceStatusResponse, err error) {
+	response = CreateDescribeMonthlyServiceStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeMonthlyServiceStatusWithChan invokes the r_kvstore.DescribeMonthlyServiceStatus API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonthlyservicestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMonthlyServiceStatusWithChan(request *DescribeMonthlyServiceStatusRequest) (<-chan *DescribeMonthlyServiceStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeMonthlyServiceStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeMonthlyServiceStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeMonthlyServiceStatusWithCallback invokes the r_kvstore.DescribeMonthlyServiceStatus API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonthlyservicestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMonthlyServiceStatusWithCallback(request *DescribeMonthlyServiceStatusRequest, callback func(response *DescribeMonthlyServiceStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeMonthlyServiceStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeMonthlyServiceStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeMonthlyServiceStatusRequest is the request struct for api DescribeMonthlyServiceStatus
+type DescribeMonthlyServiceStatusRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Month                string           `position:"Query" name:"Month"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	InstanceIds          string           `position:"Query" name:"InstanceIds"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeMonthlyServiceStatusResponse is the response struct for api DescribeMonthlyServiceStatus
+type DescribeMonthlyServiceStatusResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	TotalCount       int64            `json:"TotalCount" xml:"TotalCount"`
+	InstanceSLAInfos InstanceSLAInfos `json:"InstanceSLAInfos" xml:"InstanceSLAInfos"`
+}
+
+// CreateDescribeMonthlyServiceStatusRequest creates a request to invoke DescribeMonthlyServiceStatus API
+func CreateDescribeMonthlyServiceStatusRequest() (request *DescribeMonthlyServiceStatusRequest) {
+	request = &DescribeMonthlyServiceStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeMonthlyServiceStatus", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeMonthlyServiceStatusResponse creates a response to parse from DescribeMonthlyServiceStatus response
+func CreateDescribeMonthlyServiceStatusResponse() (response *DescribeMonthlyServiceStatusResponse) {
+	response = &DescribeMonthlyServiceStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/describe_monthly_service_status_detail.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeMonthlyServiceStatusDetail invokes the r_kvstore.DescribeMonthlyServiceStatusDetail API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonthlyservicestatusdetail.html
+func (client *Client) DescribeMonthlyServiceStatusDetail(request *DescribeMonthlyServiceStatusDetailRequest) (response *DescribeMonthlyServiceStatusDetailResponse, err error) {
+	response = CreateDescribeMonthlyServiceStatusDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeMonthlyServiceStatusDetailWithChan invokes the r_kvstore.DescribeMonthlyServiceStatusDetail API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonthlyservicestatusdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMonthlyServiceStatusDetailWithChan(request *DescribeMonthlyServiceStatusDetailRequest) (<-chan *DescribeMonthlyServiceStatusDetailResponse, <-chan error) {
+	responseChan := make(chan *DescribeMonthlyServiceStatusDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeMonthlyServiceStatusDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeMonthlyServiceStatusDetailWithCallback invokes the r_kvstore.DescribeMonthlyServiceStatusDetail API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describemonthlyservicestatusdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeMonthlyServiceStatusDetailWithCallback(request *DescribeMonthlyServiceStatusDetailRequest, callback func(response *DescribeMonthlyServiceStatusDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeMonthlyServiceStatusDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeMonthlyServiceStatusDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeMonthlyServiceStatusDetailRequest is the request struct for api DescribeMonthlyServiceStatusDetail
+type DescribeMonthlyServiceStatusDetailRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	Month                string           `position:"Query" name:"Month"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeMonthlyServiceStatusDetailResponse is the response struct for api DescribeMonthlyServiceStatusDetail
+type DescribeMonthlyServiceStatusDetailResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	InstanceId    string        `json:"InstanceId" xml:"InstanceId"`
+	UptimePct     float64       `json:"UptimePct" xml:"UptimePct"`
+	AffectedInfos AffectedInfos `json:"AffectedInfos" xml:"AffectedInfos"`
+}
+
+// CreateDescribeMonthlyServiceStatusDetailRequest creates a request to invoke DescribeMonthlyServiceStatusDetail API
+func CreateDescribeMonthlyServiceStatusDetailRequest() (request *DescribeMonthlyServiceStatusDetailRequest) {
+	request = &DescribeMonthlyServiceStatusDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeMonthlyServiceStatusDetail", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeMonthlyServiceStatusDetailResponse creates a response to parse from DescribeMonthlyServiceStatusDetail response
+func CreateDescribeMonthlyServiceStatusDetailResponse() (response *DescribeMonthlyServiceStatusDetailResponse) {
+	response = &DescribeMonthlyServiceStatusDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/describe_parameter_modification_history.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeParameterModificationHistory invokes the r_kvstore.DescribeParameterModificationHistory API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparametermodificationhistory.html
+func (client *Client) DescribeParameterModificationHistory(request *DescribeParameterModificationHistoryRequest) (response *DescribeParameterModificationHistoryResponse, err error) {
+	response = CreateDescribeParameterModificationHistoryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeParameterModificationHistoryWithChan invokes the r_kvstore.DescribeParameterModificationHistory API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparametermodificationhistory.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeParameterModificationHistoryWithChan(request *DescribeParameterModificationHistoryRequest) (<-chan *DescribeParameterModificationHistoryResponse, <-chan error) {
+	responseChan := make(chan *DescribeParameterModificationHistoryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeParameterModificationHistory(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeParameterModificationHistoryWithCallback invokes the r_kvstore.DescribeParameterModificationHistory API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparametermodificationhistory.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeParameterModificationHistoryWithCallback(request *DescribeParameterModificationHistoryRequest, callback func(response *DescribeParameterModificationHistoryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeParameterModificationHistoryResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeParameterModificationHistory(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeParameterModificationHistoryRequest is the request struct for api DescribeParameterModificationHistory
+type DescribeParameterModificationHistoryRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeParameterModificationHistoryResponse is the response struct for api DescribeParameterModificationHistory
+type DescribeParameterModificationHistoryResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	HistoricalParameters HistoricalParameters `json:"HistoricalParameters" xml:"HistoricalParameters"`
+}
+
+// CreateDescribeParameterModificationHistoryRequest creates a request to invoke DescribeParameterModificationHistory API
+func CreateDescribeParameterModificationHistoryRequest() (request *DescribeParameterModificationHistoryRequest) {
+	request = &DescribeParameterModificationHistoryRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeParameterModificationHistory", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeParameterModificationHistoryResponse creates a response to parse from DescribeParameterModificationHistory response
+func CreateDescribeParameterModificationHistoryResponse() (response *DescribeParameterModificationHistoryResponse) {
+	response = &DescribeParameterModificationHistoryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/r_kvstore/describe_parameter_templates.go

@@ -0,0 +1,114 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeParameterTemplates invokes the r_kvstore.DescribeParameterTemplates API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparametertemplates.html
+func (client *Client) DescribeParameterTemplates(request *DescribeParameterTemplatesRequest) (response *DescribeParameterTemplatesResponse, err error) {
+	response = CreateDescribeParameterTemplatesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeParameterTemplatesWithChan invokes the r_kvstore.DescribeParameterTemplates API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparametertemplates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeParameterTemplatesWithChan(request *DescribeParameterTemplatesRequest) (<-chan *DescribeParameterTemplatesResponse, <-chan error) {
+	responseChan := make(chan *DescribeParameterTemplatesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeParameterTemplates(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeParameterTemplatesWithCallback invokes the r_kvstore.DescribeParameterTemplates API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparametertemplates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeParameterTemplatesWithCallback(request *DescribeParameterTemplatesRequest, callback func(response *DescribeParameterTemplatesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeParameterTemplatesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeParameterTemplates(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeParameterTemplatesRequest is the request struct for api DescribeParameterTemplates
+type DescribeParameterTemplatesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Engine               string           `position:"Query" name:"Engine"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EngineVersion        string           `position:"Query" name:"EngineVersion"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	CharacterType        string           `position:"Query" name:"CharacterType"`
+}
+
+// DescribeParameterTemplatesResponse is the response struct for api DescribeParameterTemplates
+type DescribeParameterTemplatesResponse struct {
+	*responses.BaseResponse
+	RequestId      string     `json:"RequestId" xml:"RequestId"`
+	Engine         string     `json:"Engine" xml:"Engine"`
+	EngineVersion  string     `json:"EngineVersion" xml:"EngineVersion"`
+	ParameterCount string     `json:"ParameterCount" xml:"ParameterCount"`
+	Parameters     Parameters `json:"Parameters" xml:"Parameters"`
+}
+
+// CreateDescribeParameterTemplatesRequest creates a request to invoke DescribeParameterTemplates API
+func CreateDescribeParameterTemplatesRequest() (request *DescribeParameterTemplatesRequest) {
+	request = &DescribeParameterTemplatesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeParameterTemplates", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeParameterTemplatesResponse creates a response to parse from DescribeParameterTemplates response
+func CreateDescribeParameterTemplatesResponse() (response *DescribeParameterTemplatesResponse) {
+	response = &DescribeParameterTemplatesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/r_kvstore/describe_parameters.go

@@ -0,0 +1,113 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeParameters invokes the r_kvstore.DescribeParameters API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparameters.html
+func (client *Client) DescribeParameters(request *DescribeParametersRequest) (response *DescribeParametersResponse, err error) {
+	response = CreateDescribeParametersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeParametersWithChan invokes the r_kvstore.DescribeParameters API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparameters.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeParametersWithChan(request *DescribeParametersRequest) (<-chan *DescribeParametersResponse, <-chan error) {
+	responseChan := make(chan *DescribeParametersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeParameters(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeParametersWithCallback invokes the r_kvstore.DescribeParameters API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeparameters.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeParametersWithCallback(request *DescribeParametersRequest, callback func(response *DescribeParametersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeParametersResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeParameters(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeParametersRequest is the request struct for api DescribeParameters
+type DescribeParametersRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeParametersResponse is the response struct for api DescribeParameters
+type DescribeParametersResponse struct {
+	*responses.BaseResponse
+	RequestId         string            `json:"RequestId" xml:"RequestId"`
+	Engine            string            `json:"Engine" xml:"Engine"`
+	EngineVersion     string            `json:"EngineVersion" xml:"EngineVersion"`
+	ConfigParameters  ConfigParameters  `json:"ConfigParameters" xml:"ConfigParameters"`
+	RunningParameters RunningParameters `json:"RunningParameters" xml:"RunningParameters"`
+}
+
+// CreateDescribeParametersRequest creates a request to invoke DescribeParameters API
+func CreateDescribeParametersRequest() (request *DescribeParametersRequest) {
+	request = &DescribeParametersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeParameters", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeParametersResponse creates a response to parse from DescribeParameters response
+func CreateDescribeParametersResponse() (response *DescribeParametersResponse) {
+	response = &DescribeParametersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_rds_v_switchs.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeRdsVSwitchs invokes the r_kvstore.DescribeRdsVSwitchs API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerdsvswitchs.html
+func (client *Client) DescribeRdsVSwitchs(request *DescribeRdsVSwitchsRequest) (response *DescribeRdsVSwitchsResponse, err error) {
+	response = CreateDescribeRdsVSwitchsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsVSwitchsWithChan invokes the r_kvstore.DescribeRdsVSwitchs API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerdsvswitchs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsVSwitchsWithChan(request *DescribeRdsVSwitchsRequest) (<-chan *DescribeRdsVSwitchsResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsVSwitchsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsVSwitchs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsVSwitchsWithCallback invokes the r_kvstore.DescribeRdsVSwitchs API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerdsvswitchs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsVSwitchsWithCallback(request *DescribeRdsVSwitchsRequest, callback func(response *DescribeRdsVSwitchsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsVSwitchsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsVSwitchs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsVSwitchsRequest is the request struct for api DescribeRdsVSwitchs
+type DescribeRdsVSwitchsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	VpcId                string           `position:"Query" name:"VpcId"`
+	ZoneId               string           `position:"Query" name:"ZoneId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeRdsVSwitchsResponse is the response struct for api DescribeRdsVSwitchs
+type DescribeRdsVSwitchsResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	VSwitches VSwitches `json:"VSwitches" xml:"VSwitches"`
+}
+
+// CreateDescribeRdsVSwitchsRequest creates a request to invoke DescribeRdsVSwitchs API
+func CreateDescribeRdsVSwitchsRequest() (request *DescribeRdsVSwitchsRequest) {
+	request = &DescribeRdsVSwitchsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeRdsVSwitchs", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeRdsVSwitchsResponse creates a response to parse from DescribeRdsVSwitchs response
+func CreateDescribeRdsVSwitchsResponse() (response *DescribeRdsVSwitchsResponse) {
+	response = &DescribeRdsVSwitchsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_rds_vpcs.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeRdsVpcs invokes the r_kvstore.DescribeRdsVpcs API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerdsvpcs.html
+func (client *Client) DescribeRdsVpcs(request *DescribeRdsVpcsRequest) (response *DescribeRdsVpcsResponse, err error) {
+	response = CreateDescribeRdsVpcsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRdsVpcsWithChan invokes the r_kvstore.DescribeRdsVpcs API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerdsvpcs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsVpcsWithChan(request *DescribeRdsVpcsRequest) (<-chan *DescribeRdsVpcsResponse, <-chan error) {
+	responseChan := make(chan *DescribeRdsVpcsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRdsVpcs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRdsVpcsWithCallback invokes the r_kvstore.DescribeRdsVpcs API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerdsvpcs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRdsVpcsWithCallback(request *DescribeRdsVpcsRequest, callback func(response *DescribeRdsVpcsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRdsVpcsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRdsVpcs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRdsVpcsRequest is the request struct for api DescribeRdsVpcs
+type DescribeRdsVpcsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ZoneId               string           `position:"Query" name:"ZoneId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeRdsVpcsResponse is the response struct for api DescribeRdsVpcs
+type DescribeRdsVpcsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Vpcs      Vpcs   `json:"Vpcs" xml:"Vpcs"`
+}
+
+// CreateDescribeRdsVpcsRequest creates a request to invoke DescribeRdsVpcs API
+func CreateDescribeRdsVpcsRequest() (request *DescribeRdsVpcsRequest) {
+	request = &DescribeRdsVpcsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeRdsVpcs", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeRdsVpcsResponse creates a response to parse from DescribeRdsVpcs response
+func CreateDescribeRdsVpcsResponse() (response *DescribeRdsVpcsResponse) {
+	response = &DescribeRdsVpcsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_regions.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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 r_kvstore.DescribeRegions API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeregions.html
+func (client *Client) DescribeRegions(request *DescribeRegionsRequest) (response *DescribeRegionsResponse, err error) {
+	response = CreateDescribeRegionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRegionsWithChan invokes the r_kvstore.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/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 r_kvstore.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/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
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	AcceptLanguage       string           `position:"Query" name:"AcceptLanguage"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeRegionsResponse is the response struct for api DescribeRegions
+type DescribeRegionsResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	RegionIds RegionIds `json:"RegionIds" xml:"RegionIds"`
+}
+
+// CreateDescribeRegionsRequest creates a request to invoke DescribeRegions API
+func CreateDescribeRegionsRequest() (request *DescribeRegionsRequest) {
+	request = &DescribeRegionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeRegions", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeRegionsResponse creates a response to parse from DescribeRegions response
+func CreateDescribeRegionsResponse() (response *DescribeRegionsResponse) {
+	response = &DescribeRegionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/r_kvstore/describe_replica_conflict_info.go

@@ -0,0 +1,117 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeReplicaConflictInfo invokes the r_kvstore.DescribeReplicaConflictInfo API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicaconflictinfo.html
+func (client *Client) DescribeReplicaConflictInfo(request *DescribeReplicaConflictInfoRequest) (response *DescribeReplicaConflictInfoResponse, err error) {
+	response = CreateDescribeReplicaConflictInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeReplicaConflictInfoWithChan invokes the r_kvstore.DescribeReplicaConflictInfo API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicaconflictinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaConflictInfoWithChan(request *DescribeReplicaConflictInfoRequest) (<-chan *DescribeReplicaConflictInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeReplicaConflictInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeReplicaConflictInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeReplicaConflictInfoWithCallback invokes the r_kvstore.DescribeReplicaConflictInfo API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicaconflictinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaConflictInfoWithCallback(request *DescribeReplicaConflictInfoRequest, callback func(response *DescribeReplicaConflictInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeReplicaConflictInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeReplicaConflictInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeReplicaConflictInfoRequest is the request struct for api DescribeReplicaConflictInfo
+type DescribeReplicaConflictInfoRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// DescribeReplicaConflictInfoResponse is the response struct for api DescribeReplicaConflictInfo
+type DescribeReplicaConflictInfoResponse struct {
+	*responses.BaseResponse
+	RequestId        string      `json:"RequestId" xml:"RequestId"`
+	ReplicaId        string      `json:"ReplicaId" xml:"ReplicaId"`
+	PagNumber        int         `json:"PagNumber" xml:"PagNumber"`
+	PageRecordCount  int         `json:"PageRecordCount" xml:"PageRecordCount"`
+	TotalRecordCount int         `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	Items            []ItemsItem `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeReplicaConflictInfoRequest creates a request to invoke DescribeReplicaConflictInfo API
+func CreateDescribeReplicaConflictInfoRequest() (request *DescribeReplicaConflictInfoRequest) {
+	request = &DescribeReplicaConflictInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeReplicaConflictInfo", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeReplicaConflictInfoResponse creates a response to parse from DescribeReplicaConflictInfo response
+func CreateDescribeReplicaConflictInfoResponse() (response *DescribeReplicaConflictInfoResponse) {
+	response = &DescribeReplicaConflictInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_replica_initialize_progress.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeReplicaInitializeProgress invokes the r_kvstore.DescribeReplicaInitializeProgress API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicainitializeprogress.html
+func (client *Client) DescribeReplicaInitializeProgress(request *DescribeReplicaInitializeProgressRequest) (response *DescribeReplicaInitializeProgressResponse, err error) {
+	response = CreateDescribeReplicaInitializeProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeReplicaInitializeProgressWithChan invokes the r_kvstore.DescribeReplicaInitializeProgress API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicainitializeprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaInitializeProgressWithChan(request *DescribeReplicaInitializeProgressRequest) (<-chan *DescribeReplicaInitializeProgressResponse, <-chan error) {
+	responseChan := make(chan *DescribeReplicaInitializeProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeReplicaInitializeProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeReplicaInitializeProgressWithCallback invokes the r_kvstore.DescribeReplicaInitializeProgress API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicainitializeprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaInitializeProgressWithCallback(request *DescribeReplicaInitializeProgressRequest, callback func(response *DescribeReplicaInitializeProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeReplicaInitializeProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeReplicaInitializeProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeReplicaInitializeProgressRequest is the request struct for api DescribeReplicaInitializeProgress
+type DescribeReplicaInitializeProgressRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeReplicaInitializeProgressResponse is the response struct for api DescribeReplicaInitializeProgress
+type DescribeReplicaInitializeProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string                                         `json:"RequestId" xml:"RequestId"`
+	Items     []ItemsItemInDescribeReplicaInitializeProgress `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeReplicaInitializeProgressRequest creates a request to invoke DescribeReplicaInitializeProgress API
+func CreateDescribeReplicaInitializeProgressRequest() (request *DescribeReplicaInitializeProgressRequest) {
+	request = &DescribeReplicaInitializeProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeReplicaInitializeProgress", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeReplicaInitializeProgressResponse creates a response to parse from DescribeReplicaInitializeProgress response
+func CreateDescribeReplicaInitializeProgressResponse() (response *DescribeReplicaInitializeProgressResponse) {
+	response = &DescribeReplicaInitializeProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/r_kvstore/describe_replica_performance.go

@@ -0,0 +1,117 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeReplicaPerformance invokes the r_kvstore.DescribeReplicaPerformance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicaperformance.html
+func (client *Client) DescribeReplicaPerformance(request *DescribeReplicaPerformanceRequest) (response *DescribeReplicaPerformanceResponse, err error) {
+	response = CreateDescribeReplicaPerformanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeReplicaPerformanceWithChan invokes the r_kvstore.DescribeReplicaPerformance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicaperformance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaPerformanceWithChan(request *DescribeReplicaPerformanceRequest) (<-chan *DescribeReplicaPerformanceResponse, <-chan error) {
+	responseChan := make(chan *DescribeReplicaPerformanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeReplicaPerformance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeReplicaPerformanceWithCallback invokes the r_kvstore.DescribeReplicaPerformance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicaperformance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaPerformanceWithCallback(request *DescribeReplicaPerformanceRequest, callback func(response *DescribeReplicaPerformanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeReplicaPerformanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeReplicaPerformance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeReplicaPerformanceRequest is the request struct for api DescribeReplicaPerformance
+type DescribeReplicaPerformanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId         requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	DestinationDBInstanceId string           `position:"Query" name:"DestinationDBInstanceId"`
+	ResourceOwnerAccount    string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount            string           `position:"Query" name:"OwnerAccount"`
+	EndTime                 string           `position:"Query" name:"EndTime"`
+	StartTime               string           `position:"Query" name:"StartTime"`
+	OwnerId                 requests.Integer `position:"Query" name:"OwnerId"`
+	SourceDBInstanceId      string           `position:"Query" name:"SourceDBInstanceId"`
+	SecurityToken           string           `position:"Query" name:"SecurityToken"`
+	ReplicaId               string           `position:"Query" name:"ReplicaId"`
+	Key                     string           `position:"Query" name:"Key"`
+}
+
+// DescribeReplicaPerformanceResponse is the response struct for api DescribeReplicaPerformance
+type DescribeReplicaPerformanceResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	StartTime       string          `json:"StartTime" xml:"StartTime"`
+	EndTime         string          `json:"EndTime" xml:"EndTime"`
+	ReplicaId       string          `json:"ReplicaId" xml:"ReplicaId"`
+	PerformanceKeys PerformanceKeys `json:"PerformanceKeys" xml:"PerformanceKeys"`
+}
+
+// CreateDescribeReplicaPerformanceRequest creates a request to invoke DescribeReplicaPerformance API
+func CreateDescribeReplicaPerformanceRequest() (request *DescribeReplicaPerformanceRequest) {
+	request = &DescribeReplicaPerformanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeReplicaPerformance", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeReplicaPerformanceResponse creates a response to parse from DescribeReplicaPerformance response
+func CreateDescribeReplicaPerformanceResponse() (response *DescribeReplicaPerformanceResponse) {
+	response = &DescribeReplicaPerformanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/r_kvstore/describe_replica_usage.go

@@ -0,0 +1,114 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeReplicaUsage invokes the r_kvstore.DescribeReplicaUsage API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicausage.html
+func (client *Client) DescribeReplicaUsage(request *DescribeReplicaUsageRequest) (response *DescribeReplicaUsageResponse, err error) {
+	response = CreateDescribeReplicaUsageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeReplicaUsageWithChan invokes the r_kvstore.DescribeReplicaUsage API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicausage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaUsageWithChan(request *DescribeReplicaUsageRequest) (<-chan *DescribeReplicaUsageResponse, <-chan error) {
+	responseChan := make(chan *DescribeReplicaUsageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeReplicaUsage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeReplicaUsageWithCallback invokes the r_kvstore.DescribeReplicaUsage API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicausage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicaUsageWithCallback(request *DescribeReplicaUsageRequest, callback func(response *DescribeReplicaUsageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeReplicaUsageResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeReplicaUsage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeReplicaUsageRequest is the request struct for api DescribeReplicaUsage
+type DescribeReplicaUsageRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId         requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SourceDBInstanceId      string           `position:"Query" name:"SourceDBInstanceId"`
+	DestinationDBInstanceId string           `position:"Query" name:"DestinationDBInstanceId"`
+	SecurityToken           string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount    string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount            string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId               string           `position:"Query" name:"ReplicaId"`
+	OwnerId                 requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeReplicaUsageResponse is the response struct for api DescribeReplicaUsage
+type DescribeReplicaUsageResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	StartTime       string          `json:"StartTime" xml:"StartTime"`
+	EndTime         string          `json:"EndTime" xml:"EndTime"`
+	ReplicaId       string          `json:"ReplicaId" xml:"ReplicaId"`
+	PerformanceKeys PerformanceKeys `json:"PerformanceKeys" xml:"PerformanceKeys"`
+}
+
+// CreateDescribeReplicaUsageRequest creates a request to invoke DescribeReplicaUsage API
+func CreateDescribeReplicaUsageRequest() (request *DescribeReplicaUsageRequest) {
+	request = &DescribeReplicaUsageRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeReplicaUsage", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeReplicaUsageResponse creates a response to parse from DescribeReplicaUsage response
+func CreateDescribeReplicaUsageResponse() (response *DescribeReplicaUsageResponse) {
+	response = &DescribeReplicaUsageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/r_kvstore/describe_replicas.go

@@ -0,0 +1,115 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeReplicas invokes the r_kvstore.DescribeReplicas API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicas.html
+func (client *Client) DescribeReplicas(request *DescribeReplicasRequest) (response *DescribeReplicasResponse, err error) {
+	response = CreateDescribeReplicasResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeReplicasWithChan invokes the r_kvstore.DescribeReplicas API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicas.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicasWithChan(request *DescribeReplicasRequest) (<-chan *DescribeReplicasResponse, <-chan error) {
+	responseChan := make(chan *DescribeReplicasResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeReplicas(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeReplicasWithCallback invokes the r_kvstore.DescribeReplicas API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describereplicas.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeReplicasWithCallback(request *DescribeReplicasRequest, callback func(response *DescribeReplicasResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeReplicasResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeReplicas(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeReplicasRequest is the request struct for api DescribeReplicas
+type DescribeReplicasRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	AttachDbInstanceData requests.Boolean `position:"Query" name:"AttachDbInstanceData"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeReplicasResponse is the response struct for api DescribeReplicas
+type DescribeReplicasResponse struct {
+	*responses.BaseResponse
+	RequestId        string  `json:"RequestId" xml:"RequestId"`
+	PageNumber       string  `json:"PageNumber" xml:"PageNumber"`
+	TotalRecordCount int     `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageRecordCount  int     `json:"PageRecordCount" xml:"PageRecordCount"`
+	Replicas         []Items `json:"Replicas" xml:"Replicas"`
+}
+
+// CreateDescribeReplicasRequest creates a request to invoke DescribeReplicas API
+func CreateDescribeReplicasRequest() (request *DescribeReplicasRequest) {
+	request = &DescribeReplicasRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeReplicas", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeReplicasResponse creates a response to parse from DescribeReplicas response
+func CreateDescribeReplicasResponse() (response *DescribeReplicasResponse) {
+	response = &DescribeReplicasResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 124 - 0
services/r_kvstore/describe_running_log_records.go

@@ -0,0 +1,124 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeRunningLogRecords invokes the r_kvstore.DescribeRunningLogRecords API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerunninglogrecords.html
+func (client *Client) DescribeRunningLogRecords(request *DescribeRunningLogRecordsRequest) (response *DescribeRunningLogRecordsResponse, err error) {
+	response = CreateDescribeRunningLogRecordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRunningLogRecordsWithChan invokes the r_kvstore.DescribeRunningLogRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerunninglogrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRunningLogRecordsWithChan(request *DescribeRunningLogRecordsRequest) (<-chan *DescribeRunningLogRecordsResponse, <-chan error) {
+	responseChan := make(chan *DescribeRunningLogRecordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRunningLogRecords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRunningLogRecordsWithCallback invokes the r_kvstore.DescribeRunningLogRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describerunninglogrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRunningLogRecordsWithCallback(request *DescribeRunningLogRecordsRequest, callback func(response *DescribeRunningLogRecordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRunningLogRecordsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRunningLogRecords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRunningLogRecordsRequest is the request struct for api DescribeRunningLogRecords
+type DescribeRunningLogRecordsRequest struct {
+	*requests.RpcRequest
+	SQLId                requests.Integer `position:"Query" name:"SQLId"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	DBName               string           `position:"Query" name:"DBName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	RoleType             string           `position:"Query" name:"RoleType"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeRunningLogRecordsResponse is the response struct for api DescribeRunningLogRecords
+type DescribeRunningLogRecordsResponse struct {
+	*responses.BaseResponse
+	RequestId        string                           `json:"RequestId" xml:"RequestId"`
+	InstanceId       string                           `json:"InstanceId" xml:"InstanceId"`
+	StartTime        string                           `json:"StartTime" xml:"StartTime"`
+	Engine           string                           `json:"Engine" xml:"Engine"`
+	TotalRecordCount int                              `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageNumber       int                              `json:"PageNumber" xml:"PageNumber"`
+	PageSize         int                              `json:"PageSize" xml:"PageSize"`
+	PageRecordCount  int                              `json:"PageRecordCount" xml:"PageRecordCount"`
+	Items            ItemsInDescribeRunningLogRecords `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeRunningLogRecordsRequest creates a request to invoke DescribeRunningLogRecords API
+func CreateDescribeRunningLogRecordsRequest() (request *DescribeRunningLogRecordsRequest) {
+	request = &DescribeRunningLogRecordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeRunningLogRecords", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeRunningLogRecordsResponse creates a response to parse from DescribeRunningLogRecords response
+func CreateDescribeRunningLogRecordsResponse() (response *DescribeRunningLogRecordsResponse) {
+	response = &DescribeRunningLogRecordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_security_ips.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeSecurityIps invokes the r_kvstore.DescribeSecurityIps API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describesecurityips.html
+func (client *Client) DescribeSecurityIps(request *DescribeSecurityIpsRequest) (response *DescribeSecurityIpsResponse, err error) {
+	response = CreateDescribeSecurityIpsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSecurityIpsWithChan invokes the r_kvstore.DescribeSecurityIps API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describesecurityips.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSecurityIpsWithChan(request *DescribeSecurityIpsRequest) (<-chan *DescribeSecurityIpsResponse, <-chan error) {
+	responseChan := make(chan *DescribeSecurityIpsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSecurityIps(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSecurityIpsWithCallback invokes the r_kvstore.DescribeSecurityIps API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describesecurityips.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSecurityIpsWithCallback(request *DescribeSecurityIpsRequest, callback func(response *DescribeSecurityIpsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSecurityIpsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSecurityIps(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSecurityIpsRequest is the request struct for api DescribeSecurityIps
+type DescribeSecurityIpsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSecurityIpsResponse is the response struct for api DescribeSecurityIps
+type DescribeSecurityIpsResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	SecurityIpGroups SecurityIpGroups `json:"SecurityIpGroups" xml:"SecurityIpGroups"`
+}
+
+// CreateDescribeSecurityIpsRequest creates a request to invoke DescribeSecurityIps API
+func CreateDescribeSecurityIpsRequest() (request *DescribeSecurityIpsRequest) {
+	request = &DescribeSecurityIpsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeSecurityIps", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeSecurityIpsResponse creates a response to parse from DescribeSecurityIps response
+func CreateDescribeSecurityIpsResponse() (response *DescribeSecurityIpsResponse) {
+	response = &DescribeSecurityIpsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_sharding_instances.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeShardingInstances invokes the r_kvstore.DescribeShardingInstances API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeshardinginstances.html
+func (client *Client) DescribeShardingInstances(request *DescribeShardingInstancesRequest) (response *DescribeShardingInstancesResponse, err error) {
+	response = CreateDescribeShardingInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeShardingInstancesWithChan invokes the r_kvstore.DescribeShardingInstances API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeshardinginstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardingInstancesWithChan(request *DescribeShardingInstancesRequest) (<-chan *DescribeShardingInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeShardingInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeShardingInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeShardingInstancesWithCallback invokes the r_kvstore.DescribeShardingInstances API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeshardinginstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeShardingInstancesWithCallback(request *DescribeShardingInstancesRequest, callback func(response *DescribeShardingInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeShardingInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeShardingInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeShardingInstancesRequest is the request struct for api DescribeShardingInstances
+type DescribeShardingInstancesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	InstanceIds          string           `position:"Query" name:"InstanceIds"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeShardingInstancesResponse is the response struct for api DescribeShardingInstances
+type DescribeShardingInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	TotalCount int        `json:"TotalCount" xml:"TotalCount"`
+	Instances  []Instance `json:"Instances" xml:"Instances"`
+}
+
+// CreateDescribeShardingInstancesRequest creates a request to invoke DescribeShardingInstances API
+func CreateDescribeShardingInstancesRequest() (request *DescribeShardingInstancesRequest) {
+	request = &DescribeShardingInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeShardingInstances", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeShardingInstancesResponse creates a response to parse from DescribeShardingInstances response
+func CreateDescribeShardingInstancesResponse() (response *DescribeShardingInstancesResponse) {
+	response = &DescribeShardingInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 123 - 0
services/r_kvstore/describe_slow_log_records.go

@@ -0,0 +1,123 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeSlowLogRecords invokes the r_kvstore.DescribeSlowLogRecords API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeslowlogrecords.html
+func (client *Client) DescribeSlowLogRecords(request *DescribeSlowLogRecordsRequest) (response *DescribeSlowLogRecordsResponse, err error) {
+	response = CreateDescribeSlowLogRecordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSlowLogRecordsWithChan invokes the r_kvstore.DescribeSlowLogRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeslowlogrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSlowLogRecordsWithChan(request *DescribeSlowLogRecordsRequest) (<-chan *DescribeSlowLogRecordsResponse, <-chan error) {
+	responseChan := make(chan *DescribeSlowLogRecordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSlowLogRecords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSlowLogRecordsWithCallback invokes the r_kvstore.DescribeSlowLogRecords API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeslowlogrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSlowLogRecordsWithCallback(request *DescribeSlowLogRecordsRequest, callback func(response *DescribeSlowLogRecordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSlowLogRecordsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSlowLogRecords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSlowLogRecordsRequest is the request struct for api DescribeSlowLogRecords
+type DescribeSlowLogRecordsRequest struct {
+	*requests.RpcRequest
+	SQLId                requests.Integer `position:"Query" name:"SQLId"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	DBName               string           `position:"Query" name:"DBName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	NodeId               string           `position:"Query" name:"NodeId"`
+}
+
+// DescribeSlowLogRecordsResponse is the response struct for api DescribeSlowLogRecords
+type DescribeSlowLogRecordsResponse struct {
+	*responses.BaseResponse
+	RequestId        string                        `json:"RequestId" xml:"RequestId"`
+	InstanceId       string                        `json:"InstanceId" xml:"InstanceId"`
+	StartTime        string                        `json:"StartTime" xml:"StartTime"`
+	Engine           string                        `json:"Engine" xml:"Engine"`
+	TotalRecordCount int                           `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	PageNumber       int                           `json:"PageNumber" xml:"PageNumber"`
+	PageSize         int                           `json:"PageSize" xml:"PageSize"`
+	PageRecordCount  int                           `json:"PageRecordCount" xml:"PageRecordCount"`
+	Items            ItemsInDescribeSlowLogRecords `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeSlowLogRecordsRequest creates a request to invoke DescribeSlowLogRecords API
+func CreateDescribeSlowLogRecordsRequest() (request *DescribeSlowLogRecordsRequest) {
+	request = &DescribeSlowLogRecordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeSlowLogRecords", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeSlowLogRecordsResponse creates a response to parse from DescribeSlowLogRecords response
+func CreateDescribeSlowLogRecordsResponse() (response *DescribeSlowLogRecordsResponse) {
+	response = &DescribeSlowLogRecordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_snapshots.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeSnapshots invokes the r_kvstore.DescribeSnapshots API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describesnapshots.html
+func (client *Client) DescribeSnapshots(request *DescribeSnapshotsRequest) (response *DescribeSnapshotsResponse, err error) {
+	response = CreateDescribeSnapshotsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSnapshotsWithChan invokes the r_kvstore.DescribeSnapshots API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describesnapshots.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSnapshotsWithChan(request *DescribeSnapshotsRequest) (<-chan *DescribeSnapshotsResponse, <-chan error) {
+	responseChan := make(chan *DescribeSnapshotsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSnapshots(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSnapshotsWithCallback invokes the r_kvstore.DescribeSnapshots API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describesnapshots.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSnapshotsWithCallback(request *DescribeSnapshotsRequest, callback func(response *DescribeSnapshotsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSnapshotsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSnapshots(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSnapshotsRequest is the request struct for api DescribeSnapshots
+type DescribeSnapshotsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	BeginTime            string           `position:"Query" name:"BeginTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSnapshotsResponse is the response struct for api DescribeSnapshots
+type DescribeSnapshotsResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	Snapshots Snapshots `json:"Snapshots" xml:"Snapshots"`
+}
+
+// CreateDescribeSnapshotsRequest creates a request to invoke DescribeSnapshots API
+func CreateDescribeSnapshotsRequest() (request *DescribeSnapshotsRequest) {
+	request = &DescribeSnapshotsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeSnapshots", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeSnapshotsResponse creates a response to parse from DescribeSnapshots response
+func CreateDescribeSnapshotsResponse() (response *DescribeSnapshotsResponse) {
+	response = &DescribeSnapshotsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 123 - 0
services/r_kvstore/describe_static_verification_list.go

@@ -0,0 +1,123 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeStaticVerificationList invokes the r_kvstore.DescribeStaticVerificationList API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describestaticverificationlist.html
+func (client *Client) DescribeStaticVerificationList(request *DescribeStaticVerificationListRequest) (response *DescribeStaticVerificationListResponse, err error) {
+	response = CreateDescribeStaticVerificationListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeStaticVerificationListWithChan invokes the r_kvstore.DescribeStaticVerificationList API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describestaticverificationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStaticVerificationListWithChan(request *DescribeStaticVerificationListRequest) (<-chan *DescribeStaticVerificationListResponse, <-chan error) {
+	responseChan := make(chan *DescribeStaticVerificationListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeStaticVerificationList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeStaticVerificationListWithCallback invokes the r_kvstore.DescribeStaticVerificationList API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describestaticverificationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStaticVerificationListWithCallback(request *DescribeStaticVerificationListRequest, callback func(response *DescribeStaticVerificationListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeStaticVerificationListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeStaticVerificationList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeStaticVerificationListRequest is the request struct for api DescribeStaticVerificationList
+type DescribeStaticVerificationListRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken         string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId             string           `position:"Query" name:"ReplicaId"`
+	DestinationInstanceId string           `position:"Query" name:"DestinationInstanceId"`
+	SourceInstanceId      string           `position:"Query" name:"SourceInstanceId"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeStaticVerificationListResponse is the response struct for api DescribeStaticVerificationList
+type DescribeStaticVerificationListResponse struct {
+	*responses.BaseResponse
+	RequestId              string      `json:"RequestId" xml:"RequestId"`
+	ReplicaId              string      `json:"ReplicaId" xml:"ReplicaId"`
+	SourceInstanceId       string      `json:"SourceInstanceId" xml:"SourceInstanceId"`
+	SourceDBNumber         int         `json:"SourceDBNumber" xml:"SourceDBNumber"`
+	SourceTableNumber      int         `json:"SourceTableNumber" xml:"SourceTableNumber"`
+	SourceCountNumber      int         `json:"SourceCountNumber" xml:"SourceCountNumber"`
+	SourceDBSize           int         `json:"SourceDBSize" xml:"SourceDBSize"`
+	DestinationInstanceId  string      `json:"DestinationInstanceId" xml:"DestinationInstanceId"`
+	DestinationDBNumber    int         `json:"DestinationDBNumber" xml:"DestinationDBNumber"`
+	DestinationTableNumber int         `json:"DestinationTableNumber" xml:"DestinationTableNumber"`
+	DestinationCountNumber int         `json:"DestinationCountNumber" xml:"DestinationCountNumber"`
+	DestinationDBSize      int         `json:"DestinationDBSize" xml:"DestinationDBSize"`
+	ConsistencyPercent     string      `json:"ConsistencyPercent" xml:"ConsistencyPercent"`
+	Items                  []ItemsItem `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeStaticVerificationListRequest creates a request to invoke DescribeStaticVerificationList API
+func CreateDescribeStaticVerificationListRequest() (request *DescribeStaticVerificationListRequest) {
+	request = &DescribeStaticVerificationListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeStaticVerificationList", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeStaticVerificationListResponse creates a response to parse from DescribeStaticVerificationList response
+func CreateDescribeStaticVerificationListResponse() (response *DescribeStaticVerificationListResponse) {
+	response = &DescribeStaticVerificationListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/describe_strategy.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeStrategy invokes the r_kvstore.DescribeStrategy API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describestrategy.html
+func (client *Client) DescribeStrategy(request *DescribeStrategyRequest) (response *DescribeStrategyResponse, err error) {
+	response = CreateDescribeStrategyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeStrategyWithChan invokes the r_kvstore.DescribeStrategy API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describestrategy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStrategyWithChan(request *DescribeStrategyRequest) (<-chan *DescribeStrategyResponse, <-chan error) {
+	responseChan := make(chan *DescribeStrategyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeStrategy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeStrategyWithCallback invokes the r_kvstore.DescribeStrategy API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describestrategy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStrategyWithCallback(request *DescribeStrategyRequest, callback func(response *DescribeStrategyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeStrategyResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeStrategy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeStrategyRequest is the request struct for api DescribeStrategy
+type DescribeStrategyRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeStrategyResponse is the response struct for api DescribeStrategy
+type DescribeStrategyResponse struct {
+	*responses.BaseResponse
+	RequestId        string `json:"RequestId" xml:"RequestId"`
+	ReplicaId        string `json:"ReplicaId" xml:"ReplicaId"`
+	RecoveryMode     string `json:"RecoveryMode" xml:"RecoveryMode"`
+	VerificationMode string `json:"VerificationMode" xml:"VerificationMode"`
+}
+
+// CreateDescribeStrategyRequest creates a request to invoke DescribeStrategy API
+func CreateDescribeStrategyRequest() (request *DescribeStrategyRequest) {
+	request = &DescribeStrategyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeStrategy", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeStrategyResponse creates a response to parse from DescribeStrategy response
+func CreateDescribeStrategyResponse() (response *DescribeStrategyResponse) {
+	response = &DescribeStrategyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/describe_tags.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeTags invokes the r_kvstore.DescribeTags API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describetags.html
+func (client *Client) DescribeTags(request *DescribeTagsRequest) (response *DescribeTagsResponse, err error) {
+	response = CreateDescribeTagsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTagsWithChan invokes the r_kvstore.DescribeTags API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describetags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTagsWithChan(request *DescribeTagsRequest) (<-chan *DescribeTagsResponse, <-chan error) {
+	responseChan := make(chan *DescribeTagsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTags(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTagsWithCallback invokes the r_kvstore.DescribeTags API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describetags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTagsWithCallback(request *DescribeTagsRequest, callback func(response *DescribeTagsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTagsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTags(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTagsRequest is the request struct for api DescribeTags
+type DescribeTagsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	NextToken            string           `position:"Query" name:"NextToken"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceType         string           `position:"Query" name:"ResourceType"`
+}
+
+// DescribeTagsResponse is the response struct for api DescribeTags
+type DescribeTagsResponse struct {
+	*responses.BaseResponse
+	RequestId string              `json:"RequestId" xml:"RequestId"`
+	NextToken string              `json:"NextToken" xml:"NextToken"`
+	Tags      []TagInDescribeTags `json:"Tags" xml:"Tags"`
+}
+
+// CreateDescribeTagsRequest creates a request to invoke DescribeTags API
+func CreateDescribeTagsRequest() (request *DescribeTagsRequest) {
+	request = &DescribeTagsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeTags", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeTagsResponse creates a response to parse from DescribeTags response
+func CreateDescribeTagsResponse() (response *DescribeTagsResponse) {
+	response = &DescribeTagsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/r_kvstore/describe_temp_instance.go

@@ -0,0 +1,107 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeTempInstance invokes the r_kvstore.DescribeTempInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describetempinstance.html
+func (client *Client) DescribeTempInstance(request *DescribeTempInstanceRequest) (response *DescribeTempInstanceResponse, err error) {
+	response = CreateDescribeTempInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTempInstanceWithChan invokes the r_kvstore.DescribeTempInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describetempinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTempInstanceWithChan(request *DescribeTempInstanceRequest) (<-chan *DescribeTempInstanceResponse, <-chan error) {
+	responseChan := make(chan *DescribeTempInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTempInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTempInstanceWithCallback invokes the r_kvstore.DescribeTempInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describetempinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTempInstanceWithCallback(request *DescribeTempInstanceRequest, callback func(response *DescribeTempInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTempInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTempInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTempInstanceRequest is the request struct for api DescribeTempInstance
+type DescribeTempInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeTempInstanceResponse is the response struct for api DescribeTempInstance
+type DescribeTempInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	TempInstances TempInstances `json:"TempInstances" xml:"TempInstances"`
+}
+
+// CreateDescribeTempInstanceRequest creates a request to invoke DescribeTempInstance API
+func CreateDescribeTempInstanceRequest() (request *DescribeTempInstanceRequest) {
+	request = &DescribeTempInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeTempInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeTempInstanceResponse creates a response to parse from DescribeTempInstance response
+func CreateDescribeTempInstanceResponse() (response *DescribeTempInstanceResponse) {
+	response = &DescribeTempInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/r_kvstore/describe_verification_list.go

@@ -0,0 +1,117 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeVerificationList invokes the r_kvstore.DescribeVerificationList API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeverificationlist.html
+func (client *Client) DescribeVerificationList(request *DescribeVerificationListRequest) (response *DescribeVerificationListResponse, err error) {
+	response = CreateDescribeVerificationListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeVerificationListWithChan invokes the r_kvstore.DescribeVerificationList API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeverificationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVerificationListWithChan(request *DescribeVerificationListRequest) (<-chan *DescribeVerificationListResponse, <-chan error) {
+	responseChan := make(chan *DescribeVerificationListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeVerificationList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeVerificationListWithCallback invokes the r_kvstore.DescribeVerificationList API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describeverificationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVerificationListWithCallback(request *DescribeVerificationListRequest, callback func(response *DescribeVerificationListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeVerificationListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeVerificationList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeVerificationListRequest is the request struct for api DescribeVerificationList
+type DescribeVerificationListRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// DescribeVerificationListResponse is the response struct for api DescribeVerificationList
+type DescribeVerificationListResponse struct {
+	*responses.BaseResponse
+	RequestId        string      `json:"RequestId" xml:"RequestId"`
+	ReplicaId        string      `json:"ReplicaId" xml:"ReplicaId"`
+	PagNumber        int         `json:"PagNumber" xml:"PagNumber"`
+	PageRecordCount  int         `json:"PageRecordCount" xml:"PageRecordCount"`
+	TotalRecordCount int         `json:"TotalRecordCount" xml:"TotalRecordCount"`
+	Items            []ItemsItem `json:"Items" xml:"Items"`
+}
+
+// CreateDescribeVerificationListRequest creates a request to invoke DescribeVerificationList API
+func CreateDescribeVerificationListRequest() (request *DescribeVerificationListRequest) {
+	request = &DescribeVerificationListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeVerificationList", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeVerificationListResponse creates a response to parse from DescribeVerificationList response
+func CreateDescribeVerificationListResponse() (response *DescribeVerificationListResponse) {
+	response = &DescribeVerificationListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/describe_zones.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// DescribeZones invokes the r_kvstore.DescribeZones API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describezones.html
+func (client *Client) DescribeZones(request *DescribeZonesRequest) (response *DescribeZonesResponse, err error) {
+	response = CreateDescribeZonesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeZonesWithChan invokes the r_kvstore.DescribeZones API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describezones.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZonesWithChan(request *DescribeZonesRequest) (<-chan *DescribeZonesResponse, <-chan error) {
+	responseChan := make(chan *DescribeZonesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeZones(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeZonesWithCallback invokes the r_kvstore.DescribeZones API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/describezones.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZonesWithCallback(request *DescribeZonesRequest, callback func(response *DescribeZonesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeZonesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeZones(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeZonesRequest is the request struct for api DescribeZones
+type DescribeZonesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	AcceptLanguage       string           `position:"Query" name:"AcceptLanguage"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeZonesResponse is the response struct for api DescribeZones
+type DescribeZonesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Zones     Zones  `json:"Zones" xml:"Zones"`
+}
+
+// CreateDescribeZonesRequest creates a request to invoke DescribeZones API
+func CreateDescribeZonesRequest() (request *DescribeZonesRequest) {
+	request = &DescribeZonesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DescribeZones", "redisa", "openAPI")
+	return
+}
+
+// CreateDescribeZonesResponse creates a response to parse from DescribeZones response
+func CreateDescribeZonesResponse() (response *DescribeZonesResponse) {
+	response = &DescribeZonesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/destroy_instance.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// DestroyInstance invokes the r_kvstore.DestroyInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/destroyinstance.html
+func (client *Client) DestroyInstance(request *DestroyInstanceRequest) (response *DestroyInstanceResponse, err error) {
+	response = CreateDestroyInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DestroyInstanceWithChan invokes the r_kvstore.DestroyInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/destroyinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DestroyInstanceWithChan(request *DestroyInstanceRequest) (<-chan *DestroyInstanceResponse, <-chan error) {
+	responseChan := make(chan *DestroyInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DestroyInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DestroyInstanceWithCallback invokes the r_kvstore.DestroyInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/destroyinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DestroyInstanceWithCallback(request *DestroyInstanceRequest, callback func(response *DestroyInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DestroyInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DestroyInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DestroyInstanceRequest is the request struct for api DestroyInstance
+type DestroyInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DestroyInstanceResponse is the response struct for api DestroyInstance
+type DestroyInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDestroyInstanceRequest creates a request to invoke DestroyInstance API
+func CreateDestroyInstanceRequest() (request *DestroyInstanceRequest) {
+	request = &DestroyInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "DestroyInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateDestroyInstanceResponse creates a response to parse from DestroyInstance response
+func CreateDestroyInstanceResponse() (response *DestroyInstanceResponse) {
+	response = &DestroyInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/evaluate_fail_over_switch.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// EvaluateFailOverSwitch invokes the r_kvstore.EvaluateFailOverSwitch API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/evaluatefailoverswitch.html
+func (client *Client) EvaluateFailOverSwitch(request *EvaluateFailOverSwitchRequest) (response *EvaluateFailOverSwitchResponse, err error) {
+	response = CreateEvaluateFailOverSwitchResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// EvaluateFailOverSwitchWithChan invokes the r_kvstore.EvaluateFailOverSwitch API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/evaluatefailoverswitch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EvaluateFailOverSwitchWithChan(request *EvaluateFailOverSwitchRequest) (<-chan *EvaluateFailOverSwitchResponse, <-chan error) {
+	responseChan := make(chan *EvaluateFailOverSwitchResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EvaluateFailOverSwitch(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// EvaluateFailOverSwitchWithCallback invokes the r_kvstore.EvaluateFailOverSwitch API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/evaluatefailoverswitch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EvaluateFailOverSwitchWithCallback(request *EvaluateFailOverSwitchRequest, callback func(response *EvaluateFailOverSwitchResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EvaluateFailOverSwitchResponse
+		var err error
+		defer close(result)
+		response, err = client.EvaluateFailOverSwitch(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// EvaluateFailOverSwitchRequest is the request struct for api EvaluateFailOverSwitch
+type EvaluateFailOverSwitchRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// EvaluateFailOverSwitchResponse is the response struct for api EvaluateFailOverSwitch
+type EvaluateFailOverSwitchResponse struct {
+	*responses.BaseResponse
+	RequestId      string        `json:"RequestId" xml:"RequestId"`
+	ReplicaId      string        `json:"ReplicaId" xml:"ReplicaId"`
+	EvaluateResult string        `json:"EvaluateResult" xml:"EvaluateResult"`
+	Items          []ItemsItem   `json:"Items" xml:"Items"`
+	Reports        []ReportsItem `json:"Reports" xml:"Reports"`
+}
+
+// CreateEvaluateFailOverSwitchRequest creates a request to invoke EvaluateFailOverSwitch API
+func CreateEvaluateFailOverSwitchRequest() (request *EvaluateFailOverSwitchRequest) {
+	request = &EvaluateFailOverSwitchRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "EvaluateFailOverSwitch", "redisa", "openAPI")
+	return
+}
+
+// CreateEvaluateFailOverSwitchResponse creates a response to parse from EvaluateFailOverSwitch response
+func CreateEvaluateFailOverSwitchResponse() (response *EvaluateFailOverSwitchResponse) {
+	response = &EvaluateFailOverSwitchResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/flush_instance.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// FlushInstance invokes the r_kvstore.FlushInstance API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/flushinstance.html
+func (client *Client) FlushInstance(request *FlushInstanceRequest) (response *FlushInstanceResponse, err error) {
+	response = CreateFlushInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FlushInstanceWithChan invokes the r_kvstore.FlushInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/flushinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FlushInstanceWithChan(request *FlushInstanceRequest) (<-chan *FlushInstanceResponse, <-chan error) {
+	responseChan := make(chan *FlushInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FlushInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FlushInstanceWithCallback invokes the r_kvstore.FlushInstance API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/flushinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FlushInstanceWithCallback(request *FlushInstanceRequest, callback func(response *FlushInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FlushInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.FlushInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FlushInstanceRequest is the request struct for api FlushInstance
+type FlushInstanceRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// FlushInstanceResponse is the response struct for api FlushInstance
+type FlushInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateFlushInstanceRequest creates a request to invoke FlushInstance API
+func CreateFlushInstanceRequest() (request *FlushInstanceRequest) {
+	request = &FlushInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "FlushInstance", "redisa", "openAPI")
+	return
+}
+
+// CreateFlushInstanceResponse creates a response to parse from FlushInstance response
+func CreateFlushInstanceResponse() (response *FlushInstanceResponse) {
+	response = &FlushInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/r_kvstore/get_snapshot_settings.go

@@ -0,0 +1,115 @@
+package r_kvstore
+
+//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"
+)
+
+// GetSnapshotSettings invokes the r_kvstore.GetSnapshotSettings API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/getsnapshotsettings.html
+func (client *Client) GetSnapshotSettings(request *GetSnapshotSettingsRequest) (response *GetSnapshotSettingsResponse, err error) {
+	response = CreateGetSnapshotSettingsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSnapshotSettingsWithChan invokes the r_kvstore.GetSnapshotSettings API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/getsnapshotsettings.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSnapshotSettingsWithChan(request *GetSnapshotSettingsRequest) (<-chan *GetSnapshotSettingsResponse, <-chan error) {
+	responseChan := make(chan *GetSnapshotSettingsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSnapshotSettings(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSnapshotSettingsWithCallback invokes the r_kvstore.GetSnapshotSettings API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/getsnapshotsettings.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSnapshotSettingsWithCallback(request *GetSnapshotSettingsRequest, callback func(response *GetSnapshotSettingsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSnapshotSettingsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSnapshotSettings(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSnapshotSettingsRequest is the request struct for api GetSnapshotSettings
+type GetSnapshotSettingsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// GetSnapshotSettingsResponse is the response struct for api GetSnapshotSettings
+type GetSnapshotSettingsResponse struct {
+	*responses.BaseResponse
+	RequestId          string `json:"RequestId" xml:"RequestId"`
+	InstanceId         string `json:"InstanceId" xml:"InstanceId"`
+	BeginHour          int    `json:"BeginHour" xml:"BeginHour"`
+	EndHour            int    `json:"EndHour" xml:"EndHour"`
+	RetentionDay       int    `json:"RetentionDay" xml:"RetentionDay"`
+	MaxAutoSnapshots   int    `json:"MaxAutoSnapshots" xml:"MaxAutoSnapshots"`
+	MaxManualSnapshots int    `json:"MaxManualSnapshots" xml:"MaxManualSnapshots"`
+	DayList            int    `json:"DayList" xml:"DayList"`
+	NextTime           string `json:"NextTime" xml:"NextTime"`
+}
+
+// CreateGetSnapshotSettingsRequest creates a request to invoke GetSnapshotSettings API
+func CreateGetSnapshotSettingsRequest() (request *GetSnapshotSettingsRequest) {
+	request = &GetSnapshotSettingsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "GetSnapshotSettings", "redisa", "openAPI")
+	return
+}
+
+// CreateGetSnapshotSettingsResponse creates a response to parse from GetSnapshotSettings response
+func CreateGetSnapshotSettingsResponse() (response *GetSnapshotSettingsResponse) {
+	response = &GetSnapshotSettingsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/grant_account_privilege.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// GrantAccountPrivilege invokes the r_kvstore.GrantAccountPrivilege API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/grantaccountprivilege.html
+func (client *Client) GrantAccountPrivilege(request *GrantAccountPrivilegeRequest) (response *GrantAccountPrivilegeResponse, err error) {
+	response = CreateGrantAccountPrivilegeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GrantAccountPrivilegeWithChan invokes the r_kvstore.GrantAccountPrivilege API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/grantaccountprivilege.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GrantAccountPrivilegeWithChan(request *GrantAccountPrivilegeRequest) (<-chan *GrantAccountPrivilegeResponse, <-chan error) {
+	responseChan := make(chan *GrantAccountPrivilegeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GrantAccountPrivilege(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GrantAccountPrivilegeWithCallback invokes the r_kvstore.GrantAccountPrivilege API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/grantaccountprivilege.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GrantAccountPrivilegeWithCallback(request *GrantAccountPrivilegeRequest, callback func(response *GrantAccountPrivilegeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GrantAccountPrivilegeResponse
+		var err error
+		defer close(result)
+		response, err = client.GrantAccountPrivilege(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GrantAccountPrivilegeRequest is the request struct for api GrantAccountPrivilege
+type GrantAccountPrivilegeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	AccountName          string           `position:"Query" name:"AccountName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	AccountPrivilege     string           `position:"Query" name:"AccountPrivilege"`
+}
+
+// GrantAccountPrivilegeResponse is the response struct for api GrantAccountPrivilege
+type GrantAccountPrivilegeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateGrantAccountPrivilegeRequest creates a request to invoke GrantAccountPrivilege API
+func CreateGrantAccountPrivilegeRequest() (request *GrantAccountPrivilegeRequest) {
+	request = &GrantAccountPrivilegeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "GrantAccountPrivilege", "redisa", "openAPI")
+	return
+}
+
+// CreateGrantAccountPrivilegeResponse creates a response to parse from GrantAccountPrivilege response
+func CreateGrantAccountPrivilegeResponse() (response *GrantAccountPrivilegeResponse) {
+	response = &GrantAccountPrivilegeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/r_kvstore/list_tag_resources.go

@@ -0,0 +1,118 @@
+package r_kvstore
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ListTagResources invokes the r_kvstore.ListTagResources API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/listtagresources.html
+func (client *Client) ListTagResources(request *ListTagResourcesRequest) (response *ListTagResourcesResponse, err error) {
+	response = CreateListTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTagResourcesWithChan invokes the r_kvstore.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithChan(request *ListTagResourcesRequest) (<-chan *ListTagResourcesResponse, <-chan error) {
+	responseChan := make(chan *ListTagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTagResourcesWithCallback invokes the r_kvstore.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithCallback(request *ListTagResourcesRequest, callback func(response *ListTagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTagResourcesRequest is the request struct for api ListTagResources
+type ListTagResourcesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer       `position:"Query" name:"ResourceOwnerId"`
+	ResourceId           *[]string              `position:"Query" name:"ResourceId"  type:"Repeated"`
+	ResourceOwnerAccount string                 `position:"Query" name:"ResourceOwnerAccount"`
+	NextToken            string                 `position:"Query" name:"NextToken"`
+	OwnerAccount         string                 `position:"Query" name:"OwnerAccount"`
+	Tag                  *[]ListTagResourcesTag `position:"Query" name:"Tag"  type:"Repeated"`
+	OwnerId              requests.Integer       `position:"Query" name:"OwnerId"`
+	ResourceType         string                 `position:"Query" name:"ResourceType"`
+}
+
+// ListTagResourcesTag is a repeated param struct in ListTagResourcesRequest
+type ListTagResourcesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// ListTagResourcesResponse is the response struct for api ListTagResources
+type ListTagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	NextToken    string       `json:"NextToken" xml:"NextToken"`
+	TagResources TagResources `json:"TagResources" xml:"TagResources"`
+}
+
+// CreateListTagResourcesRequest creates a request to invoke ListTagResources API
+func CreateListTagResourcesRequest() (request *ListTagResourcesRequest) {
+	request = &ListTagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ListTagResources", "redisa", "openAPI")
+	return
+}
+
+// CreateListTagResourcesResponse creates a response to parse from ListTagResources response
+func CreateListTagResourcesResponse() (response *ListTagResourcesResponse) {
+	response = &ListTagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/migrate_to_other_zone.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// MigrateToOtherZone invokes the r_kvstore.MigrateToOtherZone API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/migratetootherzone.html
+func (client *Client) MigrateToOtherZone(request *MigrateToOtherZoneRequest) (response *MigrateToOtherZoneResponse, err error) {
+	response = CreateMigrateToOtherZoneResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MigrateToOtherZoneWithChan invokes the r_kvstore.MigrateToOtherZone API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/migratetootherzone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MigrateToOtherZoneWithChan(request *MigrateToOtherZoneRequest) (<-chan *MigrateToOtherZoneResponse, <-chan error) {
+	responseChan := make(chan *MigrateToOtherZoneResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MigrateToOtherZone(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MigrateToOtherZoneWithCallback invokes the r_kvstore.MigrateToOtherZone API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/migratetootherzone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MigrateToOtherZoneWithCallback(request *MigrateToOtherZoneRequest, callback func(response *MigrateToOtherZoneResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MigrateToOtherZoneResponse
+		var err error
+		defer close(result)
+		response, err = client.MigrateToOtherZone(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MigrateToOtherZoneRequest is the request struct for api MigrateToOtherZone
+type MigrateToOtherZoneRequest struct {
+	*requests.RpcRequest
+	VSwitchId            string           `position:"Query" name:"VSwitchId"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	EffectiveTime        string           `position:"Query" name:"EffectiveTime"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ZoneId               string           `position:"Query" name:"ZoneId"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// MigrateToOtherZoneResponse is the response struct for api MigrateToOtherZone
+type MigrateToOtherZoneResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateMigrateToOtherZoneRequest creates a request to invoke MigrateToOtherZone API
+func CreateMigrateToOtherZoneRequest() (request *MigrateToOtherZoneRequest) {
+	request = &MigrateToOtherZoneRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "MigrateToOtherZone", "redisa", "openAPI")
+	return
+}
+
+// CreateMigrateToOtherZoneResponse creates a response to parse from MigrateToOtherZone response
+func CreateMigrateToOtherZoneResponse() (response *MigrateToOtherZoneResponse) {
+	response = &MigrateToOtherZoneResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_account_description.go

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

+ 110 - 0
services/r_kvstore/modify_active_operation_task.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyActiveOperationTask invokes the r_kvstore.ModifyActiveOperationTask API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyactiveoperationtask.html
+func (client *Client) ModifyActiveOperationTask(request *ModifyActiveOperationTaskRequest) (response *ModifyActiveOperationTaskResponse, err error) {
+	response = CreateModifyActiveOperationTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyActiveOperationTaskWithChan invokes the r_kvstore.ModifyActiveOperationTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyactiveoperationtask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyActiveOperationTaskWithChan(request *ModifyActiveOperationTaskRequest) (<-chan *ModifyActiveOperationTaskResponse, <-chan error) {
+	responseChan := make(chan *ModifyActiveOperationTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyActiveOperationTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyActiveOperationTaskWithCallback invokes the r_kvstore.ModifyActiveOperationTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyactiveoperationtask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyActiveOperationTaskWithCallback(request *ModifyActiveOperationTaskRequest, callback func(response *ModifyActiveOperationTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyActiveOperationTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyActiveOperationTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyActiveOperationTaskRequest is the request struct for api ModifyActiveOperationTask
+type ModifyActiveOperationTaskRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Ids                  string           `position:"Query" name:"Ids"`
+	SwitchTime           string           `position:"Query" name:"SwitchTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyActiveOperationTaskResponse is the response struct for api ModifyActiveOperationTask
+type ModifyActiveOperationTaskResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Ids       string `json:"Ids" xml:"Ids"`
+}
+
+// CreateModifyActiveOperationTaskRequest creates a request to invoke ModifyActiveOperationTask API
+func CreateModifyActiveOperationTaskRequest() (request *ModifyActiveOperationTaskRequest) {
+	request = &ModifyActiveOperationTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyActiveOperationTask", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyActiveOperationTaskResponse creates a response to parse from ModifyActiveOperationTask response
+func CreateModifyActiveOperationTaskResponse() (response *ModifyActiveOperationTaskResponse) {
+	response = &ModifyActiveOperationTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_audit_log_config.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyAuditLogConfig invokes the r_kvstore.ModifyAuditLogConfig API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyauditlogconfig.html
+func (client *Client) ModifyAuditLogConfig(request *ModifyAuditLogConfigRequest) (response *ModifyAuditLogConfigResponse, err error) {
+	response = CreateModifyAuditLogConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyAuditLogConfigWithChan invokes the r_kvstore.ModifyAuditLogConfig API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyauditlogconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAuditLogConfigWithChan(request *ModifyAuditLogConfigRequest) (<-chan *ModifyAuditLogConfigResponse, <-chan error) {
+	responseChan := make(chan *ModifyAuditLogConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyAuditLogConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyAuditLogConfigWithCallback invokes the r_kvstore.ModifyAuditLogConfig API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyauditlogconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyAuditLogConfigWithCallback(request *ModifyAuditLogConfigRequest, callback func(response *ModifyAuditLogConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyAuditLogConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyAuditLogConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyAuditLogConfigRequest is the request struct for api ModifyAuditLogConfig
+type ModifyAuditLogConfigRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	AuditCommand         string           `position:"Query" name:"AuditCommand"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	Retention            string           `position:"Query" name:"Retention"`
+}
+
+// ModifyAuditLogConfigResponse is the response struct for api ModifyAuditLogConfig
+type ModifyAuditLogConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyAuditLogConfigRequest creates a request to invoke ModifyAuditLogConfig API
+func CreateModifyAuditLogConfigRequest() (request *ModifyAuditLogConfigRequest) {
+	request = &ModifyAuditLogConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyAuditLogConfig", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyAuditLogConfigResponse creates a response to parse from ModifyAuditLogConfig response
+func CreateModifyAuditLogConfigResponse() (response *ModifyAuditLogConfigResponse) {
+	response = &ModifyAuditLogConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_backup_policy.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyBackupPolicy invokes the r_kvstore.ModifyBackupPolicy API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifybackuppolicy.html
+func (client *Client) ModifyBackupPolicy(request *ModifyBackupPolicyRequest) (response *ModifyBackupPolicyResponse, err error) {
+	response = CreateModifyBackupPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyBackupPolicyWithChan invokes the r_kvstore.ModifyBackupPolicy API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifybackuppolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyBackupPolicyWithChan(request *ModifyBackupPolicyRequest) (<-chan *ModifyBackupPolicyResponse, <-chan error) {
+	responseChan := make(chan *ModifyBackupPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyBackupPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyBackupPolicyWithCallback invokes the r_kvstore.ModifyBackupPolicy API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifybackuppolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyBackupPolicyWithCallback(request *ModifyBackupPolicyRequest, callback func(response *ModifyBackupPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyBackupPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyBackupPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyBackupPolicyRequest is the request struct for api ModifyBackupPolicy
+type ModifyBackupPolicyRequest struct {
+	*requests.RpcRequest
+	PreferredBackupTime   string           `position:"Query" name:"PreferredBackupTime"`
+	PreferredBackupPeriod string           `position:"Query" name:"PreferredBackupPeriod"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId            string           `position:"Query" name:"InstanceId"`
+	SecurityToken         string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyBackupPolicyResponse is the response struct for api ModifyBackupPolicy
+type ModifyBackupPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyBackupPolicyRequest creates a request to invoke ModifyBackupPolicy API
+func CreateModifyBackupPolicyRequest() (request *ModifyBackupPolicyRequest) {
+	request = &ModifyBackupPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyBackupPolicy", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyBackupPolicyResponse creates a response to parse from ModifyBackupPolicy response
+func CreateModifyBackupPolicyResponse() (response *ModifyBackupPolicyResponse) {
+	response = &ModifyBackupPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_certification.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyCertification invokes the r_kvstore.ModifyCertification API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifycertification.html
+func (client *Client) ModifyCertification(request *ModifyCertificationRequest) (response *ModifyCertificationResponse, err error) {
+	response = CreateModifyCertificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyCertificationWithChan invokes the r_kvstore.ModifyCertification API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifycertification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCertificationWithChan(request *ModifyCertificationRequest) (<-chan *ModifyCertificationResponse, <-chan error) {
+	responseChan := make(chan *ModifyCertificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCertification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyCertificationWithCallback invokes the r_kvstore.ModifyCertification API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifycertification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCertificationWithCallback(request *ModifyCertificationRequest, callback func(response *ModifyCertificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCertificationResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCertification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyCertificationRequest is the request struct for api ModifyCertification
+type ModifyCertificationRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	NoCertification      requests.Boolean `position:"Query" name:"NoCertification"`
+}
+
+// ModifyCertificationResponse is the response struct for api ModifyCertification
+type ModifyCertificationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyCertificationRequest creates a request to invoke ModifyCertification API
+func CreateModifyCertificationRequest() (request *ModifyCertificationRequest) {
+	request = &ModifyCertificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyCertification", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyCertificationResponse creates a response to parse from ModifyCertification response
+func CreateModifyCertificationResponse() (response *ModifyCertificationResponse) {
+	response = &ModifyCertificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/modify_db_instance_connection_string.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyDBInstanceConnectionString invokes the r_kvstore.ModifyDBInstanceConnectionString API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifydbinstanceconnectionstring.html
+func (client *Client) ModifyDBInstanceConnectionString(request *ModifyDBInstanceConnectionStringRequest) (response *ModifyDBInstanceConnectionStringResponse, err error) {
+	response = CreateModifyDBInstanceConnectionStringResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDBInstanceConnectionStringWithChan invokes the r_kvstore.ModifyDBInstanceConnectionString API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifydbinstanceconnectionstring.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDBInstanceConnectionStringWithChan(request *ModifyDBInstanceConnectionStringRequest) (<-chan *ModifyDBInstanceConnectionStringResponse, <-chan error) {
+	responseChan := make(chan *ModifyDBInstanceConnectionStringResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDBInstanceConnectionString(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDBInstanceConnectionStringWithCallback invokes the r_kvstore.ModifyDBInstanceConnectionString API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifydbinstanceconnectionstring.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDBInstanceConnectionStringWithCallback(request *ModifyDBInstanceConnectionStringRequest, callback func(response *ModifyDBInstanceConnectionStringResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDBInstanceConnectionStringResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDBInstanceConnectionString(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDBInstanceConnectionStringRequest is the request struct for api ModifyDBInstanceConnectionString
+type ModifyDBInstanceConnectionStringRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId         requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount    string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount            string           `position:"Query" name:"OwnerAccount"`
+	NewConnectionString     string           `position:"Query" name:"NewConnectionString"`
+	OwnerId                 requests.Integer `position:"Query" name:"OwnerId"`
+	IPType                  string           `position:"Query" name:"IPType"`
+	CurrentConnectionString string           `position:"Query" name:"CurrentConnectionString"`
+	SecurityToken           string           `position:"Query" name:"SecurityToken"`
+	Port                    string           `position:"Query" name:"Port"`
+	DBInstanceId            string           `position:"Query" name:"DBInstanceId"`
+}
+
+// ModifyDBInstanceConnectionStringResponse is the response struct for api ModifyDBInstanceConnectionString
+type ModifyDBInstanceConnectionStringResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyDBInstanceConnectionStringRequest creates a request to invoke ModifyDBInstanceConnectionString API
+func CreateModifyDBInstanceConnectionStringRequest() (request *ModifyDBInstanceConnectionStringRequest) {
+	request = &ModifyDBInstanceConnectionStringRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyDBInstanceConnectionString", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyDBInstanceConnectionStringResponse creates a response to parse from ModifyDBInstanceConnectionString response
+func CreateModifyDBInstanceConnectionStringResponse() (response *ModifyDBInstanceConnectionStringResponse) {
+	response = &ModifyDBInstanceConnectionStringResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_db_instance_monitor.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyDBInstanceMonitor invokes the r_kvstore.ModifyDBInstanceMonitor API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifydbinstancemonitor.html
+func (client *Client) ModifyDBInstanceMonitor(request *ModifyDBInstanceMonitorRequest) (response *ModifyDBInstanceMonitorResponse, err error) {
+	response = CreateModifyDBInstanceMonitorResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDBInstanceMonitorWithChan invokes the r_kvstore.ModifyDBInstanceMonitor API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifydbinstancemonitor.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDBInstanceMonitorWithChan(request *ModifyDBInstanceMonitorRequest) (<-chan *ModifyDBInstanceMonitorResponse, <-chan error) {
+	responseChan := make(chan *ModifyDBInstanceMonitorResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDBInstanceMonitor(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDBInstanceMonitorWithCallback invokes the r_kvstore.ModifyDBInstanceMonitor API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifydbinstancemonitor.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDBInstanceMonitorWithCallback(request *ModifyDBInstanceMonitorRequest, callback func(response *ModifyDBInstanceMonitorResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDBInstanceMonitorResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDBInstanceMonitor(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDBInstanceMonitorRequest is the request struct for api ModifyDBInstanceMonitor
+type ModifyDBInstanceMonitorRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	Interval             string           `position:"Query" name:"Interval"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyDBInstanceMonitorResponse is the response struct for api ModifyDBInstanceMonitor
+type ModifyDBInstanceMonitorResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyDBInstanceMonitorRequest creates a request to invoke ModifyDBInstanceMonitor API
+func CreateModifyDBInstanceMonitorRequest() (request *ModifyDBInstanceMonitorRequest) {
+	request = &ModifyDBInstanceMonitorRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyDBInstanceMonitor", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyDBInstanceMonitorResponse creates a response to parse from ModifyDBInstanceMonitor response
+func CreateModifyDBInstanceMonitorResponse() (response *ModifyDBInstanceMonitorResponse) {
+	response = &ModifyDBInstanceMonitorResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_guard_domain_mode.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyGuardDomainMode invokes the r_kvstore.ModifyGuardDomainMode API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyguarddomainmode.html
+func (client *Client) ModifyGuardDomainMode(request *ModifyGuardDomainModeRequest) (response *ModifyGuardDomainModeResponse, err error) {
+	response = CreateModifyGuardDomainModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyGuardDomainModeWithChan invokes the r_kvstore.ModifyGuardDomainMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyguarddomainmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyGuardDomainModeWithChan(request *ModifyGuardDomainModeRequest) (<-chan *ModifyGuardDomainModeResponse, <-chan error) {
+	responseChan := make(chan *ModifyGuardDomainModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyGuardDomainMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyGuardDomainModeWithCallback invokes the r_kvstore.ModifyGuardDomainMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyguarddomainmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyGuardDomainModeWithCallback(request *ModifyGuardDomainModeRequest, callback func(response *ModifyGuardDomainModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyGuardDomainModeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyGuardDomainMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyGuardDomainModeRequest is the request struct for api ModifyGuardDomainMode
+type ModifyGuardDomainModeRequest struct {
+	*requests.RpcRequest
+	DomainMode           string           `position:"Query" name:"DomainMode"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyGuardDomainModeResponse is the response struct for api ModifyGuardDomainMode
+type ModifyGuardDomainModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyGuardDomainModeRequest creates a request to invoke ModifyGuardDomainMode API
+func CreateModifyGuardDomainModeRequest() (request *ModifyGuardDomainModeRequest) {
+	request = &ModifyGuardDomainModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyGuardDomainMode", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyGuardDomainModeResponse creates a response to parse from ModifyGuardDomainMode response
+func CreateModifyGuardDomainModeResponse() (response *ModifyGuardDomainModeResponse) {
+	response = &ModifyGuardDomainModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_instance_attribute.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceAttribute invokes the r_kvstore.ModifyInstanceAttribute API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceattribute.html
+func (client *Client) ModifyInstanceAttribute(request *ModifyInstanceAttributeRequest) (response *ModifyInstanceAttributeResponse, err error) {
+	response = CreateModifyInstanceAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceAttributeWithChan invokes the r_kvstore.ModifyInstanceAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceAttributeWithChan(request *ModifyInstanceAttributeRequest) (<-chan *ModifyInstanceAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceAttributeWithCallback invokes the r_kvstore.ModifyInstanceAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceAttributeWithCallback(request *ModifyInstanceAttributeRequest, callback func(response *ModifyInstanceAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceAttributeRequest is the request struct for api ModifyInstanceAttribute
+type ModifyInstanceAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	InstanceName         string           `position:"Query" name:"InstanceName"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	NewPassword          string           `position:"Query" name:"NewPassword"`
+}
+
+// ModifyInstanceAttributeResponse is the response struct for api ModifyInstanceAttribute
+type ModifyInstanceAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceAttributeRequest creates a request to invoke ModifyInstanceAttribute API
+func CreateModifyInstanceAttributeRequest() (request *ModifyInstanceAttributeRequest) {
+	request = &ModifyInstanceAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceAttribute", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceAttributeResponse creates a response to parse from ModifyInstanceAttribute response
+func CreateModifyInstanceAttributeResponse() (response *ModifyInstanceAttributeResponse) {
+	response = &ModifyInstanceAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_instance_auto_renewal_attribute.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceAutoRenewalAttribute invokes the r_kvstore.ModifyInstanceAutoRenewalAttribute API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceautorenewalattribute.html
+func (client *Client) ModifyInstanceAutoRenewalAttribute(request *ModifyInstanceAutoRenewalAttributeRequest) (response *ModifyInstanceAutoRenewalAttributeResponse, err error) {
+	response = CreateModifyInstanceAutoRenewalAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceAutoRenewalAttributeWithChan invokes the r_kvstore.ModifyInstanceAutoRenewalAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceautorenewalattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceAutoRenewalAttributeWithChan(request *ModifyInstanceAutoRenewalAttributeRequest) (<-chan *ModifyInstanceAutoRenewalAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceAutoRenewalAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceAutoRenewalAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceAutoRenewalAttributeWithCallback invokes the r_kvstore.ModifyInstanceAutoRenewalAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceautorenewalattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceAutoRenewalAttributeWithCallback(request *ModifyInstanceAutoRenewalAttributeRequest, callback func(response *ModifyInstanceAutoRenewalAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceAutoRenewalAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceAutoRenewalAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceAutoRenewalAttributeRequest is the request struct for api ModifyInstanceAutoRenewalAttribute
+type ModifyInstanceAutoRenewalAttributeRequest struct {
+	*requests.RpcRequest
+	Duration             string           `position:"Query" name:"Duration"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	AutoRenew            string           `position:"Query" name:"AutoRenew"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	DBInstanceId         string           `position:"Query" name:"DBInstanceId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyInstanceAutoRenewalAttributeResponse is the response struct for api ModifyInstanceAutoRenewalAttribute
+type ModifyInstanceAutoRenewalAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceAutoRenewalAttributeRequest creates a request to invoke ModifyInstanceAutoRenewalAttribute API
+func CreateModifyInstanceAutoRenewalAttributeRequest() (request *ModifyInstanceAutoRenewalAttributeRequest) {
+	request = &ModifyInstanceAutoRenewalAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceAutoRenewalAttribute", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceAutoRenewalAttributeResponse creates a response to parse from ModifyInstanceAutoRenewalAttribute response
+func CreateModifyInstanceAutoRenewalAttributeResponse() (response *ModifyInstanceAutoRenewalAttributeResponse) {
+	response = &ModifyInstanceAutoRenewalAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_instance_config.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceConfig invokes the r_kvstore.ModifyInstanceConfig API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceconfig.html
+func (client *Client) ModifyInstanceConfig(request *ModifyInstanceConfigRequest) (response *ModifyInstanceConfigResponse, err error) {
+	response = CreateModifyInstanceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceConfigWithChan invokes the r_kvstore.ModifyInstanceConfig API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceConfigWithChan(request *ModifyInstanceConfigRequest) (<-chan *ModifyInstanceConfigResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceConfigWithCallback invokes the r_kvstore.ModifyInstanceConfig API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceConfigWithCallback(request *ModifyInstanceConfigRequest, callback func(response *ModifyInstanceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceConfigRequest is the request struct for api ModifyInstanceConfig
+type ModifyInstanceConfigRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	Config               string           `position:"Query" name:"Config"`
+}
+
+// ModifyInstanceConfigResponse is the response struct for api ModifyInstanceConfig
+type ModifyInstanceConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceConfigRequest creates a request to invoke ModifyInstanceConfig API
+func CreateModifyInstanceConfigRequest() (request *ModifyInstanceConfigRequest) {
+	request = &ModifyInstanceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceConfig", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceConfigResponse creates a response to parse from ModifyInstanceConfig response
+func CreateModifyInstanceConfigResponse() (response *ModifyInstanceConfigResponse) {
+	response = &ModifyInstanceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_instance_maintain_time.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceMaintainTime invokes the r_kvstore.ModifyInstanceMaintainTime API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancemaintaintime.html
+func (client *Client) ModifyInstanceMaintainTime(request *ModifyInstanceMaintainTimeRequest) (response *ModifyInstanceMaintainTimeResponse, err error) {
+	response = CreateModifyInstanceMaintainTimeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceMaintainTimeWithChan invokes the r_kvstore.ModifyInstanceMaintainTime API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancemaintaintime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceMaintainTimeWithChan(request *ModifyInstanceMaintainTimeRequest) (<-chan *ModifyInstanceMaintainTimeResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceMaintainTimeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceMaintainTime(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceMaintainTimeWithCallback invokes the r_kvstore.ModifyInstanceMaintainTime API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancemaintaintime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceMaintainTimeWithCallback(request *ModifyInstanceMaintainTimeRequest, callback func(response *ModifyInstanceMaintainTimeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceMaintainTimeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceMaintainTime(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceMaintainTimeRequest is the request struct for api ModifyInstanceMaintainTime
+type ModifyInstanceMaintainTimeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	MaintainStartTime    string           `position:"Query" name:"MaintainStartTime"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	MaintainEndTime      string           `position:"Query" name:"MaintainEndTime"`
+}
+
+// ModifyInstanceMaintainTimeResponse is the response struct for api ModifyInstanceMaintainTime
+type ModifyInstanceMaintainTimeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceMaintainTimeRequest creates a request to invoke ModifyInstanceMaintainTime API
+func CreateModifyInstanceMaintainTimeRequest() (request *ModifyInstanceMaintainTimeRequest) {
+	request = &ModifyInstanceMaintainTimeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceMaintainTime", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceMaintainTimeResponse creates a response to parse from ModifyInstanceMaintainTime response
+func CreateModifyInstanceMaintainTimeResponse() (response *ModifyInstanceMaintainTimeResponse) {
+	response = &ModifyInstanceMaintainTimeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_instance_major_version.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceMajorVersion invokes the r_kvstore.ModifyInstanceMajorVersion API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancemajorversion.html
+func (client *Client) ModifyInstanceMajorVersion(request *ModifyInstanceMajorVersionRequest) (response *ModifyInstanceMajorVersionResponse, err error) {
+	response = CreateModifyInstanceMajorVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceMajorVersionWithChan invokes the r_kvstore.ModifyInstanceMajorVersion API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancemajorversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceMajorVersionWithChan(request *ModifyInstanceMajorVersionRequest) (<-chan *ModifyInstanceMajorVersionResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceMajorVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceMajorVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceMajorVersionWithCallback invokes the r_kvstore.ModifyInstanceMajorVersion API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancemajorversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceMajorVersionWithCallback(request *ModifyInstanceMajorVersionRequest, callback func(response *ModifyInstanceMajorVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceMajorVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceMajorVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceMajorVersionRequest is the request struct for api ModifyInstanceMajorVersion
+type ModifyInstanceMajorVersionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	MajorVersion         string           `position:"Query" name:"MajorVersion"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	EffectTime           string           `position:"Query" name:"EffectTime"`
+}
+
+// ModifyInstanceMajorVersionResponse is the response struct for api ModifyInstanceMajorVersion
+type ModifyInstanceMajorVersionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceMajorVersionRequest creates a request to invoke ModifyInstanceMajorVersion API
+func CreateModifyInstanceMajorVersionRequest() (request *ModifyInstanceMajorVersionRequest) {
+	request = &ModifyInstanceMajorVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceMajorVersion", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceMajorVersionResponse creates a response to parse from ModifyInstanceMajorVersion response
+func CreateModifyInstanceMajorVersionResponse() (response *ModifyInstanceMajorVersionResponse) {
+	response = &ModifyInstanceMajorVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/r_kvstore/modify_instance_minor_version.go

@@ -0,0 +1,110 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceMinorVersion invokes the r_kvstore.ModifyInstanceMinorVersion API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceminorversion.html
+func (client *Client) ModifyInstanceMinorVersion(request *ModifyInstanceMinorVersionRequest) (response *ModifyInstanceMinorVersionResponse, err error) {
+	response = CreateModifyInstanceMinorVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceMinorVersionWithChan invokes the r_kvstore.ModifyInstanceMinorVersion API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceminorversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceMinorVersionWithChan(request *ModifyInstanceMinorVersionRequest) (<-chan *ModifyInstanceMinorVersionResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceMinorVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceMinorVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceMinorVersionWithCallback invokes the r_kvstore.ModifyInstanceMinorVersion API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstanceminorversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceMinorVersionWithCallback(request *ModifyInstanceMinorVersionRequest, callback func(response *ModifyInstanceMinorVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceMinorVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceMinorVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceMinorVersionRequest is the request struct for api ModifyInstanceMinorVersion
+type ModifyInstanceMinorVersionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Minorversion         string           `position:"Query" name:"Minorversion"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	EffectTime           string           `position:"Query" name:"EffectTime"`
+}
+
+// ModifyInstanceMinorVersionResponse is the response struct for api ModifyInstanceMinorVersion
+type ModifyInstanceMinorVersionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceMinorVersionRequest creates a request to invoke ModifyInstanceMinorVersion API
+func CreateModifyInstanceMinorVersionRequest() (request *ModifyInstanceMinorVersionRequest) {
+	request = &ModifyInstanceMinorVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceMinorVersion", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceMinorVersionResponse creates a response to parse from ModifyInstanceMinorVersion response
+func CreateModifyInstanceMinorVersionResponse() (response *ModifyInstanceMinorVersionResponse) {
+	response = &ModifyInstanceMinorVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/modify_instance_net_expire_time.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceNetExpireTime invokes the r_kvstore.ModifyInstanceNetExpireTime API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancenetexpiretime.html
+func (client *Client) ModifyInstanceNetExpireTime(request *ModifyInstanceNetExpireTimeRequest) (response *ModifyInstanceNetExpireTimeResponse, err error) {
+	response = CreateModifyInstanceNetExpireTimeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceNetExpireTimeWithChan invokes the r_kvstore.ModifyInstanceNetExpireTime API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancenetexpiretime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceNetExpireTimeWithChan(request *ModifyInstanceNetExpireTimeRequest) (<-chan *ModifyInstanceNetExpireTimeResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceNetExpireTimeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceNetExpireTime(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceNetExpireTimeWithCallback invokes the r_kvstore.ModifyInstanceNetExpireTime API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancenetexpiretime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceNetExpireTimeWithCallback(request *ModifyInstanceNetExpireTimeRequest, callback func(response *ModifyInstanceNetExpireTimeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceNetExpireTimeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceNetExpireTime(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceNetExpireTimeRequest is the request struct for api ModifyInstanceNetExpireTime
+type ModifyInstanceNetExpireTimeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ConnectionString     string           `position:"Query" name:"ConnectionString"`
+	ClassicExpiredDays   requests.Integer `position:"Query" name:"ClassicExpiredDays"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyInstanceNetExpireTimeResponse is the response struct for api ModifyInstanceNetExpireTime
+type ModifyInstanceNetExpireTimeResponse struct {
+	*responses.BaseResponse
+	RequestId    string                                    `json:"RequestId" xml:"RequestId"`
+	InstanceId   string                                    `json:"InstanceId" xml:"InstanceId"`
+	NetInfoItems NetInfoItemsInModifyInstanceNetExpireTime `json:"NetInfoItems" xml:"NetInfoItems"`
+}
+
+// CreateModifyInstanceNetExpireTimeRequest creates a request to invoke ModifyInstanceNetExpireTime API
+func CreateModifyInstanceNetExpireTimeRequest() (request *ModifyInstanceNetExpireTimeRequest) {
+	request = &ModifyInstanceNetExpireTimeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceNetExpireTime", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceNetExpireTimeResponse creates a response to parse from ModifyInstanceNetExpireTime response
+func CreateModifyInstanceNetExpireTimeResponse() (response *ModifyInstanceNetExpireTimeResponse) {
+	response = &ModifyInstanceNetExpireTimeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/r_kvstore/modify_instance_spec.go

@@ -0,0 +1,116 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceSpec invokes the r_kvstore.ModifyInstanceSpec API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancespec.html
+func (client *Client) ModifyInstanceSpec(request *ModifyInstanceSpecRequest) (response *ModifyInstanceSpecResponse, err error) {
+	response = CreateModifyInstanceSpecResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceSpecWithChan invokes the r_kvstore.ModifyInstanceSpec API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancespec.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceSpecWithChan(request *ModifyInstanceSpecRequest) (<-chan *ModifyInstanceSpecResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceSpecResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceSpec(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceSpecWithCallback invokes the r_kvstore.ModifyInstanceSpec API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancespec.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceSpecWithCallback(request *ModifyInstanceSpecRequest, callback func(response *ModifyInstanceSpecResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceSpecResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceSpec(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceSpecRequest is the request struct for api ModifyInstanceSpec
+type ModifyInstanceSpecRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	AutoPay              requests.Boolean `position:"Query" name:"AutoPay"`
+	FromApp              string           `position:"Query" name:"FromApp"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	CouponNo             string           `position:"Query" name:"CouponNo"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	InstanceClass        string           `position:"Query" name:"InstanceClass"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	EffectiveTime        string           `position:"Query" name:"EffectiveTime"`
+	ForceUpgrade         requests.Boolean `position:"Query" name:"ForceUpgrade"`
+	BusinessInfo         string           `position:"Query" name:"BusinessInfo"`
+}
+
+// ModifyInstanceSpecResponse is the response struct for api ModifyInstanceSpec
+type ModifyInstanceSpecResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	OrderId   string `json:"OrderId" xml:"OrderId"`
+}
+
+// CreateModifyInstanceSpecRequest creates a request to invoke ModifyInstanceSpec API
+func CreateModifyInstanceSpecRequest() (request *ModifyInstanceSpecRequest) {
+	request = &ModifyInstanceSpecRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceSpec", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceSpecResponse creates a response to parse from ModifyInstanceSpec response
+func CreateModifyInstanceSpecResponse() (response *ModifyInstanceSpecResponse) {
+	response = &ModifyInstanceSpecResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/modify_instance_spec_pre_check.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceSpecPreCheck invokes the r_kvstore.ModifyInstanceSpecPreCheck API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancespecprecheck.html
+func (client *Client) ModifyInstanceSpecPreCheck(request *ModifyInstanceSpecPreCheckRequest) (response *ModifyInstanceSpecPreCheckResponse, err error) {
+	response = CreateModifyInstanceSpecPreCheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceSpecPreCheckWithChan invokes the r_kvstore.ModifyInstanceSpecPreCheck API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancespecprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceSpecPreCheckWithChan(request *ModifyInstanceSpecPreCheckRequest) (<-chan *ModifyInstanceSpecPreCheckResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceSpecPreCheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceSpecPreCheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceSpecPreCheckWithCallback invokes the r_kvstore.ModifyInstanceSpecPreCheck API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancespecprecheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceSpecPreCheckWithCallback(request *ModifyInstanceSpecPreCheckRequest, callback func(response *ModifyInstanceSpecPreCheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceSpecPreCheckResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceSpecPreCheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceSpecPreCheckRequest is the request struct for api ModifyInstanceSpecPreCheck
+type ModifyInstanceSpecPreCheckRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	TargetInstanceClass  string           `position:"Query" name:"TargetInstanceClass"`
+}
+
+// ModifyInstanceSpecPreCheckResponse is the response struct for api ModifyInstanceSpecPreCheck
+type ModifyInstanceSpecPreCheckResponse struct {
+	*responses.BaseResponse
+	RequestId       string         `json:"RequestId" xml:"RequestId"`
+	IsAllowModify   bool           `json:"IsAllowModify" xml:"IsAllowModify"`
+	DisableCommands string         `json:"DisableCommands" xml:"DisableCommands"`
+	PreCheckResult  PreCheckResult `json:"PreCheckResult" xml:"PreCheckResult"`
+}
+
+// CreateModifyInstanceSpecPreCheckRequest creates a request to invoke ModifyInstanceSpecPreCheck API
+func CreateModifyInstanceSpecPreCheckRequest() (request *ModifyInstanceSpecPreCheckRequest) {
+	request = &ModifyInstanceSpecPreCheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceSpecPreCheck", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceSpecPreCheckResponse creates a response to parse from ModifyInstanceSpecPreCheck response
+func CreateModifyInstanceSpecPreCheckResponse() (response *ModifyInstanceSpecPreCheckResponse) {
+	response = &ModifyInstanceSpecPreCheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/modify_instance_ssl.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceSSL invokes the r_kvstore.ModifyInstanceSSL API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancessl.html
+func (client *Client) ModifyInstanceSSL(request *ModifyInstanceSSLRequest) (response *ModifyInstanceSSLResponse, err error) {
+	response = CreateModifyInstanceSSLResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceSSLWithChan invokes the r_kvstore.ModifyInstanceSSL API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancessl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceSSLWithChan(request *ModifyInstanceSSLRequest) (<-chan *ModifyInstanceSSLResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceSSLResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceSSL(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceSSLWithCallback invokes the r_kvstore.ModifyInstanceSSL API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancessl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceSSLWithCallback(request *ModifyInstanceSSLRequest, callback func(response *ModifyInstanceSSLResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceSSLResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceSSL(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceSSLRequest is the request struct for api ModifyInstanceSSL
+type ModifyInstanceSSLRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	SSLEnabled           string           `position:"Query" name:"SSLEnabled"`
+}
+
+// ModifyInstanceSSLResponse is the response struct for api ModifyInstanceSSL
+type ModifyInstanceSSLResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	InstanceId string `json:"InstanceId" xml:"InstanceId"`
+	TaskId     string `json:"TaskId" xml:"TaskId"`
+}
+
+// CreateModifyInstanceSSLRequest creates a request to invoke ModifyInstanceSSL API
+func CreateModifyInstanceSSLRequest() (request *ModifyInstanceSSLRequest) {
+	request = &ModifyInstanceSSLRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceSSL", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceSSLResponse creates a response to parse from ModifyInstanceSSL response
+func CreateModifyInstanceSSLResponse() (response *ModifyInstanceSSLResponse) {
+	response = &ModifyInstanceSSLResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_instance_vpc_auth_mode.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyInstanceVpcAuthMode invokes the r_kvstore.ModifyInstanceVpcAuthMode API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancevpcauthmode.html
+func (client *Client) ModifyInstanceVpcAuthMode(request *ModifyInstanceVpcAuthModeRequest) (response *ModifyInstanceVpcAuthModeResponse, err error) {
+	response = CreateModifyInstanceVpcAuthModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceVpcAuthModeWithChan invokes the r_kvstore.ModifyInstanceVpcAuthMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancevpcauthmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceVpcAuthModeWithChan(request *ModifyInstanceVpcAuthModeRequest) (<-chan *ModifyInstanceVpcAuthModeResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceVpcAuthModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceVpcAuthMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceVpcAuthModeWithCallback invokes the r_kvstore.ModifyInstanceVpcAuthMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyinstancevpcauthmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceVpcAuthModeWithCallback(request *ModifyInstanceVpcAuthModeRequest, callback func(response *ModifyInstanceVpcAuthModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceVpcAuthModeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceVpcAuthMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceVpcAuthModeRequest is the request struct for api ModifyInstanceVpcAuthMode
+type ModifyInstanceVpcAuthModeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	VpcAuthMode          string           `position:"Query" name:"VpcAuthMode"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyInstanceVpcAuthModeResponse is the response struct for api ModifyInstanceVpcAuthMode
+type ModifyInstanceVpcAuthModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceVpcAuthModeRequest creates a request to invoke ModifyInstanceVpcAuthMode API
+func CreateModifyInstanceVpcAuthModeRequest() (request *ModifyInstanceVpcAuthModeRequest) {
+	request = &ModifyInstanceVpcAuthModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyInstanceVpcAuthMode", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyInstanceVpcAuthModeResponse creates a response to parse from ModifyInstanceVpcAuthMode response
+func CreateModifyInstanceVpcAuthModeResponse() (response *ModifyInstanceVpcAuthModeResponse) {
+	response = &ModifyInstanceVpcAuthModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/modify_intranet_attribute.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyIntranetAttribute invokes the r_kvstore.ModifyIntranetAttribute API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyintranetattribute.html
+func (client *Client) ModifyIntranetAttribute(request *ModifyIntranetAttributeRequest) (response *ModifyIntranetAttributeResponse, err error) {
+	response = CreateModifyIntranetAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyIntranetAttributeWithChan invokes the r_kvstore.ModifyIntranetAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyintranetattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyIntranetAttributeWithChan(request *ModifyIntranetAttributeRequest) (<-chan *ModifyIntranetAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyIntranetAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyIntranetAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyIntranetAttributeWithCallback invokes the r_kvstore.ModifyIntranetAttribute API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyintranetattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyIntranetAttributeWithCallback(request *ModifyIntranetAttributeRequest, callback func(response *ModifyIntranetAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyIntranetAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyIntranetAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyIntranetAttributeRequest is the request struct for api ModifyIntranetAttribute
+type ModifyIntranetAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyIntranetAttributeResponse is the response struct for api ModifyIntranetAttribute
+type ModifyIntranetAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyIntranetAttributeRequest creates a request to invoke ModifyIntranetAttribute API
+func CreateModifyIntranetAttributeRequest() (request *ModifyIntranetAttributeRequest) {
+	request = &ModifyIntranetAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyIntranetAttribute", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyIntranetAttributeResponse creates a response to parse from ModifyIntranetAttribute response
+func CreateModifyIntranetAttributeResponse() (response *ModifyIntranetAttributeResponse) {
+	response = &ModifyIntranetAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_replica_description.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyReplicaDescription invokes the r_kvstore.ModifyReplicaDescription API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicadescription.html
+func (client *Client) ModifyReplicaDescription(request *ModifyReplicaDescriptionRequest) (response *ModifyReplicaDescriptionResponse, err error) {
+	response = CreateModifyReplicaDescriptionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyReplicaDescriptionWithChan invokes the r_kvstore.ModifyReplicaDescription API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicadescription.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaDescriptionWithChan(request *ModifyReplicaDescriptionRequest) (<-chan *ModifyReplicaDescriptionResponse, <-chan error) {
+	responseChan := make(chan *ModifyReplicaDescriptionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyReplicaDescription(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyReplicaDescriptionWithCallback invokes the r_kvstore.ModifyReplicaDescription API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicadescription.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaDescriptionWithCallback(request *ModifyReplicaDescriptionRequest, callback func(response *ModifyReplicaDescriptionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyReplicaDescriptionResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyReplicaDescription(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyReplicaDescriptionRequest is the request struct for api ModifyReplicaDescription
+type ModifyReplicaDescriptionRequest struct {
+	*requests.RpcRequest
+	ReplicaDescription   string           `position:"Query" name:"ReplicaDescription"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyReplicaDescriptionResponse is the response struct for api ModifyReplicaDescription
+type ModifyReplicaDescriptionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyReplicaDescriptionRequest creates a request to invoke ModifyReplicaDescription API
+func CreateModifyReplicaDescriptionRequest() (request *ModifyReplicaDescriptionRequest) {
+	request = &ModifyReplicaDescriptionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyReplicaDescription", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyReplicaDescriptionResponse creates a response to parse from ModifyReplicaDescription response
+func CreateModifyReplicaDescriptionResponse() (response *ModifyReplicaDescriptionResponse) {
+	response = &ModifyReplicaDescriptionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/r_kvstore/modify_replica_mode.go

@@ -0,0 +1,111 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyReplicaMode invokes the r_kvstore.ModifyReplicaMode API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicamode.html
+func (client *Client) ModifyReplicaMode(request *ModifyReplicaModeRequest) (response *ModifyReplicaModeResponse, err error) {
+	response = CreateModifyReplicaModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyReplicaModeWithChan invokes the r_kvstore.ModifyReplicaMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicamode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaModeWithChan(request *ModifyReplicaModeRequest) (<-chan *ModifyReplicaModeResponse, <-chan error) {
+	responseChan := make(chan *ModifyReplicaModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyReplicaMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyReplicaModeWithCallback invokes the r_kvstore.ModifyReplicaMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicamode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaModeWithCallback(request *ModifyReplicaModeRequest, callback func(response *ModifyReplicaModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyReplicaModeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyReplicaMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyReplicaModeRequest is the request struct for api ModifyReplicaMode
+type ModifyReplicaModeRequest struct {
+	*requests.RpcRequest
+	DomainMode           string           `position:"Query" name:"DomainMode"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PrimaryInstanceId    string           `position:"Query" name:"PrimaryInstanceId"`
+	ReplicaMode          string           `position:"Query" name:"ReplicaMode"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyReplicaModeResponse is the response struct for api ModifyReplicaMode
+type ModifyReplicaModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyReplicaModeRequest creates a request to invoke ModifyReplicaMode API
+func CreateModifyReplicaModeRequest() (request *ModifyReplicaModeRequest) {
+	request = &ModifyReplicaModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyReplicaMode", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyReplicaModeResponse creates a response to parse from ModifyReplicaMode response
+func CreateModifyReplicaModeResponse() (response *ModifyReplicaModeResponse) {
+	response = &ModifyReplicaModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_replica_recovery_mode.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyReplicaRecoveryMode invokes the r_kvstore.ModifyReplicaRecoveryMode API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicarecoverymode.html
+func (client *Client) ModifyReplicaRecoveryMode(request *ModifyReplicaRecoveryModeRequest) (response *ModifyReplicaRecoveryModeResponse, err error) {
+	response = CreateModifyReplicaRecoveryModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyReplicaRecoveryModeWithChan invokes the r_kvstore.ModifyReplicaRecoveryMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicarecoverymode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaRecoveryModeWithChan(request *ModifyReplicaRecoveryModeRequest) (<-chan *ModifyReplicaRecoveryModeResponse, <-chan error) {
+	responseChan := make(chan *ModifyReplicaRecoveryModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyReplicaRecoveryMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyReplicaRecoveryModeWithCallback invokes the r_kvstore.ModifyReplicaRecoveryMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicarecoverymode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaRecoveryModeWithCallback(request *ModifyReplicaRecoveryModeRequest, callback func(response *ModifyReplicaRecoveryModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyReplicaRecoveryModeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyReplicaRecoveryMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyReplicaRecoveryModeRequest is the request struct for api ModifyReplicaRecoveryMode
+type ModifyReplicaRecoveryModeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	RecoveryMode         string           `position:"Query" name:"RecoveryMode"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyReplicaRecoveryModeResponse is the response struct for api ModifyReplicaRecoveryMode
+type ModifyReplicaRecoveryModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyReplicaRecoveryModeRequest creates a request to invoke ModifyReplicaRecoveryMode API
+func CreateModifyReplicaRecoveryModeRequest() (request *ModifyReplicaRecoveryModeRequest) {
+	request = &ModifyReplicaRecoveryModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyReplicaRecoveryMode", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyReplicaRecoveryModeResponse creates a response to parse from ModifyReplicaRecoveryMode response
+func CreateModifyReplicaRecoveryModeResponse() (response *ModifyReplicaRecoveryModeResponse) {
+	response = &ModifyReplicaRecoveryModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/modify_replica_relation.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyReplicaRelation invokes the r_kvstore.ModifyReplicaRelation API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicarelation.html
+func (client *Client) ModifyReplicaRelation(request *ModifyReplicaRelationRequest) (response *ModifyReplicaRelationResponse, err error) {
+	response = CreateModifyReplicaRelationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyReplicaRelationWithChan invokes the r_kvstore.ModifyReplicaRelation API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicarelation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaRelationWithChan(request *ModifyReplicaRelationRequest) (<-chan *ModifyReplicaRelationResponse, <-chan error) {
+	responseChan := make(chan *ModifyReplicaRelationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyReplicaRelation(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyReplicaRelationWithCallback invokes the r_kvstore.ModifyReplicaRelation API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicarelation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaRelationWithCallback(request *ModifyReplicaRelationRequest, callback func(response *ModifyReplicaRelationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyReplicaRelationResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyReplicaRelation(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyReplicaRelationRequest is the request struct for api ModifyReplicaRelation
+type ModifyReplicaRelationRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyReplicaRelationResponse is the response struct for api ModifyReplicaRelation
+type ModifyReplicaRelationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyReplicaRelationRequest creates a request to invoke ModifyReplicaRelation API
+func CreateModifyReplicaRelationRequest() (request *ModifyReplicaRelationRequest) {
+	request = &ModifyReplicaRelationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyReplicaRelation", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyReplicaRelationResponse creates a response to parse from ModifyReplicaRelation response
+func CreateModifyReplicaRelationResponse() (response *ModifyReplicaRelationResponse) {
+	response = &ModifyReplicaRelationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/modify_replica_verification_mode.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifyReplicaVerificationMode invokes the r_kvstore.ModifyReplicaVerificationMode API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicaverificationmode.html
+func (client *Client) ModifyReplicaVerificationMode(request *ModifyReplicaVerificationModeRequest) (response *ModifyReplicaVerificationModeResponse, err error) {
+	response = CreateModifyReplicaVerificationModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyReplicaVerificationModeWithChan invokes the r_kvstore.ModifyReplicaVerificationMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicaverificationmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaVerificationModeWithChan(request *ModifyReplicaVerificationModeRequest) (<-chan *ModifyReplicaVerificationModeResponse, <-chan error) {
+	responseChan := make(chan *ModifyReplicaVerificationModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyReplicaVerificationMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyReplicaVerificationModeWithCallback invokes the r_kvstore.ModifyReplicaVerificationMode API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifyreplicaverificationmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyReplicaVerificationModeWithCallback(request *ModifyReplicaVerificationModeRequest, callback func(response *ModifyReplicaVerificationModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyReplicaVerificationModeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyReplicaVerificationMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyReplicaVerificationModeRequest is the request struct for api ModifyReplicaVerificationMode
+type ModifyReplicaVerificationModeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	VerificationMode     string           `position:"Query" name:"VerificationMode"`
+	SecurityToken        string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	ReplicaId            string           `position:"Query" name:"ReplicaId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyReplicaVerificationModeResponse is the response struct for api ModifyReplicaVerificationMode
+type ModifyReplicaVerificationModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyReplicaVerificationModeRequest creates a request to invoke ModifyReplicaVerificationMode API
+func CreateModifyReplicaVerificationModeRequest() (request *ModifyReplicaVerificationModeRequest) {
+	request = &ModifyReplicaVerificationModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifyReplicaVerificationMode", "redisa", "openAPI")
+	return
+}
+
+// CreateModifyReplicaVerificationModeResponse creates a response to parse from ModifyReplicaVerificationMode response
+func CreateModifyReplicaVerificationModeResponse() (response *ModifyReplicaVerificationModeResponse) {
+	response = &ModifyReplicaVerificationModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/r_kvstore/modify_security_ips.go

@@ -0,0 +1,112 @@
+package r_kvstore
+
+//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"
+)
+
+// ModifySecurityIps invokes the r_kvstore.ModifySecurityIps API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifysecurityips.html
+func (client *Client) ModifySecurityIps(request *ModifySecurityIpsRequest) (response *ModifySecurityIpsResponse, err error) {
+	response = CreateModifySecurityIpsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifySecurityIpsWithChan invokes the r_kvstore.ModifySecurityIps API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifysecurityips.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySecurityIpsWithChan(request *ModifySecurityIpsRequest) (<-chan *ModifySecurityIpsResponse, <-chan error) {
+	responseChan := make(chan *ModifySecurityIpsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifySecurityIps(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifySecurityIpsWithCallback invokes the r_kvstore.ModifySecurityIps API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/modifysecurityips.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySecurityIpsWithCallback(request *ModifySecurityIpsRequest, callback func(response *ModifySecurityIpsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifySecurityIpsResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifySecurityIps(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifySecurityIpsRequest is the request struct for api ModifySecurityIps
+type ModifySecurityIpsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId          requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ModifyMode               string           `position:"Query" name:"ModifyMode"`
+	ResourceOwnerAccount     string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount             string           `position:"Query" name:"OwnerAccount"`
+	SecurityIps              string           `position:"Query" name:"SecurityIps"`
+	OwnerId                  requests.Integer `position:"Query" name:"OwnerId"`
+	SecurityIpGroupName      string           `position:"Query" name:"SecurityIpGroupName"`
+	InstanceId               string           `position:"Query" name:"InstanceId"`
+	SecurityToken            string           `position:"Query" name:"SecurityToken"`
+	SecurityIpGroupAttribute string           `position:"Query" name:"SecurityIpGroupAttribute"`
+}
+
+// ModifySecurityIpsResponse is the response struct for api ModifySecurityIps
+type ModifySecurityIpsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifySecurityIpsRequest creates a request to invoke ModifySecurityIps API
+func CreateModifySecurityIpsRequest() (request *ModifySecurityIpsRequest) {
+	request = &ModifySecurityIpsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ModifySecurityIps", "redisa", "openAPI")
+	return
+}
+
+// CreateModifySecurityIpsResponse creates a response to parse from ModifySecurityIps response
+func CreateModifySecurityIpsResponse() (response *ModifySecurityIpsResponse) {
+	response = &ModifySecurityIpsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/r_kvstore/query_task.go

@@ -0,0 +1,108 @@
+package r_kvstore
+
+//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"
+)
+
+// QueryTask invokes the r_kvstore.QueryTask API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/querytask.html
+func (client *Client) QueryTask(request *QueryTaskRequest) (response *QueryTaskResponse, err error) {
+	response = CreateQueryTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryTaskWithChan invokes the r_kvstore.QueryTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/querytask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryTaskWithChan(request *QueryTaskRequest) (<-chan *QueryTaskResponse, <-chan error) {
+	responseChan := make(chan *QueryTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryTaskWithCallback invokes the r_kvstore.QueryTask API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/querytask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryTaskWithCallback(request *QueryTaskRequest, callback func(response *QueryTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryTaskRequest is the request struct for api QueryTask
+type QueryTaskRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// QueryTaskResponse is the response struct for api QueryTask
+type QueryTaskResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Action    string `json:"Action" xml:"Action"`
+	Progress  int    `json:"Progress" xml:"Progress"`
+}
+
+// CreateQueryTaskRequest creates a request to invoke QueryTask API
+func CreateQueryTaskRequest() (request *QueryTaskRequest) {
+	request = &QueryTaskRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "QueryTask", "redisa", "openAPI")
+	return
+}
+
+// CreateQueryTaskResponse creates a response to parse from QueryTask response
+func CreateQueryTaskResponse() (response *QueryTaskResponse) {
+	response = &QueryTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/r_kvstore/release_instance_public_connection.go

@@ -0,0 +1,109 @@
+package r_kvstore
+
+//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"
+)
+
+// ReleaseInstancePublicConnection invokes the r_kvstore.ReleaseInstancePublicConnection API synchronously
+// api document: https://help.aliyun.com/api/r-kvstore/releaseinstancepublicconnection.html
+func (client *Client) ReleaseInstancePublicConnection(request *ReleaseInstancePublicConnectionRequest) (response *ReleaseInstancePublicConnectionResponse, err error) {
+	response = CreateReleaseInstancePublicConnectionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ReleaseInstancePublicConnectionWithChan invokes the r_kvstore.ReleaseInstancePublicConnection API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/releaseinstancepublicconnection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReleaseInstancePublicConnectionWithChan(request *ReleaseInstancePublicConnectionRequest) (<-chan *ReleaseInstancePublicConnectionResponse, <-chan error) {
+	responseChan := make(chan *ReleaseInstancePublicConnectionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ReleaseInstancePublicConnection(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ReleaseInstancePublicConnectionWithCallback invokes the r_kvstore.ReleaseInstancePublicConnection API asynchronously
+// api document: https://help.aliyun.com/api/r-kvstore/releaseinstancepublicconnection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReleaseInstancePublicConnectionWithCallback(request *ReleaseInstancePublicConnectionRequest, callback func(response *ReleaseInstancePublicConnectionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ReleaseInstancePublicConnectionResponse
+		var err error
+		defer close(result)
+		response, err = client.ReleaseInstancePublicConnection(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ReleaseInstancePublicConnectionRequest is the request struct for api ReleaseInstancePublicConnection
+type ReleaseInstancePublicConnectionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId         requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	InstanceId              string           `position:"Query" name:"InstanceId"`
+	SecurityToken           string           `position:"Query" name:"SecurityToken"`
+	ResourceOwnerAccount    string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount            string           `position:"Query" name:"OwnerAccount"`
+	OwnerId                 requests.Integer `position:"Query" name:"OwnerId"`
+	CurrentConnectionString string           `position:"Query" name:"CurrentConnectionString"`
+}
+
+// ReleaseInstancePublicConnectionResponse is the response struct for api ReleaseInstancePublicConnection
+type ReleaseInstancePublicConnectionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateReleaseInstancePublicConnectionRequest creates a request to invoke ReleaseInstancePublicConnection API
+func CreateReleaseInstancePublicConnectionRequest() (request *ReleaseInstancePublicConnectionRequest) {
+	request = &ReleaseInstancePublicConnectionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("R-kvstore", "2015-01-01", "ReleaseInstancePublicConnection", "redisa", "openAPI")
+	return
+}
+
+// CreateReleaseInstancePublicConnectionResponse creates a response to parse from ReleaseInstancePublicConnection response
+func CreateReleaseInstancePublicConnectionResponse() (response *ReleaseInstancePublicConnectionResponse) {
+	response = &ReleaseInstancePublicConnectionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

部分文件因文件數量過多而無法顯示