浏览代码

ELASTICSEARCH SDK Auto Released By guangfan.qu,Version:1.60.18

Signed-off-by: sdk-team <sdk-team@alibabacloud.com>
sdk-team 6 年之前
父节点
当前提交
def1e914ef
共有 49 个文件被更改,包括 2298 次插入82 次删除
  1. 3 0
      ChangeLog.txt
  2. 108 0
      services/elasticsearch/cancel_task.go
  3. 28 5
      services/elasticsearch/client.go
  4. 104 0
      services/elasticsearch/create_project.go
  5. 104 0
      services/elasticsearch/delete_project.go
  6. 2 2
      services/elasticsearch/describe_instance.go
  7. 109 0
      services/elasticsearch/get_suggest_shrinkable_nodes.go
  8. 109 0
      services/elasticsearch/get_transferable_nodes.go
  9. 105 0
      services/elasticsearch/install_system_plugin.go
  10. 107 0
      services/elasticsearch/list_all_node.go
  11. 7 5
      services/elasticsearch/list_instance.go
  12. 110 0
      services/elasticsearch/list_plugins.go
  13. 105 0
      services/elasticsearch/move_resource_group.go
  14. 108 0
      services/elasticsearch/shrink_node.go
  15. 24 0
      services/elasticsearch/struct_client_node_configuration.go
  16. 21 0
      services/elasticsearch/struct_data_disk_list.go
  17. 25 0
      services/elasticsearch/struct_data_disk_list_item.go
  18. 1 1
      services/elasticsearch/struct_dict_list.go
  19. 21 0
      services/elasticsearch/struct_dict_list_in_move_resource_group.go
  20. 24 0
      services/elasticsearch/struct_dict_list_item.go
  21. 21 0
      services/elasticsearch/struct_es_versions_latest_list.go
  22. 22 0
      services/elasticsearch/struct_es_versions_latest_list_item.go
  23. 14 12
      services/elasticsearch/struct_instance.go
  24. 2 2
      services/elasticsearch/struct_kibana_configuration.go
  25. 2 2
      services/elasticsearch/struct_master_configuration.go
  26. 7 4
      services/elasticsearch/struct_node_spec_list_item.go
  27. 21 0
      services/elasticsearch/struct_private_network_ip_white_list_in_describe_instance.go
  28. 21 0
      services/elasticsearch/struct_private_network_ip_white_list_in_update_private_network_white_ips.go
  29. 37 39
      services/elasticsearch/struct_result.go
  30. 55 0
      services/elasticsearch/struct_result_in_describe_instance.go
  31. 21 0
      services/elasticsearch/struct_result_in_get_suggest_shrinkable_nodes.go
  32. 21 0
      services/elasticsearch/struct_result_in_get_transferable_nodes.go
  33. 21 0
      services/elasticsearch/struct_result_in_install_system_plugin.go
  34. 21 0
      services/elasticsearch/struct_result_in_list_all_node.go
  35. 21 0
      services/elasticsearch/struct_result_in_list_plugins.go
  36. 3 4
      services/elasticsearch/struct_result_in_uninstall_plugin.go
  37. 21 0
      services/elasticsearch/struct_result_in_update_hot_ik_dicts.go
  38. 12 5
      services/elasticsearch/struct_result_item.go
  39. 1 1
      services/elasticsearch/struct_synonyms_dicts.go
  40. 21 0
      services/elasticsearch/struct_synonyms_dicts_in_move_resource_group.go
  41. 24 0
      services/elasticsearch/struct_synonyms_dicts_item.go
  42. 21 0
      services/elasticsearch/struct_value_limit_set.go
  43. 24 0
      services/elasticsearch/struct_warm_node_configuration.go
  44. 108 0
      services/elasticsearch/transfer_node.go
  45. 105 0
      services/elasticsearch/uninstall_plugin.go
  46. 105 0
      services/elasticsearch/update_hot_ik_dicts.go
  47. 105 0
      services/elasticsearch/update_private_network_white_ips.go
  48. 108 0
      services/elasticsearch/validate_shrink_nodes.go
  49. 108 0
      services/elasticsearch/validate_transferable_nodes.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-05-20 Version: 1.60.18
+1, Added the cross zones supported.
+
 2019-05-20 Version: 1.60.17
 1, Add both api, ListNotaryInfos
 

+ 108 - 0
services/elasticsearch/cancel_task.go

@@ -0,0 +1,108 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// CancelTask invokes the elasticsearch.CancelTask API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/canceltask.html
+func (client *Client) CancelTask(request *CancelTaskRequest) (response *CancelTaskResponse, err error) {
+	response = CreateCancelTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelTaskWithChan invokes the elasticsearch.CancelTask API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/canceltask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelTaskWithChan(request *CancelTaskRequest) (<-chan *CancelTaskResponse, <-chan error) {
+	responseChan := make(chan *CancelTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CancelTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CancelTaskWithCallback invokes the elasticsearch.CancelTask API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/canceltask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelTaskWithCallback(request *CancelTaskRequest, callback func(response *CancelTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CancelTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.CancelTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CancelTaskRequest is the request struct for api CancelTask
+type CancelTaskRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+	TaskType   string `position:"Query" name:"taskType"`
+}
+
+// CancelTaskResponse is the response struct for api CancelTask
+type CancelTaskResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateCancelTaskRequest creates a request to invoke CancelTask API
+func CreateCancelTaskRequest() (request *CancelTaskRequest) {
+	request = &CancelTaskRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "CancelTask", "/openapi/instances/[InstanceId]/actions/cancel-task", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCancelTaskResponse creates a response to parse from CancelTask response
+func CreateCancelTaskResponse() (response *CancelTaskResponse) {
+	response = &CancelTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 28 - 5
services/elasticsearch/client.go

@@ -18,6 +18,7 @@ package elasticsearch
 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
@@ -32,6 +33,20 @@ func NewClient() (client *Client, err error) {
 	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) {
@@ -41,7 +56,7 @@ func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.C
 }
 
 // NewClientWithAccessKey is a shortcut to create sdk client with accesskey
-// usage: https://help.aliyun.com/document_detail/66217.html
+// 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)
@@ -49,7 +64,7 @@ func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (clie
 }
 
 // NewClientWithStsToken is a shortcut to create sdk client with sts token
-// usage: https://help.aliyun.com/document_detail/66222.html
+// 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)
@@ -57,15 +72,23 @@ func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToke
 }
 
 // NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
-// usage: https://help.aliyun.com/document_detail/66222.html
+// 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://help.aliyun.com/document_detail/66223.html
+// 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)
@@ -73,7 +96,7 @@ func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client,
 }
 
 // NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
-// attention: rsa key pair auth is only Japan regions available
+// 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)

+ 104 - 0
services/elasticsearch/create_project.go

@@ -0,0 +1,104 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// CreateProject invokes the elasticsearch.CreateProject API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/createproject.html
+func (client *Client) CreateProject(request *CreateProjectRequest) (response *CreateProjectResponse, err error) {
+	response = CreateCreateProjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateProjectWithChan invokes the elasticsearch.CreateProject API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/createproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateProjectWithChan(request *CreateProjectRequest) (<-chan *CreateProjectResponse, <-chan error) {
+	responseChan := make(chan *CreateProjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateProject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateProjectWithCallback invokes the elasticsearch.CreateProject API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/createproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateProjectWithCallback(request *CreateProjectRequest, callback func(response *CreateProjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateProjectResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateProject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateProjectRequest is the request struct for api CreateProject
+type CreateProjectRequest struct {
+	*requests.RoaRequest
+}
+
+// CreateProjectResponse is the response struct for api CreateProject
+type CreateProjectResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Result    Result `json:"Result" xml:"Result"`
+}
+
+// CreateCreateProjectRequest creates a request to invoke CreateProject API
+func CreateCreateProjectRequest() (request *CreateProjectRequest) {
+	request = &CreateProjectRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "CreateProject", "/openapi/projects", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateProjectResponse creates a response to parse from CreateProject response
+func CreateCreateProjectResponse() (response *CreateProjectResponse) {
+	response = &CreateProjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/elasticsearch/delete_project.go

@@ -0,0 +1,104 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// DeleteProject invokes the elasticsearch.DeleteProject API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/deleteproject.html
+func (client *Client) DeleteProject(request *DeleteProjectRequest) (response *DeleteProjectResponse, err error) {
+	response = CreateDeleteProjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteProjectWithChan invokes the elasticsearch.DeleteProject API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/deleteproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteProjectWithChan(request *DeleteProjectRequest) (<-chan *DeleteProjectResponse, <-chan error) {
+	responseChan := make(chan *DeleteProjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteProject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteProjectWithCallback invokes the elasticsearch.DeleteProject API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/deleteproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteProjectWithCallback(request *DeleteProjectRequest, callback func(response *DeleteProjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteProjectResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteProject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteProjectRequest is the request struct for api DeleteProject
+type DeleteProjectRequest struct {
+	*requests.RoaRequest
+	Id string `position:"Path" name:"Id"`
+}
+
+// DeleteProjectResponse is the response struct for api DeleteProject
+type DeleteProjectResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteProjectRequest creates a request to invoke DeleteProject API
+func CreateDeleteProjectRequest() (request *DeleteProjectRequest) {
+	request = &DeleteProjectRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "DeleteProject", "/openapi/projects/[Id]", "elasticsearch", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteProjectResponse creates a response to parse from DeleteProject response
+func CreateDeleteProjectResponse() (response *DeleteProjectResponse) {
+	response = &DeleteProjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/elasticsearch/describe_instance.go

@@ -82,8 +82,8 @@ type DescribeInstanceRequest struct {
 // DescribeInstanceResponse is the response struct for api DescribeInstance
 type DescribeInstanceResponse struct {
 	*responses.BaseResponse
-	RequestId string `json:"RequestId" xml:"RequestId"`
-	Result    Result `json:"Result" xml:"Result"`
+	RequestId string                   `json:"RequestId" xml:"RequestId"`
+	Result    ResultInDescribeInstance `json:"Result" xml:"Result"`
 }
 
 // CreateDescribeInstanceRequest creates a request to invoke DescribeInstance API

+ 109 - 0
services/elasticsearch/get_suggest_shrinkable_nodes.go

@@ -0,0 +1,109 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// GetSuggestShrinkableNodes invokes the elasticsearch.GetSuggestShrinkableNodes API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/getsuggestshrinkablenodes.html
+func (client *Client) GetSuggestShrinkableNodes(request *GetSuggestShrinkableNodesRequest) (response *GetSuggestShrinkableNodesResponse, err error) {
+	response = CreateGetSuggestShrinkableNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSuggestShrinkableNodesWithChan invokes the elasticsearch.GetSuggestShrinkableNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/getsuggestshrinkablenodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSuggestShrinkableNodesWithChan(request *GetSuggestShrinkableNodesRequest) (<-chan *GetSuggestShrinkableNodesResponse, <-chan error) {
+	responseChan := make(chan *GetSuggestShrinkableNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSuggestShrinkableNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSuggestShrinkableNodesWithCallback invokes the elasticsearch.GetSuggestShrinkableNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/getsuggestshrinkablenodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSuggestShrinkableNodesWithCallback(request *GetSuggestShrinkableNodesRequest, callback func(response *GetSuggestShrinkableNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSuggestShrinkableNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSuggestShrinkableNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSuggestShrinkableNodesRequest is the request struct for api GetSuggestShrinkableNodes
+type GetSuggestShrinkableNodesRequest struct {
+	*requests.RoaRequest
+	InstanceId string           `position:"Path" name:"InstanceId"`
+	NodeType   string           `position:"Query" name:"nodeType"`
+	Count      requests.Integer `position:"Query" name:"count"`
+}
+
+// GetSuggestShrinkableNodesResponse is the response struct for api GetSuggestShrinkableNodes
+type GetSuggestShrinkableNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string       `json:"RequestId" xml:"RequestId"`
+	Code      string       `json:"Code" xml:"Code"`
+	Message   string       `json:"Message" xml:"Message"`
+	Result    []ResultItem `json:"Result" xml:"Result"`
+}
+
+// CreateGetSuggestShrinkableNodesRequest creates a request to invoke GetSuggestShrinkableNodes API
+func CreateGetSuggestShrinkableNodesRequest() (request *GetSuggestShrinkableNodesRequest) {
+	request = &GetSuggestShrinkableNodesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "GetSuggestShrinkableNodes", "/openapi/instances/[InstanceId]/suggest-shrinkable-nodes", "elasticsearch", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetSuggestShrinkableNodesResponse creates a response to parse from GetSuggestShrinkableNodes response
+func CreateGetSuggestShrinkableNodesResponse() (response *GetSuggestShrinkableNodesResponse) {
+	response = &GetSuggestShrinkableNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/elasticsearch/get_transferable_nodes.go

@@ -0,0 +1,109 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// GetTransferableNodes invokes the elasticsearch.GetTransferableNodes API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/gettransferablenodes.html
+func (client *Client) GetTransferableNodes(request *GetTransferableNodesRequest) (response *GetTransferableNodesResponse, err error) {
+	response = CreateGetTransferableNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetTransferableNodesWithChan invokes the elasticsearch.GetTransferableNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/gettransferablenodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTransferableNodesWithChan(request *GetTransferableNodesRequest) (<-chan *GetTransferableNodesResponse, <-chan error) {
+	responseChan := make(chan *GetTransferableNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetTransferableNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetTransferableNodesWithCallback invokes the elasticsearch.GetTransferableNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/gettransferablenodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTransferableNodesWithCallback(request *GetTransferableNodesRequest, callback func(response *GetTransferableNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetTransferableNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.GetTransferableNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetTransferableNodesRequest is the request struct for api GetTransferableNodes
+type GetTransferableNodesRequest struct {
+	*requests.RoaRequest
+	InstanceId string           `position:"Path" name:"InstanceId"`
+	NodeType   string           `position:"Query" name:"nodeType"`
+	Count      requests.Integer `position:"Query" name:"count"`
+}
+
+// GetTransferableNodesResponse is the response struct for api GetTransferableNodes
+type GetTransferableNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string       `json:"RequestId" xml:"RequestId"`
+	Code      string       `json:"Code" xml:"Code"`
+	Message   string       `json:"Message" xml:"Message"`
+	Result    []ResultItem `json:"Result" xml:"Result"`
+}
+
+// CreateGetTransferableNodesRequest creates a request to invoke GetTransferableNodes API
+func CreateGetTransferableNodesRequest() (request *GetTransferableNodesRequest) {
+	request = &GetTransferableNodesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "GetTransferableNodes", "/openapi/instances/[InstanceId]/transferable-nodes", "elasticsearch", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetTransferableNodesResponse creates a response to parse from GetTransferableNodes response
+func CreateGetTransferableNodesResponse() (response *GetTransferableNodesResponse) {
+	response = &GetTransferableNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/elasticsearch/install_system_plugin.go

@@ -0,0 +1,105 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// InstallSystemPlugin invokes the elasticsearch.InstallSystemPlugin API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/installsystemplugin.html
+func (client *Client) InstallSystemPlugin(request *InstallSystemPluginRequest) (response *InstallSystemPluginResponse, err error) {
+	response = CreateInstallSystemPluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// InstallSystemPluginWithChan invokes the elasticsearch.InstallSystemPlugin API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/installsystemplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) InstallSystemPluginWithChan(request *InstallSystemPluginRequest) (<-chan *InstallSystemPluginResponse, <-chan error) {
+	responseChan := make(chan *InstallSystemPluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.InstallSystemPlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// InstallSystemPluginWithCallback invokes the elasticsearch.InstallSystemPlugin API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/installsystemplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) InstallSystemPluginWithCallback(request *InstallSystemPluginRequest, callback func(response *InstallSystemPluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *InstallSystemPluginResponse
+		var err error
+		defer close(result)
+		response, err = client.InstallSystemPlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// InstallSystemPluginRequest is the request struct for api InstallSystemPlugin
+type InstallSystemPluginRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+}
+
+// InstallSystemPluginResponse is the response struct for api InstallSystemPlugin
+type InstallSystemPluginResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Result    []string `json:"Result" xml:"Result"`
+}
+
+// CreateInstallSystemPluginRequest creates a request to invoke InstallSystemPlugin API
+func CreateInstallSystemPluginRequest() (request *InstallSystemPluginRequest) {
+	request = &InstallSystemPluginRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "InstallSystemPlugin", "/openapi/instances/[InstanceId]/plugins/system/actions/install", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateInstallSystemPluginResponse creates a response to parse from InstallSystemPlugin response
+func CreateInstallSystemPluginResponse() (response *InstallSystemPluginResponse) {
+	response = &InstallSystemPluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/elasticsearch/list_all_node.go

@@ -0,0 +1,107 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListAllNode invokes the elasticsearch.ListAllNode API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/listallnode.html
+func (client *Client) ListAllNode(request *ListAllNodeRequest) (response *ListAllNodeResponse, err error) {
+	response = CreateListAllNodeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAllNodeWithChan invokes the elasticsearch.ListAllNode API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/listallnode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAllNodeWithChan(request *ListAllNodeRequest) (<-chan *ListAllNodeResponse, <-chan error) {
+	responseChan := make(chan *ListAllNodeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAllNode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAllNodeWithCallback invokes the elasticsearch.ListAllNode API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/listallnode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAllNodeWithCallback(request *ListAllNodeRequest, callback func(response *ListAllNodeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAllNodeResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAllNode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAllNodeRequest is the request struct for api ListAllNode
+type ListAllNodeRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+}
+
+// ListAllNodeResponse is the response struct for api ListAllNode
+type ListAllNodeResponse struct {
+	*responses.BaseResponse
+	RequestId string       `json:"RequestId" xml:"RequestId"`
+	Code      string       `json:"Code" xml:"Code"`
+	Message   string       `json:"Message" xml:"Message"`
+	Result    []ResultItem `json:"Result" xml:"Result"`
+}
+
+// CreateListAllNodeRequest creates a request to invoke ListAllNode API
+func CreateListAllNodeRequest() (request *ListAllNodeRequest) {
+	request = &ListAllNodeRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "ListAllNode", "/openapi/instances/[InstanceId]/nodes", "elasticsearch", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListAllNodeResponse creates a response to parse from ListAllNode response
+func CreateListAllNodeResponse() (response *ListAllNodeResponse) {
+	response = &ListAllNodeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 7 - 5
services/elasticsearch/list_instance.go

@@ -76,11 +76,13 @@ func (client *Client) ListInstanceWithCallback(request *ListInstanceRequest, cal
 // ListInstanceRequest is the request struct for api ListInstance
 type ListInstanceRequest struct {
 	*requests.RoaRequest
-	InstanceId  string           `position:"Query" name:"instanceId"`
-	Size        requests.Integer `position:"Query" name:"size"`
-	EsVersion   string           `position:"Query" name:"esVersion"`
-	Description string           `position:"Query" name:"description"`
-	Page        requests.Integer `position:"Query" name:"page"`
+	ResourceGroupId string           `position:"Query" name:"resourceGroupId"`
+	InstanceId      string           `position:"Query" name:"instanceId"`
+	Size            requests.Integer `position:"Query" name:"size"`
+	EsVersion       string           `position:"Query" name:"esVersion"`
+	Description     string           `position:"Query" name:"description"`
+	Page            requests.Integer `position:"Query" name:"page"`
+	OwnerId         string           `position:"Query" name:"ownerId"`
 }
 
 // ListInstanceResponse is the response struct for api ListInstance

+ 110 - 0
services/elasticsearch/list_plugins.go

@@ -0,0 +1,110 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListPlugins invokes the elasticsearch.ListPlugins API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/listplugins.html
+func (client *Client) ListPlugins(request *ListPluginsRequest) (response *ListPluginsResponse, err error) {
+	response = CreateListPluginsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListPluginsWithChan invokes the elasticsearch.ListPlugins API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/listplugins.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPluginsWithChan(request *ListPluginsRequest) (<-chan *ListPluginsResponse, <-chan error) {
+	responseChan := make(chan *ListPluginsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPlugins(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListPluginsWithCallback invokes the elasticsearch.ListPlugins API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/listplugins.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPluginsWithCallback(request *ListPluginsRequest, callback func(response *ListPluginsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPluginsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPlugins(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListPluginsRequest is the request struct for api ListPlugins
+type ListPluginsRequest struct {
+	*requests.RoaRequest
+	InstanceId string           `position:"Path" name:"InstanceId"`
+	Size       requests.Integer `position:"Query" name:"size"`
+	Name       string           `position:"Query" name:"name"`
+	Page       string           `position:"Query" name:"page"`
+	Source     string           `position:"Query" name:"source"`
+}
+
+// ListPluginsResponse is the response struct for api ListPlugins
+type ListPluginsResponse struct {
+	*responses.BaseResponse
+	RequestId string       `json:"RequestId" xml:"RequestId"`
+	Headers   Headers      `json:"Headers" xml:"Headers"`
+	Result    []ResultItem `json:"Result" xml:"Result"`
+}
+
+// CreateListPluginsRequest creates a request to invoke ListPlugins API
+func CreateListPluginsRequest() (request *ListPluginsRequest) {
+	request = &ListPluginsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "ListPlugins", "/openapi/instances/[InstanceId]/plugins", "elasticsearch", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListPluginsResponse creates a response to parse from ListPlugins response
+func CreateListPluginsResponse() (response *ListPluginsResponse) {
+	response = &ListPluginsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/elasticsearch/move_resource_group.go

@@ -0,0 +1,105 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// MoveResourceGroup invokes the elasticsearch.MoveResourceGroup API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/moveresourcegroup.html
+func (client *Client) MoveResourceGroup(request *MoveResourceGroupRequest) (response *MoveResourceGroupResponse, err error) {
+	response = CreateMoveResourceGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoveResourceGroupWithChan invokes the elasticsearch.MoveResourceGroup API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/moveresourcegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoveResourceGroupWithChan(request *MoveResourceGroupRequest) (<-chan *MoveResourceGroupResponse, <-chan error) {
+	responseChan := make(chan *MoveResourceGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoveResourceGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoveResourceGroupWithCallback invokes the elasticsearch.MoveResourceGroup API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/moveresourcegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoveResourceGroupWithCallback(request *MoveResourceGroupRequest, callback func(response *MoveResourceGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoveResourceGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.MoveResourceGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoveResourceGroupRequest is the request struct for api MoveResourceGroup
+type MoveResourceGroupRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+}
+
+// MoveResourceGroupResponse is the response struct for api MoveResourceGroup
+type MoveResourceGroupResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Result    Result `json:"Result" xml:"Result"`
+}
+
+// CreateMoveResourceGroupRequest creates a request to invoke MoveResourceGroup API
+func CreateMoveResourceGroupRequest() (request *MoveResourceGroupRequest) {
+	request = &MoveResourceGroupRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "MoveResourceGroup", "/openapi/instances/[InstanceId]/resourcegroup", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateMoveResourceGroupResponse creates a response to parse from MoveResourceGroup response
+func CreateMoveResourceGroupResponse() (response *MoveResourceGroupResponse) {
+	response = &MoveResourceGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/elasticsearch/shrink_node.go

@@ -0,0 +1,108 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ShrinkNode invokes the elasticsearch.ShrinkNode API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/shrinknode.html
+func (client *Client) ShrinkNode(request *ShrinkNodeRequest) (response *ShrinkNodeResponse, err error) {
+	response = CreateShrinkNodeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ShrinkNodeWithChan invokes the elasticsearch.ShrinkNode API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/shrinknode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ShrinkNodeWithChan(request *ShrinkNodeRequest) (<-chan *ShrinkNodeResponse, <-chan error) {
+	responseChan := make(chan *ShrinkNodeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ShrinkNode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ShrinkNodeWithCallback invokes the elasticsearch.ShrinkNode API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/shrinknode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ShrinkNodeWithCallback(request *ShrinkNodeRequest, callback func(response *ShrinkNodeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ShrinkNodeResponse
+		var err error
+		defer close(result)
+		response, err = client.ShrinkNode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ShrinkNodeRequest is the request struct for api ShrinkNode
+type ShrinkNodeRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+	NodeType   string `position:"Query" name:"nodeType"`
+}
+
+// ShrinkNodeResponse is the response struct for api ShrinkNode
+type ShrinkNodeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateShrinkNodeRequest creates a request to invoke ShrinkNode API
+func CreateShrinkNodeRequest() (request *ShrinkNodeRequest) {
+	request = &ShrinkNodeRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "ShrinkNode", "/openapi/instances/[InstanceId]/actions/shrink", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateShrinkNodeResponse creates a response to parse from ShrinkNode response
+func CreateShrinkNodeResponse() (response *ShrinkNodeResponse) {
+	response = &ShrinkNodeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 24 - 0
services/elasticsearch/struct_client_node_configuration.go

@@ -0,0 +1,24 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ClientNodeConfiguration is a nested struct in elasticsearch response
+type ClientNodeConfiguration struct {
+	Spec     string `json:"spec" xml:"spec"`
+	Amount   int    `json:"amount" xml:"amount"`
+	DiskType string `json:"diskType" xml:"diskType"`
+	Disk     int    `json:"disk" xml:"disk"`
+}

+ 21 - 0
services/elasticsearch/struct_data_disk_list.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// DataDiskList is a nested struct in elasticsearch response
+type DataDiskList struct {
+	DataDiskListItem []DataDiskListItem `json:"dataDiskListItem" xml:"dataDiskListItem"`
+}

+ 25 - 0
services/elasticsearch/struct_data_disk_list_item.go

@@ -0,0 +1,25 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// DataDiskListItem is a nested struct in elasticsearch response
+type DataDiskListItem struct {
+	DiskType      string   `json:"diskType" xml:"diskType"`
+	MinSize       int      `json:"minSize" xml:"minSize"`
+	MaxSize       int      `json:"maxSize" xml:"maxSize"`
+	ScaleLimit    int      `json:"scaleLimit" xml:"scaleLimit"`
+	ValueLimitSet []string `json:"valueLimitSet" xml:"valueLimitSet"`
+}

+ 1 - 1
services/elasticsearch/struct_dict_list.go

@@ -18,7 +18,7 @@ package elasticsearch
 // DictList is a nested struct in elasticsearch response
 type DictList struct {
 	Type       string    `json:"type" xml:"type"`
-	FileSize   int       `json:"fileSize" xml:"fileSize"`
+	FileSize   int64     `json:"fileSize" xml:"fileSize"`
 	SourceType string    `json:"sourceType" xml:"sourceType"`
 	Name       string    `json:"name" xml:"name"`
 	OssObject  OssObject `json:"ossObject" xml:"ossObject"`

+ 21 - 0
services/elasticsearch/struct_dict_list_in_move_resource_group.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// DictListInMoveResourceGroup is a nested struct in elasticsearch response
+type DictListInMoveResourceGroup struct {
+	DictListItem []DictListItem `json:"dictListItem" xml:"dictListItem"`
+}

+ 24 - 0
services/elasticsearch/struct_dict_list_item.go

@@ -0,0 +1,24 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// DictListItem is a nested struct in elasticsearch response
+type DictListItem struct {
+	Name       string `json:"name" xml:"name"`
+	FileSize   int64  `json:"fileSize" xml:"fileSize"`
+	Type       string `json:"type" xml:"type"`
+	SourceType string `json:"sourceType" xml:"sourceType"`
+}

+ 21 - 0
services/elasticsearch/struct_es_versions_latest_list.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// EsVersionsLatestList is a nested struct in elasticsearch response
+type EsVersionsLatestList struct {
+	EsVersionsLatestListItem []EsVersionsLatestListItem `json:"esVersionsLatestListItem" xml:"esVersionsLatestListItem"`
+}

+ 22 - 0
services/elasticsearch/struct_es_versions_latest_list_item.go

@@ -0,0 +1,22 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// EsVersionsLatestListItem is a nested struct in elasticsearch response
+type EsVersionsLatestListItem struct {
+	Key   string `json:"key" xml:"key"`
+	Value string `json:"value" xml:"value"`
+}

+ 14 - 12
services/elasticsearch/struct_instance.go

@@ -17,16 +17,18 @@ package elasticsearch
 
 // Instance is a nested struct in elasticsearch response
 type Instance struct {
-	InstanceId    string        `json:"instanceId" xml:"instanceId"`
-	Domain        string        `json:"domain" xml:"domain"`
-	Description   string        `json:"description" xml:"description"`
-	NodeAmount    int           `json:"nodeAmount" xml:"nodeAmount"`
-	PaymentType   string        `json:"paymentType" xml:"paymentType"`
-	Status        string        `json:"status" xml:"status"`
-	Port          int           `json:"port" xml:"port"`
-	EsVersion     string        `json:"esVersion" xml:"esVersion"`
-	CreatedAt     string        `json:"createdAt" xml:"createdAt"`
-	UpdatedAt     string        `json:"updatedAt" xml:"updatedAt"`
-	NodeSpec      NodeSpec      `json:"nodeSpec" xml:"nodeSpec"`
-	NetworkConfig NetworkConfig `json:"networkConfig" xml:"networkConfig"`
+	InstanceId             string              `json:"instanceId" xml:"instanceId"`
+	Description            string              `json:"description" xml:"description"`
+	NodeAmount             int                 `json:"nodeAmount" xml:"nodeAmount"`
+	PaymentType            string              `json:"paymentType" xml:"paymentType"`
+	Status                 string              `json:"status" xml:"status"`
+	EsVersion              string              `json:"esVersion" xml:"esVersion"`
+	CreatedAt              string              `json:"createdAt" xml:"createdAt"`
+	UpdatedAt              string              `json:"updatedAt" xml:"updatedAt"`
+	AdvancedDedicateMaster bool                `json:"advancedDedicateMaster" xml:"advancedDedicateMaster"`
+	DedicateMaster         bool                `json:"dedicateMaster" xml:"dedicateMaster"`
+	NodeSpec               NodeSpec            `json:"nodeSpec" xml:"nodeSpec"`
+	NetworkConfig          NetworkConfig       `json:"networkConfig" xml:"networkConfig"`
+	MasterConfiguration    MasterConfiguration `json:"masterConfiguration" xml:"masterConfiguration"`
+	KibanaConfiguration    KibanaConfiguration `json:"kibanaConfiguration" xml:"kibanaConfiguration"`
 }

+ 2 - 2
services/elasticsearch/struct_kibana_configuration.go

@@ -17,8 +17,8 @@ package elasticsearch
 
 // KibanaConfiguration is a nested struct in elasticsearch response
 type KibanaConfiguration struct {
-	Spec     string `json:"spec" xml:"spec"`
 	Amount   int    `json:"amount" xml:"amount"`
-	DiskType string `json:"diskType" xml:"diskType"`
 	Disk     int    `json:"disk" xml:"disk"`
+	Spec     string `json:"spec" xml:"spec"`
+	DiskType string `json:"diskType" xml:"diskType"`
 }

+ 2 - 2
services/elasticsearch/struct_master_configuration.go

@@ -17,8 +17,8 @@ package elasticsearch
 
 // MasterConfiguration is a nested struct in elasticsearch response
 type MasterConfiguration struct {
-	Spec     string `json:"spec" xml:"spec"`
 	Amount   int    `json:"amount" xml:"amount"`
-	DiskType string `json:"diskType" xml:"diskType"`
 	Disk     int    `json:"disk" xml:"disk"`
+	Spec     string `json:"spec" xml:"spec"`
+	DiskType string `json:"diskType" xml:"diskType"`
 }

+ 7 - 4
services/elasticsearch/struct_node_spec_list_item.go

@@ -17,8 +17,11 @@ package elasticsearch
 
 // NodeSpecListItem is a nested struct in elasticsearch response
 type NodeSpecListItem struct {
-	CpuCount   int    `json:"cpuCount" xml:"cpuCount"`
-	MemorySize int    `json:"memorySize" xml:"memorySize"`
-	Enable     bool   `json:"enable" xml:"enable"`
-	Spec       string `json:"spec" xml:"spec"`
+	CpuCount      int    `json:"cpuCount" xml:"cpuCount"`
+	MemorySize    int    `json:"memorySize" xml:"memorySize"`
+	Enable        bool   `json:"enable" xml:"enable"`
+	Spec          string `json:"spec" xml:"spec"`
+	DiskType      string `json:"diskType" xml:"diskType"`
+	Disk          int    `json:"disk" xml:"disk"`
+	SpecGroupType string `json:"specGroupType" xml:"specGroupType"`
 }

+ 21 - 0
services/elasticsearch/struct_private_network_ip_white_list_in_describe_instance.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// PrivateNetworkIpWhiteListInDescribeInstance is a nested struct in elasticsearch response
+type PrivateNetworkIpWhiteListInDescribeInstance struct {
+	PrivateNetworkIpWhiteList []string `json:"PrivateNetworkIpWhiteList" xml:"PrivateNetworkIpWhiteList"`
+}

+ 21 - 0
services/elasticsearch/struct_private_network_ip_white_list_in_update_private_network_white_ips.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// PrivateNetworkIpWhiteListInUpdatePrivateNetworkWhiteIps is a nested struct in elasticsearch response
+type PrivateNetworkIpWhiteListInUpdatePrivateNetworkWhiteIps struct {
+	PrivateNetworkIpWhiteList []string `json:"privateNetworkIpWhiteList" xml:"privateNetworkIpWhiteList"`
+}

+ 37 - 39
services/elasticsearch/struct_result.go

@@ -17,43 +17,41 @@ package elasticsearch
 
 // Result is a nested struct in elasticsearch response
 type Result struct {
-	DedicateMaster         bool                   `json:"dedicateMaster" xml:"dedicateMaster"`
-	Enable                 bool                   `json:"enable" xml:"enable"`
-	KibanaPort             int                    `json:"kibanaPort" xml:"kibanaPort"`
-	VpcInstanceId          string                 `json:"vpcInstanceId" xml:"vpcInstanceId"`
-	QuartzRegex            string                 `json:"quartzRegex" xml:"quartzRegex"`
-	CreateUrl              string                 `json:"createUrl" xml:"createUrl"`
-	PublicDomain           string                 `json:"publicDomain" xml:"publicDomain"`
-	KibanaDomain           string                 `json:"kibanaDomain" xml:"kibanaDomain"`
-	Domain                 string                 `json:"domain" xml:"domain"`
-	PaymentType            string                 `json:"paymentType" xml:"paymentType"`
-	RegionId               string                 `json:"regionId" xml:"regionId"`
-	Port                   int                    `json:"port" xml:"port"`
-	UpdatedAt              string                 `json:"updatedAt" xml:"updatedAt"`
-	Env                    string                 `json:"env" xml:"env"`
-	NodeAmount             int                    `json:"nodeAmount" xml:"nodeAmount"`
-	InstanceId             string                 `json:"instanceId" xml:"instanceId"`
-	Status                 string                 `json:"status" xml:"status"`
-	Description            string                 `json:"description" xml:"description"`
-	AdvancedDedicateMaster bool                   `json:"advancedDedicateMaster" xml:"advancedDedicateMaster"`
-	EnablePublic           bool                   `json:"enablePublic" xml:"enablePublic"`
-	EsConfig               map[string]interface{} `json:"esConfig" xml:"esConfig"`
-	EsVersion              string                 `json:"esVersion" xml:"esVersion"`
-	CreatedAt              string                 `json:"createdAt" xml:"createdAt"`
-	PublicPort             int                    `json:"publicPort" xml:"publicPort"`
-	EsIPWhitelist          []string               `json:"esIPWhitelist" xml:"esIPWhitelist"`
-	KibanaIPWhitelist      []string               `json:"kibanaIPWhitelist" xml:"kibanaIPWhitelist"`
-	PublicIpWhitelist      []string               `json:"publicIpWhitelist" xml:"publicIpWhitelist"`
-	EsIPBlacklist          []string               `json:"esIPBlacklist" xml:"esIPBlacklist"`
-	EsVersions             []string               `json:"esVersions" xml:"esVersions"`
-	Zones                  []string               `json:"zones" xml:"zones"`
-	NetworkConfig          NetworkConfig          `json:"networkConfig" xml:"networkConfig"`
-	Node                   Node                   `json:"node" xml:"node"`
-	NodeSpec               NodeSpec               `json:"nodeSpec" xml:"nodeSpec"`
-	MasterConfiguration    MasterConfiguration    `json:"masterConfiguration" xml:"masterConfiguration"`
-	Disk                   Disk                   `json:"disk" xml:"disk"`
-	KibanaConfiguration    KibanaConfiguration    `json:"kibanaConfiguration" xml:"kibanaConfiguration"`
-	SynonymsDicts          []SynonymsDicts        `json:"synonymsDicts" xml:"synonymsDicts"`
-	NodeSpecList           []NodeSpecListItem     `json:"nodeSpecList" xml:"nodeSpecList"`
-	DictList               []DictList             `json:"dictList" xml:"dictList"`
+	Enable                    bool                             `json:"enable" xml:"enable"`
+	KibanaPort                int                              `json:"kibanaPort" xml:"kibanaPort"`
+	QuartzRegex               string                           `json:"quartzRegex" xml:"quartzRegex"`
+	CreateUrl                 string                           `json:"createUrl" xml:"createUrl"`
+	PublicDomain              string                           `json:"publicDomain" xml:"publicDomain"`
+	KibanaDomain              string                           `json:"kibanaDomain" xml:"kibanaDomain"`
+	Domain                    string                           `json:"domain" xml:"domain"`
+	PaymentType               string                           `json:"paymentType" xml:"paymentType"`
+	RegionId                  string                           `json:"regionId" xml:"regionId"`
+	UpdatedAt                 string                           `json:"updatedAt" xml:"updatedAt"`
+	Env                       string                           `json:"env" xml:"env"`
+	NodeAmount                int                              `json:"nodeAmount" xml:"nodeAmount"`
+	InstanceId                string                           `json:"instanceId" xml:"instanceId"`
+	Status                    string                           `json:"status" xml:"status"`
+	Description               string                           `json:"description" xml:"description"`
+	EnablePublic              bool                             `json:"enablePublic" xml:"enablePublic"`
+	EsVersion                 string                           `json:"esVersion" xml:"esVersion"`
+	CreatedAt                 string                           `json:"createdAt" xml:"createdAt"`
+	Id                        string                           `json:"id" xml:"id"`
+	PublicPort                int                              `json:"publicPort" xml:"publicPort"`
+	EsIPWhitelist             []string                         `json:"esIPWhitelist" xml:"esIPWhitelist"`
+	KibanaIPWhitelist         []string                         `json:"kibanaIPWhitelist" xml:"kibanaIPWhitelist"`
+	PublicIpWhitelist         []string                         `json:"publicIpWhitelist" xml:"publicIpWhitelist"`
+	EsIPBlacklist             []string                         `json:"esIPBlacklist" xml:"esIPBlacklist"`
+	PrivateNetworkIpWhiteList []string                         `json:"privateNetworkIpWhiteList" xml:"privateNetworkIpWhiteList"`
+	EsVersions                []string                         `json:"esVersions" xml:"esVersions"`
+	Zones                     []string                         `json:"zones" xml:"zones"`
+	NetworkConfig             NetworkConfig                    `json:"networkConfig" xml:"networkConfig"`
+	Node                      Node                             `json:"node" xml:"node"`
+	MasterConfiguration       MasterConfiguration              `json:"masterConfiguration" xml:"masterConfiguration"`
+	NodeSpec                  NodeSpec                         `json:"nodeSpec" xml:"nodeSpec"`
+	KibanaConfiguration       KibanaConfiguration              `json:"kibanaConfiguration" xml:"kibanaConfiguration"`
+	DataDiskList              []DataDiskListItem               `json:"dataDiskList" xml:"dataDiskList"`
+	EsVersionsLatestList      []EsVersionsLatestListItem       `json:"esVersionsLatestList" xml:"esVersionsLatestList"`
+	NodeSpecList              []NodeSpecListItem               `json:"nodeSpecList" xml:"nodeSpecList"`
+	SynonymsDicts             SynonymsDictsInMoveResourceGroup `json:"synonymsDicts" xml:"synonymsDicts"`
+	DictList                  DictListInMoveResourceGroup      `json:"dictList" xml:"dictList"`
 }

+ 55 - 0
services/elasticsearch/struct_result_in_describe_instance.go

@@ -0,0 +1,55 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInDescribeInstance is a nested struct in elasticsearch response
+type ResultInDescribeInstance struct {
+	InstanceId                string                  `json:"instanceId" xml:"instanceId"`
+	Domain                    string                  `json:"domain" xml:"domain"`
+	Description               string                  `json:"description" xml:"description"`
+	NodeAmount                int                     `json:"nodeAmount" xml:"nodeAmount"`
+	PaymentType               string                  `json:"paymentType" xml:"paymentType"`
+	Status                    string                  `json:"status" xml:"status"`
+	EsVersion                 string                  `json:"esVersion" xml:"esVersion"`
+	CreatedAt                 string                  `json:"createdAt" xml:"createdAt"`
+	UpdatedAt                 string                  `json:"updatedAt" xml:"updatedAt"`
+	KibanaDomain              string                  `json:"kibanaDomain" xml:"kibanaDomain"`
+	EnablePublic              bool                    `json:"enablePublic" xml:"enablePublic"`
+	DedicateMaster            bool                    `json:"dedicateMaster" xml:"dedicateMaster"`
+	AdvancedDedicateMaster    bool                    `json:"advancedDedicateMaster" xml:"advancedDedicateMaster"`
+	PublicPort                int                     `json:"publicPort" xml:"publicPort"`
+	KibanaPort                int                     `json:"kibanaPort" xml:"kibanaPort"`
+	PublicDomain              string                  `json:"publicDomain" xml:"publicDomain"`
+	VpcInstanceId             string                  `json:"vpcInstanceId" xml:"vpcInstanceId"`
+	Port                      int                     `json:"port" xml:"port"`
+	EsConfig                  map[string]interface{}  `json:"esConfig" xml:"esConfig"`
+	ZoneCount                 int                     `json:"zoneCount" xml:"zoneCount"`
+	HaveClientNode            bool                    `json:"haveClientNode" xml:"haveClientNode"`
+	WarmNode                  bool                    `json:"warmNode" xml:"warmNode"`
+	EsIPWhitelist             []string                `json:"esIPWhitelist" xml:"esIPWhitelist"`
+	EsIPBlacklist             []string                `json:"esIPBlacklist" xml:"esIPBlacklist"`
+	KibanaIPWhitelist         []string                `json:"kibanaIPWhitelist" xml:"kibanaIPWhitelist"`
+	PublicIpWhitelist         []string                `json:"publicIpWhitelist" xml:"publicIpWhitelist"`
+	PrivateNetworkIpWhiteList []string                `json:"privateNetworkIpWhiteList" xml:"privateNetworkIpWhiteList"`
+	NodeSpec                  NodeSpec                `json:"nodeSpec" xml:"nodeSpec"`
+	NetworkConfig             NetworkConfig           `json:"networkConfig" xml:"networkConfig"`
+	KibanaConfiguration       KibanaConfiguration     `json:"kibanaConfiguration" xml:"kibanaConfiguration"`
+	MasterConfiguration       MasterConfiguration     `json:"masterConfiguration" xml:"masterConfiguration"`
+	ClientNodeConfiguration   ClientNodeConfiguration `json:"clientNodeConfiguration" xml:"clientNodeConfiguration"`
+	WarmNodeConfiguration     WarmNodeConfiguration   `json:"warmNodeConfiguration" xml:"warmNodeConfiguration"`
+	DictList                  []DictList              `json:"dictList" xml:"dictList"`
+	SynonymsDicts             []SynonymsDicts         `json:"synonymsDicts" xml:"synonymsDicts"`
+}

+ 21 - 0
services/elasticsearch/struct_result_in_get_suggest_shrinkable_nodes.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInGetSuggestShrinkableNodes is a nested struct in elasticsearch response
+type ResultInGetSuggestShrinkableNodes struct {
+	ResultItem []ResultItem `json:"ResultItem" xml:"ResultItem"`
+}

+ 21 - 0
services/elasticsearch/struct_result_in_get_transferable_nodes.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInGetTransferableNodes is a nested struct in elasticsearch response
+type ResultInGetTransferableNodes struct {
+	ResultItem []ResultItem `json:"ResultItem" xml:"ResultItem"`
+}

+ 21 - 0
services/elasticsearch/struct_result_in_install_system_plugin.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInInstallSystemPlugin is a nested struct in elasticsearch response
+type ResultInInstallSystemPlugin struct {
+	Result []string `json:"Result" xml:"Result"`
+}

+ 21 - 0
services/elasticsearch/struct_result_in_list_all_node.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInListAllNode is a nested struct in elasticsearch response
+type ResultInListAllNode struct {
+	ResultItem []ResultItem `json:"ResultItem" xml:"ResultItem"`
+}

+ 21 - 0
services/elasticsearch/struct_result_in_list_plugins.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInListPlugins is a nested struct in elasticsearch response
+type ResultInListPlugins struct {
+	ResultItem []ResultItem `json:"ResultItem" xml:"ResultItem"`
+}

+ 3 - 4
services/elasticsearch/struct_disk.go → services/elasticsearch/struct_result_in_uninstall_plugin.go

@@ -15,8 +15,7 @@ package elasticsearch
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-// Disk is a nested struct in elasticsearch response
-type Disk struct {
-	MinSize int `json:"minSize" xml:"minSize"`
-	MaxSize int `json:"maxSize" xml:"maxSize"`
+// ResultInUninstallPlugin is a nested struct in elasticsearch response
+type ResultInUninstallPlugin struct {
+	Result []string `json:"Result" xml:"Result"`
 }

+ 21 - 0
services/elasticsearch/struct_result_in_update_hot_ik_dicts.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ResultInUpdateHotIkDicts is a nested struct in elasticsearch response
+type ResultInUpdateHotIkDicts struct {
+	DictList []DictList `json:"DictList" xml:"DictList"`
+}

+ 12 - 5
services/elasticsearch/struct_result_item.go

@@ -17,9 +17,16 @@ package elasticsearch
 
 // ResultItem is a nested struct in elasticsearch response
 type ResultItem struct {
-	Timestamp  int    `json:"timestamp" xml:"timestamp"`
-	Host       string `json:"host" xml:"host"`
-	Level      string `json:"level" xml:"level"`
-	Content    string `json:"content" xml:"content"`
-	InstanceId string `json:"instanceId" xml:"instanceId"`
+	Description string `json:"description" xml:"description"`
+	Content     string `json:"content" xml:"content"`
+	Port        int    `json:"port" xml:"port"`
+	Timestamp   int64  `json:"timestamp" xml:"timestamp"`
+	State       string `json:"state" xml:"state"`
+	Source      string `json:"source" xml:"source"`
+	Level       string `json:"level" xml:"level"`
+	Name        string `json:"name" xml:"name"`
+	Host        string `json:"host" xml:"host"`
+	NodeType    string `json:"nodeType" xml:"nodeType"`
+	InstanceId  string `json:"instanceId" xml:"instanceId"`
+	ZoneId      string `json:"zoneId" xml:"zoneId"`
 }

+ 1 - 1
services/elasticsearch/struct_synonyms_dicts.go

@@ -18,7 +18,7 @@ package elasticsearch
 // SynonymsDicts is a nested struct in elasticsearch response
 type SynonymsDicts struct {
 	Type       string `json:"type" xml:"type"`
-	FileSize   int    `json:"fileSize" xml:"fileSize"`
+	FileSize   int64  `json:"fileSize" xml:"fileSize"`
 	SourceType string `json:"sourceType" xml:"sourceType"`
 	Name       string `json:"name" xml:"name"`
 }

+ 21 - 0
services/elasticsearch/struct_synonyms_dicts_in_move_resource_group.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// SynonymsDictsInMoveResourceGroup is a nested struct in elasticsearch response
+type SynonymsDictsInMoveResourceGroup struct {
+	SynonymsDictsItem []SynonymsDictsItem `json:"synonymsDictsItem" xml:"synonymsDictsItem"`
+}

+ 24 - 0
services/elasticsearch/struct_synonyms_dicts_item.go

@@ -0,0 +1,24 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// SynonymsDictsItem is a nested struct in elasticsearch response
+type SynonymsDictsItem struct {
+	Name       string `json:"name" xml:"name"`
+	FileSize   int64  `json:"fileSize" xml:"fileSize"`
+	Type       string `json:"type" xml:"type"`
+	SourceType string `json:"sourceType" xml:"sourceType"`
+}

+ 21 - 0
services/elasticsearch/struct_value_limit_set.go

@@ -0,0 +1,21 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ValueLimitSet is a nested struct in elasticsearch response
+type ValueLimitSet struct {
+	ValueLimitSet []string `json:"valueLimitSet" xml:"valueLimitSet"`
+}

+ 24 - 0
services/elasticsearch/struct_warm_node_configuration.go

@@ -0,0 +1,24 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// WarmNodeConfiguration is a nested struct in elasticsearch response
+type WarmNodeConfiguration struct {
+	Spec     string `json:"spec" xml:"spec"`
+	Amount   int    `json:"amount" xml:"amount"`
+	DiskType string `json:"diskType" xml:"diskType"`
+	Disk     int    `json:"disk" xml:"disk"`
+}

+ 108 - 0
services/elasticsearch/transfer_node.go

@@ -0,0 +1,108 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// TransferNode invokes the elasticsearch.TransferNode API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/transfernode.html
+func (client *Client) TransferNode(request *TransferNodeRequest) (response *TransferNodeResponse, err error) {
+	response = CreateTransferNodeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// TransferNodeWithChan invokes the elasticsearch.TransferNode API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/transfernode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TransferNodeWithChan(request *TransferNodeRequest) (<-chan *TransferNodeResponse, <-chan error) {
+	responseChan := make(chan *TransferNodeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.TransferNode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// TransferNodeWithCallback invokes the elasticsearch.TransferNode API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/transfernode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TransferNodeWithCallback(request *TransferNodeRequest, callback func(response *TransferNodeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *TransferNodeResponse
+		var err error
+		defer close(result)
+		response, err = client.TransferNode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// TransferNodeRequest is the request struct for api TransferNode
+type TransferNodeRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+	NodeType   string `position:"Query" name:"nodeType"`
+}
+
+// TransferNodeResponse is the response struct for api TransferNode
+type TransferNodeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateTransferNodeRequest creates a request to invoke TransferNode API
+func CreateTransferNodeRequest() (request *TransferNodeRequest) {
+	request = &TransferNodeRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "TransferNode", "/openapi/instances/[InstanceId]/actions/transfer", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateTransferNodeResponse creates a response to parse from TransferNode response
+func CreateTransferNodeResponse() (response *TransferNodeResponse) {
+	response = &TransferNodeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/elasticsearch/uninstall_plugin.go

@@ -0,0 +1,105 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// UninstallPlugin invokes the elasticsearch.UninstallPlugin API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/uninstallplugin.html
+func (client *Client) UninstallPlugin(request *UninstallPluginRequest) (response *UninstallPluginResponse, err error) {
+	response = CreateUninstallPluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UninstallPluginWithChan invokes the elasticsearch.UninstallPlugin API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/uninstallplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UninstallPluginWithChan(request *UninstallPluginRequest) (<-chan *UninstallPluginResponse, <-chan error) {
+	responseChan := make(chan *UninstallPluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UninstallPlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UninstallPluginWithCallback invokes the elasticsearch.UninstallPlugin API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/uninstallplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UninstallPluginWithCallback(request *UninstallPluginRequest, callback func(response *UninstallPluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UninstallPluginResponse
+		var err error
+		defer close(result)
+		response, err = client.UninstallPlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UninstallPluginRequest is the request struct for api UninstallPlugin
+type UninstallPluginRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+}
+
+// UninstallPluginResponse is the response struct for api UninstallPlugin
+type UninstallPluginResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Result    []string `json:"Result" xml:"Result"`
+}
+
+// CreateUninstallPluginRequest creates a request to invoke UninstallPlugin API
+func CreateUninstallPluginRequest() (request *UninstallPluginRequest) {
+	request = &UninstallPluginRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "UninstallPlugin", "/openapi/instances/[InstanceId]/plugins/actions/uninstall", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUninstallPluginResponse creates a response to parse from UninstallPlugin response
+func CreateUninstallPluginResponse() (response *UninstallPluginResponse) {
+	response = &UninstallPluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/elasticsearch/update_hot_ik_dicts.go

@@ -0,0 +1,105 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// UpdateHotIkDicts invokes the elasticsearch.UpdateHotIkDicts API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/updatehotikdicts.html
+func (client *Client) UpdateHotIkDicts(request *UpdateHotIkDictsRequest) (response *UpdateHotIkDictsResponse, err error) {
+	response = CreateUpdateHotIkDictsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateHotIkDictsWithChan invokes the elasticsearch.UpdateHotIkDicts API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/updatehotikdicts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateHotIkDictsWithChan(request *UpdateHotIkDictsRequest) (<-chan *UpdateHotIkDictsResponse, <-chan error) {
+	responseChan := make(chan *UpdateHotIkDictsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateHotIkDicts(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateHotIkDictsWithCallback invokes the elasticsearch.UpdateHotIkDicts API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/updatehotikdicts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateHotIkDictsWithCallback(request *UpdateHotIkDictsRequest, callback func(response *UpdateHotIkDictsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateHotIkDictsResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateHotIkDicts(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateHotIkDictsRequest is the request struct for api UpdateHotIkDicts
+type UpdateHotIkDictsRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+}
+
+// UpdateHotIkDictsResponse is the response struct for api UpdateHotIkDicts
+type UpdateHotIkDictsResponse struct {
+	*responses.BaseResponse
+	RequestId string     `json:"RequestId" xml:"RequestId"`
+	Result    []DictList `json:"Result" xml:"Result"`
+}
+
+// CreateUpdateHotIkDictsRequest creates a request to invoke UpdateHotIkDicts API
+func CreateUpdateHotIkDictsRequest() (request *UpdateHotIkDictsRequest) {
+	request = &UpdateHotIkDictsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "UpdateHotIkDicts", "/openapi/instances/[InstanceId]/ik-hot-dict", "elasticsearch", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateUpdateHotIkDictsResponse creates a response to parse from UpdateHotIkDicts response
+func CreateUpdateHotIkDictsResponse() (response *UpdateHotIkDictsResponse) {
+	response = &UpdateHotIkDictsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/elasticsearch/update_private_network_white_ips.go

@@ -0,0 +1,105 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// UpdatePrivateNetworkWhiteIps invokes the elasticsearch.UpdatePrivateNetworkWhiteIps API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/updateprivatenetworkwhiteips.html
+func (client *Client) UpdatePrivateNetworkWhiteIps(request *UpdatePrivateNetworkWhiteIpsRequest) (response *UpdatePrivateNetworkWhiteIpsResponse, err error) {
+	response = CreateUpdatePrivateNetworkWhiteIpsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdatePrivateNetworkWhiteIpsWithChan invokes the elasticsearch.UpdatePrivateNetworkWhiteIps API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/updateprivatenetworkwhiteips.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdatePrivateNetworkWhiteIpsWithChan(request *UpdatePrivateNetworkWhiteIpsRequest) (<-chan *UpdatePrivateNetworkWhiteIpsResponse, <-chan error) {
+	responseChan := make(chan *UpdatePrivateNetworkWhiteIpsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdatePrivateNetworkWhiteIps(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdatePrivateNetworkWhiteIpsWithCallback invokes the elasticsearch.UpdatePrivateNetworkWhiteIps API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/updateprivatenetworkwhiteips.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdatePrivateNetworkWhiteIpsWithCallback(request *UpdatePrivateNetworkWhiteIpsRequest, callback func(response *UpdatePrivateNetworkWhiteIpsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdatePrivateNetworkWhiteIpsResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdatePrivateNetworkWhiteIps(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdatePrivateNetworkWhiteIpsRequest is the request struct for api UpdatePrivateNetworkWhiteIps
+type UpdatePrivateNetworkWhiteIpsRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+}
+
+// UpdatePrivateNetworkWhiteIpsResponse is the response struct for api UpdatePrivateNetworkWhiteIps
+type UpdatePrivateNetworkWhiteIpsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Result    Result `json:"Result" xml:"Result"`
+}
+
+// CreateUpdatePrivateNetworkWhiteIpsRequest creates a request to invoke UpdatePrivateNetworkWhiteIps API
+func CreateUpdatePrivateNetworkWhiteIpsRequest() (request *UpdatePrivateNetworkWhiteIpsRequest) {
+	request = &UpdatePrivateNetworkWhiteIpsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "UpdatePrivateNetworkWhiteIps", "/openapi/instances/[InstanceId]/private-network-white-ips", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdatePrivateNetworkWhiteIpsResponse creates a response to parse from UpdatePrivateNetworkWhiteIps response
+func CreateUpdatePrivateNetworkWhiteIpsResponse() (response *UpdatePrivateNetworkWhiteIpsResponse) {
+	response = &UpdatePrivateNetworkWhiteIpsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/elasticsearch/validate_shrink_nodes.go

@@ -0,0 +1,108 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ValidateShrinkNodes invokes the elasticsearch.ValidateShrinkNodes API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/validateshrinknodes.html
+func (client *Client) ValidateShrinkNodes(request *ValidateShrinkNodesRequest) (response *ValidateShrinkNodesResponse, err error) {
+	response = CreateValidateShrinkNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ValidateShrinkNodesWithChan invokes the elasticsearch.ValidateShrinkNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/validateshrinknodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateShrinkNodesWithChan(request *ValidateShrinkNodesRequest) (<-chan *ValidateShrinkNodesResponse, <-chan error) {
+	responseChan := make(chan *ValidateShrinkNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ValidateShrinkNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ValidateShrinkNodesWithCallback invokes the elasticsearch.ValidateShrinkNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/validateshrinknodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateShrinkNodesWithCallback(request *ValidateShrinkNodesRequest, callback func(response *ValidateShrinkNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ValidateShrinkNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.ValidateShrinkNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ValidateShrinkNodesRequest is the request struct for api ValidateShrinkNodes
+type ValidateShrinkNodesRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+	NodeType   string `position:"Query" name:"nodeType"`
+}
+
+// ValidateShrinkNodesResponse is the response struct for api ValidateShrinkNodes
+type ValidateShrinkNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateValidateShrinkNodesRequest creates a request to invoke ValidateShrinkNodes API
+func CreateValidateShrinkNodesRequest() (request *ValidateShrinkNodesRequest) {
+	request = &ValidateShrinkNodesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "ValidateShrinkNodes", "/openapi/instances/[InstanceId]/validate-shrink-nodes", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateValidateShrinkNodesResponse creates a response to parse from ValidateShrinkNodes response
+func CreateValidateShrinkNodesResponse() (response *ValidateShrinkNodesResponse) {
+	response = &ValidateShrinkNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/elasticsearch/validate_transferable_nodes.go

@@ -0,0 +1,108 @@
+package elasticsearch
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ValidateTransferableNodes invokes the elasticsearch.ValidateTransferableNodes API synchronously
+// api document: https://help.aliyun.com/api/elasticsearch/validatetransferablenodes.html
+func (client *Client) ValidateTransferableNodes(request *ValidateTransferableNodesRequest) (response *ValidateTransferableNodesResponse, err error) {
+	response = CreateValidateTransferableNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ValidateTransferableNodesWithChan invokes the elasticsearch.ValidateTransferableNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/validatetransferablenodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateTransferableNodesWithChan(request *ValidateTransferableNodesRequest) (<-chan *ValidateTransferableNodesResponse, <-chan error) {
+	responseChan := make(chan *ValidateTransferableNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ValidateTransferableNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ValidateTransferableNodesWithCallback invokes the elasticsearch.ValidateTransferableNodes API asynchronously
+// api document: https://help.aliyun.com/api/elasticsearch/validatetransferablenodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateTransferableNodesWithCallback(request *ValidateTransferableNodesRequest, callback func(response *ValidateTransferableNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ValidateTransferableNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.ValidateTransferableNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ValidateTransferableNodesRequest is the request struct for api ValidateTransferableNodes
+type ValidateTransferableNodesRequest struct {
+	*requests.RoaRequest
+	InstanceId string `position:"Path" name:"InstanceId"`
+	NodeType   string `position:"Query" name:"nodeType"`
+}
+
+// ValidateTransferableNodesResponse is the response struct for api ValidateTransferableNodes
+type ValidateTransferableNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Result    bool   `json:"Result" xml:"Result"`
+}
+
+// CreateValidateTransferableNodesRequest creates a request to invoke ValidateTransferableNodes API
+func CreateValidateTransferableNodesRequest() (request *ValidateTransferableNodesRequest) {
+	request = &ValidateTransferableNodesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("elasticsearch", "2017-06-13", "ValidateTransferableNodes", "/openapi/instances/[InstanceId]/validate-transfer-nodes", "elasticsearch", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateValidateTransferableNodesResponse creates a response to parse from ValidateTransferableNodes response
+func CreateValidateTransferableNodesResponse() (response *ValidateTransferableNodesResponse) {
+	response = &ValidateTransferableNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}