Explorar el Código

由谦正发起的EHPC SDK自动发布, BUILD_ID=413, 版本号:0.12.0

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao hace 7 años
padre
commit
e5ebfbd830
Se han modificado 38 ficheros con 3796 adiciones y 0 borrados
  1. 4 0
      ChangeLog.txt
  2. 99 0
      services/ehpc/add_nodes.go
  3. 99 0
      services/ehpc/add_users.go
  4. 67 0
      services/ehpc/client.go
  5. 126 0
      services/ehpc/create_cluster.go
  6. 101 0
      services/ehpc/create_job_template.go
  7. 92 0
      services/ehpc/delete_cluster.go
  8. 91 0
      services/ehpc/delete_job_templates.go
  9. 92 0
      services/ehpc/delete_jobs.go
  10. 97 0
      services/ehpc/delete_nodes.go
  11. 96 0
      services/ehpc/delete_users.go
  12. 137 0
      services/ehpc/describe_cluster.go
  13. 102 0
      services/ehpc/edit_job_template.go
  14. 104 0
      services/ehpc/get_auto_scale_config.go
  15. 105 0
      services/ehpc/list_cluster_logs.go
  16. 134 0
      services/ehpc/list_clusters.go
  17. 91 0
      services/ehpc/list_current_client_version.go
  18. 106 0
      services/ehpc/list_custom_images.go
  19. 98 0
      services/ehpc/list_images.go
  20. 111 0
      services/ehpc/list_job_templates.go
  21. 118 0
      services/ehpc/list_jobs.go
  22. 124 0
      services/ehpc/list_nodes.go
  23. 123 0
      services/ehpc/list_nodes_no_paging.go
  24. 108 0
      services/ehpc/list_preferred_ecs_types.go
  25. 96 0
      services/ehpc/list_regions.go
  26. 109 0
      services/ehpc/list_softwares.go
  27. 103 0
      services/ehpc/list_users.go
  28. 107 0
      services/ehpc/list_volumes.go
  29. 93 0
      services/ehpc/modify_cluster_attributes.go
  30. 97 0
      services/ehpc/modify_user_groups.go
  31. 97 0
      services/ehpc/modify_user_passwords.go
  32. 92 0
      services/ehpc/rerun_jobs.go
  33. 96 0
      services/ehpc/reset_nodes.go
  34. 101 0
      services/ehpc/set_auto_scale_config.go
  35. 93 0
      services/ehpc/set_job_user.go
  36. 92 0
      services/ehpc/stop_jobs.go
  37. 103 0
      services/ehpc/submit_job.go
  38. 92 0
      services/ehpc/upgrade_client.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-02-09 Version: 0.12.0
+1, Aliyun E-HPC service SDK, initial version.
+2, Include APIs of E-HPC clusters, nodes, users, jobs, job templates etc.
+
 2018-02-07 Version: 0.11.4
 1, add the access interface of logs such as vulnerabilities, baselines, exceptions, etc.
 

+ 99 - 0
services/ehpc/add_nodes.go

@@ -0,0 +1,99 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) AddNodes(request *AddNodesRequest) (response *AddNodesResponse, err error) {
+	response = CreateAddNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) AddNodesWithChan(request *AddNodesRequest) (<-chan *AddNodesResponse, <-chan error) {
+	responseChan := make(chan *AddNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) AddNodesWithCallback(request *AddNodesRequest, callback func(response *AddNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.AddNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type AddNodesRequest struct {
+	*requests.RpcRequest
+	ImageId               string           `position:"Query" name:"ImageId"`
+	Count                 requests.Integer `position:"Query" name:"Count"`
+	ClusterId             string           `position:"Query" name:"ClusterId"`
+	ComputeSpotStrategy   string           `position:"Query" name:"ComputeSpotStrategy"`
+	ComputeSpotPriceLimit string           `position:"Query" name:"ComputeSpotPriceLimit"`
+	ImageOwnerAlias       string           `position:"Query" name:"ImageOwnerAlias"`
+}
+
+type AddNodesResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	InstanceIds struct {
+		InstanceId []string `json:"InstanceId" xml:"InstanceId"`
+	} `json:"InstanceIds" xml:"InstanceIds"`
+}
+
+func CreateAddNodesRequest() (request *AddNodesRequest) {
+	request = &AddNodesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "AddNodes", "ehs", "openAPI")
+	return
+}
+
+func CreateAddNodesResponse() (response *AddNodesResponse) {
+	response = &AddNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 99 - 0
services/ehpc/add_users.go

@@ -0,0 +1,99 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) AddUsers(request *AddUsersRequest) (response *AddUsersResponse, err error) {
+	response = CreateAddUsersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) AddUsersWithChan(request *AddUsersRequest) (<-chan *AddUsersResponse, <-chan error) {
+	responseChan := make(chan *AddUsersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddUsers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) AddUsersWithCallback(request *AddUsersRequest, callback func(response *AddUsersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddUsersResponse
+		var err error
+		defer close(result)
+		response, err = client.AddUsers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type AddUsersRequest struct {
+	*requests.RpcRequest
+	ReleaseInstance requests.Boolean `position:"Query" name:"ReleaseInstance"`
+	ClusterId       string           `position:"Query" name:"ClusterId"`
+	User            *[]AddUsersUser  `position:"Query" name:"User"  type:"Repeated"`
+}
+
+type AddUsersUser struct {
+	Name     string `name:"Name"`
+	Group    string `name:"Group"`
+	Password string `name:"Password"`
+}
+
+type AddUsersResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateAddUsersRequest() (request *AddUsersRequest) {
+	request = &AddUsersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "AddUsers", "ehs", "openAPI")
+	return
+}
+
+func CreateAddUsersResponse() (response *AddUsersResponse) {
+	response = &AddUsersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 67 - 0
services/ehpc/client.go

@@ -0,0 +1,67 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+type Client struct {
+	sdk.Client
+}
+
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 126 - 0
services/ehpc/create_cluster.go

@@ -0,0 +1,126 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) CreateCluster(request *CreateClusterRequest) (response *CreateClusterResponse, err error) {
+	response = CreateCreateClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) CreateClusterWithChan(request *CreateClusterRequest) (<-chan *CreateClusterResponse, <-chan error) {
+	responseChan := make(chan *CreateClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) CreateClusterWithCallback(request *CreateClusterRequest, callback func(response *CreateClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type CreateClusterRequest struct {
+	*requests.RpcRequest
+	SccClusterId                string                      `position:"Query" name:"SccClusterId"`
+	ImageId                     string                      `position:"Query" name:"ImageId"`
+	EcsOrderManagerInstanceType string                      `position:"Query" name:"EcsOrder.Manager.InstanceType"`
+	EhpcVersion                 string                      `position:"Query" name:"EhpcVersion"`
+	AccountType                 string                      `position:"Query" name:"AccountType"`
+	SecurityGroupId             string                      `position:"Query" name:"SecurityGroupId"`
+	Description                 string                      `position:"Query" name:"Description"`
+	KeyPairName                 string                      `position:"Query" name:"KeyPairName"`
+	SecurityGroupName           string                      `position:"Query" name:"SecurityGroupName"`
+	EcsOrderComputeInstanceType string                      `position:"Query" name:"EcsOrder.Compute.InstanceType"`
+	ImageOwnerAlias             string                      `position:"Query" name:"ImageOwnerAlias"`
+	VolumeType                  string                      `position:"Query" name:"VolumeType"`
+	EcsOrderManagerCount        requests.Integer            `position:"Query" name:"EcsOrder.Manager.Count"`
+	Password                    string                      `position:"Query" name:"Password"`
+	EcsOrderLoginCount          requests.Integer            `position:"Query" name:"EcsOrder.Login.Count"`
+	ComputeSpotPriceLimit       string                      `position:"Query" name:"ComputeSpotPriceLimit"`
+	VolumeProtocol              string                      `position:"Query" name:"VolumeProtocol"`
+	OsTag                       string                      `position:"Query" name:"OsTag"`
+	RemoteDirectory             string                      `position:"Query" name:"RemoteDirectory"`
+	EcsOrderComputeCount        requests.Integer            `position:"Query" name:"EcsOrder.Compute.Count"`
+	ComputeSpotStrategy         string                      `position:"Query" name:"ComputeSpotStrategy"`
+	VSwitchId                   string                      `position:"Query" name:"VSwitchId"`
+	Application                 *[]CreateClusterApplication `position:"Query" name:"Application"  type:"Repeated"`
+	EcsChargeType               string                      `position:"Query" name:"EcsChargeType"`
+	HaEnable                    requests.Boolean            `position:"Query" name:"HaEnable"`
+	Name                        string                      `position:"Query" name:"Name"`
+	SchedulerType               string                      `position:"Query" name:"SchedulerType"`
+	VolumeId                    string                      `position:"Query" name:"VolumeId"`
+	VolumeMountpoint            string                      `position:"Query" name:"VolumeMountpoint"`
+	EcsOrderLoginInstanceType   string                      `position:"Query" name:"EcsOrder.Login.InstanceType"`
+	ZoneId                      string                      `position:"Query" name:"ZoneId"`
+}
+
+type CreateClusterApplication struct {
+	Tag string `name:"Tag"`
+}
+
+type CreateClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	ClusterId string `json:"ClusterId" xml:"ClusterId"`
+}
+
+func CreateCreateClusterRequest() (request *CreateClusterRequest) {
+	request = &CreateClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "CreateCluster", "ehs", "openAPI")
+	return
+}
+
+func CreateCreateClusterResponse() (response *CreateClusterResponse) {
+	response = &CreateClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 101 - 0
services/ehpc/create_job_template.go

@@ -0,0 +1,101 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) CreateJobTemplate(request *CreateJobTemplateRequest) (response *CreateJobTemplateResponse, err error) {
+	response = CreateCreateJobTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) CreateJobTemplateWithChan(request *CreateJobTemplateRequest) (<-chan *CreateJobTemplateResponse, <-chan error) {
+	responseChan := make(chan *CreateJobTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateJobTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) CreateJobTemplateWithCallback(request *CreateJobTemplateRequest, callback func(response *CreateJobTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateJobTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateJobTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type CreateJobTemplateRequest struct {
+	*requests.RpcRequest
+	StderrRedirectPath string           `position:"Query" name:"StderrRedirectPath"`
+	Variables          string           `position:"Query" name:"Variables"`
+	RunasUser          string           `position:"Query" name:"RunasUser"`
+	ReRunable          requests.Boolean `position:"Query" name:"ReRunable"`
+	Priority           requests.Integer `position:"Query" name:"Priority"`
+	CommandLine        string           `position:"Query" name:"CommandLine"`
+	ArrayRequest       string           `position:"Query" name:"ArrayRequest"`
+	PackagePath        string           `position:"Query" name:"PackagePath"`
+	Name               string           `position:"Query" name:"Name"`
+	StdoutRedirectPath string           `position:"Query" name:"StdoutRedirectPath"`
+}
+
+type CreateJobTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TemplateId string `json:"TemplateId" xml:"TemplateId"`
+}
+
+func CreateCreateJobTemplateRequest() (request *CreateJobTemplateRequest) {
+	request = &CreateJobTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "CreateJobTemplate", "ehs", "openAPI")
+	return
+}
+
+func CreateCreateJobTemplateResponse() (response *CreateJobTemplateResponse) {
+	response = &CreateJobTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 92 - 0
services/ehpc/delete_cluster.go

@@ -0,0 +1,92 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) DeleteCluster(request *DeleteClusterRequest) (response *DeleteClusterResponse, err error) {
+	response = CreateDeleteClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DeleteClusterWithChan(request *DeleteClusterRequest) (<-chan *DeleteClusterResponse, <-chan error) {
+	responseChan := make(chan *DeleteClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DeleteClusterWithCallback(request *DeleteClusterRequest, callback func(response *DeleteClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DeleteClusterRequest struct {
+	*requests.RpcRequest
+	ReleaseInstance string `position:"Query" name:"ReleaseInstance"`
+	ClusterId       string `position:"Query" name:"ClusterId"`
+}
+
+type DeleteClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteClusterRequest() (request *DeleteClusterRequest) {
+	request = &DeleteClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteCluster", "ehs", "openAPI")
+	return
+}
+
+func CreateDeleteClusterResponse() (response *DeleteClusterResponse) {
+	response = &DeleteClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 91 - 0
services/ehpc/delete_job_templates.go

@@ -0,0 +1,91 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) DeleteJobTemplates(request *DeleteJobTemplatesRequest) (response *DeleteJobTemplatesResponse, err error) {
+	response = CreateDeleteJobTemplatesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DeleteJobTemplatesWithChan(request *DeleteJobTemplatesRequest) (<-chan *DeleteJobTemplatesResponse, <-chan error) {
+	responseChan := make(chan *DeleteJobTemplatesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteJobTemplates(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DeleteJobTemplatesWithCallback(request *DeleteJobTemplatesRequest, callback func(response *DeleteJobTemplatesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteJobTemplatesResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteJobTemplates(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DeleteJobTemplatesRequest struct {
+	*requests.RpcRequest
+	Templates string `position:"Query" name:"Templates"`
+}
+
+type DeleteJobTemplatesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteJobTemplatesRequest() (request *DeleteJobTemplatesRequest) {
+	request = &DeleteJobTemplatesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteJobTemplates", "ehs", "openAPI")
+	return
+}
+
+func CreateDeleteJobTemplatesResponse() (response *DeleteJobTemplatesResponse) {
+	response = &DeleteJobTemplatesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 92 - 0
services/ehpc/delete_jobs.go

@@ -0,0 +1,92 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) DeleteJobs(request *DeleteJobsRequest) (response *DeleteJobsResponse, err error) {
+	response = CreateDeleteJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DeleteJobsWithChan(request *DeleteJobsRequest) (<-chan *DeleteJobsResponse, <-chan error) {
+	responseChan := make(chan *DeleteJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DeleteJobsWithCallback(request *DeleteJobsRequest, callback func(response *DeleteJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DeleteJobsRequest struct {
+	*requests.RpcRequest
+	Jobs      string `position:"Query" name:"Jobs"`
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+type DeleteJobsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteJobsRequest() (request *DeleteJobsRequest) {
+	request = &DeleteJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteJobs", "ehs", "openAPI")
+	return
+}
+
+func CreateDeleteJobsResponse() (response *DeleteJobsResponse) {
+	response = &DeleteJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 97 - 0
services/ehpc/delete_nodes.go

@@ -0,0 +1,97 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) DeleteNodes(request *DeleteNodesRequest) (response *DeleteNodesResponse, err error) {
+	response = CreateDeleteNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DeleteNodesWithChan(request *DeleteNodesRequest) (<-chan *DeleteNodesResponse, <-chan error) {
+	responseChan := make(chan *DeleteNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DeleteNodesWithCallback(request *DeleteNodesRequest, callback func(response *DeleteNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DeleteNodesRequest struct {
+	*requests.RpcRequest
+	ReleaseInstance requests.Boolean       `position:"Query" name:"ReleaseInstance"`
+	Instance        *[]DeleteNodesInstance `position:"Query" name:"Instance"  type:"Repeated"`
+	ClusterId       string                 `position:"Query" name:"ClusterId"`
+}
+
+type DeleteNodesInstance struct {
+	Id string `name:"Id"`
+}
+
+type DeleteNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteNodesRequest() (request *DeleteNodesRequest) {
+	request = &DeleteNodesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteNodes", "ehs", "openAPI")
+	return
+}
+
+func CreateDeleteNodesResponse() (response *DeleteNodesResponse) {
+	response = &DeleteNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 96 - 0
services/ehpc/delete_users.go

@@ -0,0 +1,96 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) DeleteUsers(request *DeleteUsersRequest) (response *DeleteUsersResponse, err error) {
+	response = CreateDeleteUsersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DeleteUsersWithChan(request *DeleteUsersRequest) (<-chan *DeleteUsersResponse, <-chan error) {
+	responseChan := make(chan *DeleteUsersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteUsers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DeleteUsersWithCallback(request *DeleteUsersRequest, callback func(response *DeleteUsersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteUsersResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteUsers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DeleteUsersRequest struct {
+	*requests.RpcRequest
+	ClusterId string             `position:"Query" name:"ClusterId"`
+	User      *[]DeleteUsersUser `position:"Query" name:"User"  type:"Repeated"`
+}
+
+type DeleteUsersUser struct {
+	Name string `name:"Name"`
+}
+
+type DeleteUsersResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteUsersRequest() (request *DeleteUsersRequest) {
+	request = &DeleteUsersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteUsers", "ehs", "openAPI")
+	return
+}
+
+func CreateDeleteUsersResponse() (response *DeleteUsersResponse) {
+	response = &DeleteUsersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 137 - 0
services/ehpc/describe_cluster.go

@@ -0,0 +1,137 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) DescribeCluster(request *DescribeClusterRequest) (response *DescribeClusterResponse, err error) {
+	response = CreateDescribeClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeClusterWithChan(request *DescribeClusterRequest) (<-chan *DescribeClusterResponse, <-chan error) {
+	responseChan := make(chan *DescribeClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeClusterWithCallback(request *DescribeClusterRequest, callback func(response *DescribeClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeClusterRequest struct {
+	*requests.RpcRequest
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+type DescribeClusterResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	ClusterInfo struct {
+		Id               string `json:"Id" xml:"Id"`
+		RegionId         string `json:"RegionId" xml:"RegionId"`
+		Name             string `json:"Name" xml:"Name"`
+		Description      string `json:"Description" xml:"Description"`
+		Status           string `json:"Status" xml:"Status"`
+		OsTag            string `json:"OsTag" xml:"OsTag"`
+		AccountType      string `json:"AccountType" xml:"AccountType"`
+		SchedulerType    string `json:"SchedulerType" xml:"SchedulerType"`
+		CreateTime       string `json:"CreateTime" xml:"CreateTime"`
+		SecurityGroupId  string `json:"SecurityGroupId" xml:"SecurityGroupId"`
+		VSwitchId        string `json:"VSwitchId" xml:"VSwitchId"`
+		VolumeType       string `json:"VolumeType" xml:"VolumeType"`
+		VolumeId         string `json:"VolumeId" xml:"VolumeId"`
+		VolumeProtocol   string `json:"VolumeProtocol" xml:"VolumeProtocol"`
+		VolumeMountpoint string `json:"VolumeMountpoint" xml:"VolumeMountpoint"`
+		RemoteDirectory  string `json:"RemoteDirectory" xml:"RemoteDirectory"`
+		HaEnable         bool   `json:"HaEnable" xml:"HaEnable"`
+		EcsChargeType    string `json:"EcsChargeType" xml:"EcsChargeType"`
+		KeyPairName      string `json:"KeyPairName" xml:"KeyPairName"`
+		SccClusterId     string `json:"SccClusterId" xml:"SccClusterId"`
+		ClientVersion    string `json:"ClientVersion" xml:"ClientVersion"`
+		ImageOwnerAlias  string `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+		ImageId          string `json:"ImageId" xml:"ImageId"`
+		EcsInfo          struct {
+			Manager struct {
+				Count        int    `json:"Count" xml:"Count"`
+				InstanceType string `json:"InstanceType" xml:"InstanceType"`
+			} `json:"Manager" xml:"Manager"`
+			Compute struct {
+				Count        int    `json:"Count" xml:"Count"`
+				InstanceType string `json:"InstanceType" xml:"InstanceType"`
+			} `json:"Compute" xml:"Compute"`
+			Login struct {
+				Count        int    `json:"Count" xml:"Count"`
+				InstanceType string `json:"InstanceType" xml:"InstanceType"`
+			} `json:"Login" xml:"Login"`
+		} `json:"EcsInfo" xml:"EcsInfo"`
+		ApplicationInfo struct {
+			ApplicationInfoItem []struct {
+				Tag     string `json:"Tag" xml:"Tag"`
+				Name    string `json:"Name" xml:"Name"`
+				Version string `json:"Version" xml:"Version"`
+			} `json:"ApplicationInfoItem" xml:"ApplicationInfoItem"`
+		} `json:"ApplicationInfo" xml:"ApplicationInfo"`
+	} `json:"ClusterInfo" xml:"ClusterInfo"`
+}
+
+func CreateDescribeClusterRequest() (request *DescribeClusterRequest) {
+	request = &DescribeClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "DescribeCluster", "ehs", "openAPI")
+	return
+}
+
+func CreateDescribeClusterResponse() (response *DescribeClusterResponse) {
+	response = &DescribeClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/ehpc/edit_job_template.go

@@ -0,0 +1,102 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) EditJobTemplate(request *EditJobTemplateRequest) (response *EditJobTemplateResponse, err error) {
+	response = CreateEditJobTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) EditJobTemplateWithChan(request *EditJobTemplateRequest) (<-chan *EditJobTemplateResponse, <-chan error) {
+	responseChan := make(chan *EditJobTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EditJobTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) EditJobTemplateWithCallback(request *EditJobTemplateRequest, callback func(response *EditJobTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EditJobTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.EditJobTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type EditJobTemplateRequest struct {
+	*requests.RpcRequest
+	StderrRedirectPath string           `position:"Query" name:"StderrRedirectPath"`
+	Variables          string           `position:"Query" name:"Variables"`
+	RunasUser          string           `position:"Query" name:"RunasUser"`
+	TemplateId         string           `position:"Query" name:"TemplateId"`
+	Priority           requests.Integer `position:"Query" name:"Priority"`
+	CommandLine        string           `position:"Query" name:"CommandLine"`
+	ArrayRequest       string           `position:"Query" name:"ArrayRequest"`
+	PackagePath        string           `position:"Query" name:"PackagePath"`
+	ReRunnable         requests.Boolean `position:"Query" name:"ReRunnable"`
+	Name               string           `position:"Query" name:"Name"`
+	StdoutRedirectPath string           `position:"Query" name:"StdoutRedirectPath"`
+}
+
+type EditJobTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TemplateId string `json:"TemplateId" xml:"TemplateId"`
+}
+
+func CreateEditJobTemplateRequest() (request *EditJobTemplateRequest) {
+	request = &EditJobTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "EditJobTemplate", "ehs", "openAPI")
+	return
+}
+
+func CreateEditJobTemplateResponse() (response *EditJobTemplateResponse) {
+	response = &EditJobTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/ehpc/get_auto_scale_config.go

@@ -0,0 +1,104 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) GetAutoScaleConfig(request *GetAutoScaleConfigRequest) (response *GetAutoScaleConfigResponse, err error) {
+	response = CreateGetAutoScaleConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) GetAutoScaleConfigWithChan(request *GetAutoScaleConfigRequest) (<-chan *GetAutoScaleConfigResponse, <-chan error) {
+	responseChan := make(chan *GetAutoScaleConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAutoScaleConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) GetAutoScaleConfigWithCallback(request *GetAutoScaleConfigRequest, callback func(response *GetAutoScaleConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAutoScaleConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAutoScaleConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type GetAutoScaleConfigRequest struct {
+	*requests.RpcRequest
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+type GetAutoScaleConfigResponse struct {
+	*responses.BaseResponse
+	RequestId               string `json:"RequestId" xml:"RequestId"`
+	Uid                     string `json:"Uid" xml:"Uid"`
+	ClusterId               string `json:"ClusterId" xml:"ClusterId"`
+	ClusterType             string `json:"ClusterType" xml:"ClusterType"`
+	EnableAutoGrow          bool   `json:"EnableAutoGrow" xml:"EnableAutoGrow"`
+	EnableAutoShrink        bool   `json:"EnableAutoShrink" xml:"EnableAutoShrink"`
+	GrowIntervalInMinutes   int    `json:"GrowIntervalInMinutes" xml:"GrowIntervalInMinutes"`
+	ShrinkIntervalInMinutes int    `json:"ShrinkIntervalInMinutes" xml:"ShrinkIntervalInMinutes"`
+	ShrinkIdleTimes         int    `json:"ShrinkIdleTimes" xml:"ShrinkIdleTimes"`
+	GrowTimeoutInMinutes    int    `json:"GrowTimeoutInMinutes" xml:"GrowTimeoutInMinutes"`
+	ExtraNodesGrowRatio     int    `json:"ExtraNodesGrowRatio" xml:"ExtraNodesGrowRatio"`
+	GrowRatio               int    `json:"GrowRatio" xml:"GrowRatio"`
+	MaxNodesInCluster       int    `json:"MaxNodesInCluster" xml:"MaxNodesInCluster"`
+	ExcludeNodes            string `json:"ExcludeNodes" xml:"ExcludeNodes"`
+}
+
+func CreateGetAutoScaleConfigRequest() (request *GetAutoScaleConfigRequest) {
+	request = &GetAutoScaleConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "GetAutoScaleConfig", "ehs", "openAPI")
+	return
+}
+
+func CreateGetAutoScaleConfigResponse() (response *GetAutoScaleConfigResponse) {
+	response = &GetAutoScaleConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/ehpc/list_cluster_logs.go

@@ -0,0 +1,105 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListClusterLogs(request *ListClusterLogsRequest) (response *ListClusterLogsResponse, err error) {
+	response = CreateListClusterLogsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListClusterLogsWithChan(request *ListClusterLogsRequest) (<-chan *ListClusterLogsResponse, <-chan error) {
+	responseChan := make(chan *ListClusterLogsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListClusterLogs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListClusterLogsWithCallback(request *ListClusterLogsRequest, callback func(response *ListClusterLogsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListClusterLogsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListClusterLogs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListClusterLogsRequest struct {
+	*requests.RpcRequest
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	ClusterId  string           `position:"Query" name:"ClusterId"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListClusterLogsResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	ClusterId  string `json:"ClusterId" xml:"ClusterId"`
+	Logs       struct {
+		LogInfo []struct {
+			Operation  string `json:"Operation" xml:"Operation"`
+			Level      string `json:"Level" xml:"Level"`
+			Message    string `json:"Message" xml:"Message"`
+			CreateTime string `json:"CreateTime" xml:"CreateTime"`
+		} `json:"LogInfo" xml:"LogInfo"`
+	} `json:"Logs" xml:"Logs"`
+}
+
+func CreateListClusterLogsRequest() (request *ListClusterLogsRequest) {
+	request = &ListClusterLogsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListClusterLogs", "ehs", "openAPI")
+	return
+}
+
+func CreateListClusterLogsResponse() (response *ListClusterLogsResponse) {
+	response = &ListClusterLogsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 134 - 0
services/ehpc/list_clusters.go

@@ -0,0 +1,134 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListClusters(request *ListClustersRequest) (response *ListClustersResponse, err error) {
+	response = CreateListClustersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListClustersWithChan(request *ListClustersRequest) (<-chan *ListClustersResponse, <-chan error) {
+	responseChan := make(chan *ListClustersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListClusters(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListClustersWithCallback(request *ListClustersRequest, callback func(response *ListClustersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListClustersResponse
+		var err error
+		defer close(result)
+		response, err = client.ListClusters(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListClustersRequest struct {
+	*requests.RpcRequest
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListClustersResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Clusters   struct {
+		ClusterInfoSimple []struct {
+			Id              string `json:"Id" xml:"Id"`
+			RegionId        string `json:"RegionId" xml:"RegionId"`
+			ZoneId          string `json:"ZoneId" xml:"ZoneId"`
+			Name            string `json:"Name" xml:"Name"`
+			Description     string `json:"Description" xml:"Description"`
+			Status          string `json:"Status" xml:"Status"`
+			OsTag           string `json:"OsTag" xml:"OsTag"`
+			AccountType     string `json:"AccountType" xml:"AccountType"`
+			SchedulerType   string `json:"SchedulerType" xml:"SchedulerType"`
+			Count           int    `json:"Count" xml:"Count"`
+			InstanceType    string `json:"InstanceType" xml:"InstanceType"`
+			LoginNodes      string `json:"LoginNodes" xml:"LoginNodes"`
+			CreateTime      string `json:"CreateTime" xml:"CreateTime"`
+			ImageOwnerAlias string `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+			ImageId         string `json:"ImageId" xml:"ImageId"`
+			Managers        struct {
+				Total          int `json:"Total" xml:"Total"`
+				NormalCount    int `json:"NormalCount" xml:"NormalCount"`
+				ExceptionCount int `json:"ExceptionCount" xml:"ExceptionCount"`
+			} `json:"Managers" xml:"Managers"`
+			Computes struct {
+				Total          int `json:"Total" xml:"Total"`
+				NormalCount    int `json:"NormalCount" xml:"NormalCount"`
+				ExceptionCount int `json:"ExceptionCount" xml:"ExceptionCount"`
+			} `json:"Computes" xml:"Computes"`
+			TotalResources struct {
+				Cpu    int `json:"Cpu" xml:"Cpu"`
+				Memory int `json:"Memory" xml:"Memory"`
+				Gpu    int `json:"Gpu" xml:"Gpu"`
+			} `json:"TotalResources" xml:"TotalResources"`
+			UsedResources struct {
+				Cpu    int `json:"Cpu" xml:"Cpu"`
+				Memory int `json:"Memory" xml:"Memory"`
+				Gpu    int `json:"Gpu" xml:"Gpu"`
+			} `json:"UsedResources" xml:"UsedResources"`
+		} `json:"ClusterInfoSimple" xml:"ClusterInfoSimple"`
+	} `json:"Clusters" xml:"Clusters"`
+}
+
+func CreateListClustersRequest() (request *ListClustersRequest) {
+	request = &ListClustersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListClusters", "ehs", "openAPI")
+	return
+}
+
+func CreateListClustersResponse() (response *ListClustersResponse) {
+	response = &ListClustersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 91 - 0
services/ehpc/list_current_client_version.go

@@ -0,0 +1,91 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListCurrentClientVersion(request *ListCurrentClientVersionRequest) (response *ListCurrentClientVersionResponse, err error) {
+	response = CreateListCurrentClientVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListCurrentClientVersionWithChan(request *ListCurrentClientVersionRequest) (<-chan *ListCurrentClientVersionResponse, <-chan error) {
+	responseChan := make(chan *ListCurrentClientVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListCurrentClientVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListCurrentClientVersionWithCallback(request *ListCurrentClientVersionRequest, callback func(response *ListCurrentClientVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListCurrentClientVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.ListCurrentClientVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListCurrentClientVersionRequest struct {
+	*requests.RpcRequest
+}
+
+type ListCurrentClientVersionResponse struct {
+	*responses.BaseResponse
+	RequestId     string `json:"RequestId" xml:"RequestId"`
+	ClientVersion string `json:"ClientVersion" xml:"ClientVersion"`
+}
+
+func CreateListCurrentClientVersionRequest() (request *ListCurrentClientVersionRequest) {
+	request = &ListCurrentClientVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListCurrentClientVersion", "ehs", "openAPI")
+	return
+}
+
+func CreateListCurrentClientVersionResponse() (response *ListCurrentClientVersionResponse) {
+	response = &ListCurrentClientVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/ehpc/list_custom_images.go

@@ -0,0 +1,106 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListCustomImages(request *ListCustomImagesRequest) (response *ListCustomImagesResponse, err error) {
+	response = CreateListCustomImagesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListCustomImagesWithChan(request *ListCustomImagesRequest) (<-chan *ListCustomImagesResponse, <-chan error) {
+	responseChan := make(chan *ListCustomImagesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListCustomImages(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListCustomImagesWithCallback(request *ListCustomImagesRequest, callback func(response *ListCustomImagesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListCustomImagesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListCustomImages(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListCustomImagesRequest struct {
+	*requests.RpcRequest
+	BaseOsTag       string `position:"Query" name:"BaseOsTag"`
+	ImageOwnerAlias string `position:"Query" name:"ImageOwnerAlias"`
+}
+
+type ListCustomImagesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Images    struct {
+		ImageInfo []struct {
+			ImageId         string `json:"ImageId" xml:"ImageId"`
+			ImageName       string `json:"ImageName" xml:"ImageName"`
+			ImageOwnerAlias string `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+			Description     string `json:"Description" xml:"Description"`
+			BaseOsTag       struct {
+				OsTag        string `json:"OsTag" xml:"OsTag"`
+				Platform     string `json:"Platform" xml:"Platform"`
+				Version      string `json:"Version" xml:"Version"`
+				Architecture string `json:"Architecture" xml:"Architecture"`
+			} `json:"BaseOsTag" xml:"BaseOsTag"`
+		} `json:"ImageInfo" xml:"ImageInfo"`
+	} `json:"Images" xml:"Images"`
+}
+
+func CreateListCustomImagesRequest() (request *ListCustomImagesRequest) {
+	request = &ListCustomImagesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListCustomImages", "ehs", "openAPI")
+	return
+}
+
+func CreateListCustomImagesResponse() (response *ListCustomImagesResponse) {
+	response = &ListCustomImagesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 98 - 0
services/ehpc/list_images.go

@@ -0,0 +1,98 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListImages(request *ListImagesRequest) (response *ListImagesResponse, err error) {
+	response = CreateListImagesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListImagesWithChan(request *ListImagesRequest) (<-chan *ListImagesResponse, <-chan error) {
+	responseChan := make(chan *ListImagesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListImages(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListImagesWithCallback(request *ListImagesRequest, callback func(response *ListImagesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListImagesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListImages(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListImagesRequest struct {
+	*requests.RpcRequest
+}
+
+type ListImagesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	OsTags    struct {
+		OsInfo []struct {
+			OsTag        string `json:"OsTag" xml:"OsTag"`
+			Platform     string `json:"Platform" xml:"Platform"`
+			Version      string `json:"Version" xml:"Version"`
+			Architecture string `json:"Architecture" xml:"Architecture"`
+		} `json:"OsInfo" xml:"OsInfo"`
+	} `json:"OsTags" xml:"OsTags"`
+}
+
+func CreateListImagesRequest() (request *ListImagesRequest) {
+	request = &ListImagesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListImages", "ehs", "openAPI")
+	return
+}
+
+func CreateListImagesResponse() (response *ListImagesResponse) {
+	response = &ListImagesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ehpc/list_job_templates.go

@@ -0,0 +1,111 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListJobTemplates(request *ListJobTemplatesRequest) (response *ListJobTemplatesResponse, err error) {
+	response = CreateListJobTemplatesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListJobTemplatesWithChan(request *ListJobTemplatesRequest) (<-chan *ListJobTemplatesResponse, <-chan error) {
+	responseChan := make(chan *ListJobTemplatesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobTemplates(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListJobTemplatesWithCallback(request *ListJobTemplatesRequest, callback func(response *ListJobTemplatesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobTemplatesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobTemplates(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListJobTemplatesRequest struct {
+	*requests.RpcRequest
+	Name       string           `position:"Query" name:"Name"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListJobTemplatesResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Templates  struct {
+		JobTemplates []struct {
+			Id                 string `json:"Id" xml:"Id"`
+			Name               string `json:"Name" xml:"Name"`
+			CommandLine        string `json:"CommandLine" xml:"CommandLine"`
+			RunasUser          string `json:"RunasUser" xml:"RunasUser"`
+			Priority           int    `json:"Priority" xml:"Priority"`
+			Package            string `json:"Package" xml:"Package"`
+			StdoutRedirectPath string `json:"StdoutRedirectPath" xml:"StdoutRedirectPath"`
+			StderrRedirectPath string `json:"StderrRedirectPath" xml:"StderrRedirectPath"`
+			ReRunable          bool   `json:"ReRunable" xml:"ReRunable"`
+			ArrayRequest       string `json:"ArrayRequest" xml:"ArrayRequest"`
+			Variables          string `json:"Variables" xml:"Variables"`
+		} `json:"JobTemplates" xml:"JobTemplates"`
+	} `json:"Templates" xml:"Templates"`
+}
+
+func CreateListJobTemplatesRequest() (request *ListJobTemplatesRequest) {
+	request = &ListJobTemplatesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListJobTemplates", "ehs", "openAPI")
+	return
+}
+
+func CreateListJobTemplatesResponse() (response *ListJobTemplatesResponse) {
+	response = &ListJobTemplatesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/ehpc/list_jobs.go

@@ -0,0 +1,118 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListJobs(request *ListJobsRequest) (response *ListJobsResponse, err error) {
+	response = CreateListJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListJobsWithChan(request *ListJobsRequest) (<-chan *ListJobsResponse, <-chan error) {
+	responseChan := make(chan *ListJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListJobsWithCallback(request *ListJobsRequest, callback func(response *ListJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListJobsRequest struct {
+	*requests.RpcRequest
+	Owner      string           `position:"Query" name:"Owner"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	ClusterId  string           `position:"Query" name:"ClusterId"`
+	State      string           `position:"Query" name:"State"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListJobsResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Jobs       struct {
+		JobInfo []struct {
+			Id             string `json:"Id" xml:"Id"`
+			Name           string `json:"Name" xml:"Name"`
+			Owner          string `json:"Owner" xml:"Owner"`
+			Priority       int    `json:"Priority" xml:"Priority"`
+			State          string `json:"State" xml:"State"`
+			SubmitTime     string `json:"SubmitTime" xml:"SubmitTime"`
+			StartTime      string `json:"StartTime" xml:"StartTime"`
+			LastModifyTime string `json:"LastModifyTime" xml:"LastModifyTime"`
+			Stdout         string `json:"Stdout" xml:"Stdout"`
+			Stderr         string `json:"Stderr" xml:"Stderr"`
+			Comment        string `json:"Comment" xml:"Comment"`
+			ArrayRequest   string `json:"ArrayRequest" xml:"ArrayRequest"`
+			Resources      struct {
+				Nodes int `json:"Nodes" xml:"Nodes"`
+				Cores int `json:"Cores" xml:"Cores"`
+			} `json:"Resources" xml:"Resources"`
+		} `json:"JobInfo" xml:"JobInfo"`
+	} `json:"Jobs" xml:"Jobs"`
+}
+
+func CreateListJobsRequest() (request *ListJobsRequest) {
+	request = &ListJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListJobs", "ehs", "openAPI")
+	return
+}
+
+func CreateListJobsResponse() (response *ListJobsResponse) {
+	response = &ListJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 124 - 0
services/ehpc/list_nodes.go

@@ -0,0 +1,124 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListNodes(request *ListNodesRequest) (response *ListNodesResponse, err error) {
+	response = CreateListNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListNodesWithChan(request *ListNodesRequest) (<-chan *ListNodesResponse, <-chan error) {
+	responseChan := make(chan *ListNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListNodesWithCallback(request *ListNodesRequest, callback func(response *ListNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListNodesRequest struct {
+	*requests.RpcRequest
+	HostName   string           `position:"Query" name:"HostName"`
+	Role       string           `position:"Query" name:"Role"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	ClusterId  string           `position:"Query" name:"ClusterId"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListNodesResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Nodes      struct {
+		NodeInfo []struct {
+			Id              string `json:"Id" xml:"Id"`
+			RegionId        string `json:"RegionId" xml:"RegionId"`
+			Status          string `json:"Status" xml:"Status"`
+			CreatedByEhpc   bool   `json:"CreatedByEhpc" xml:"CreatedByEhpc"`
+			Role            string `json:"Role" xml:"Role"`
+			AddTime         string `json:"AddTime" xml:"AddTime"`
+			Expired         bool   `json:"Expired" xml:"Expired"`
+			ExpiredTime     string `json:"ExpiredTime" xml:"ExpiredTime"`
+			SpotStrategy    string `json:"SpotStrategy" xml:"SpotStrategy"`
+			LockReason      string `json:"LockReason" xml:"LockReason"`
+			ImageOwnerAlias string `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+			ImageId         string `json:"ImageId" xml:"ImageId"`
+			TotalResources  struct {
+				Cpu    int `json:"Cpu" xml:"Cpu"`
+				Memory int `json:"Memory" xml:"Memory"`
+				Gpu    int `json:"Gpu" xml:"Gpu"`
+			} `json:"TotalResources" xml:"TotalResources"`
+			UsedResources struct {
+				Cpu    int `json:"Cpu" xml:"Cpu"`
+				Memory int `json:"Memory" xml:"Memory"`
+				Gpu    int `json:"Gpu" xml:"Gpu"`
+			} `json:"UsedResources" xml:"UsedResources"`
+		} `json:"NodeInfo" xml:"NodeInfo"`
+	} `json:"Nodes" xml:"Nodes"`
+}
+
+func CreateListNodesRequest() (request *ListNodesRequest) {
+	request = &ListNodesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListNodes", "ehs", "openAPI")
+	return
+}
+
+func CreateListNodesResponse() (response *ListNodesResponse) {
+	response = &ListNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 123 - 0
services/ehpc/list_nodes_no_paging.go

@@ -0,0 +1,123 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListNodesNoPaging(request *ListNodesNoPagingRequest) (response *ListNodesNoPagingResponse, err error) {
+	response = CreateListNodesNoPagingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListNodesNoPagingWithChan(request *ListNodesNoPagingRequest) (<-chan *ListNodesNoPagingResponse, <-chan error) {
+	responseChan := make(chan *ListNodesNoPagingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListNodesNoPaging(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListNodesNoPagingWithCallback(request *ListNodesNoPagingRequest, callback func(response *ListNodesNoPagingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListNodesNoPagingResponse
+		var err error
+		defer close(result)
+		response, err = client.ListNodesNoPaging(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListNodesNoPagingRequest struct {
+	*requests.RpcRequest
+	HostName     string           `position:"Query" name:"HostName"`
+	Role         string           `position:"Query" name:"Role"`
+	ClusterId    string           `position:"Query" name:"ClusterId"`
+	OnlyDetached requests.Boolean `position:"Query" name:"OnlyDetached"`
+}
+
+type ListNodesNoPagingResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Nodes      struct {
+		NodeInfo []struct {
+			Id              string `json:"Id" xml:"Id"`
+			RegionId        string `json:"RegionId" xml:"RegionId"`
+			Status          string `json:"Status" xml:"Status"`
+			CreatedByEhpc   bool   `json:"CreatedByEhpc" xml:"CreatedByEhpc"`
+			Role            string `json:"Role" xml:"Role"`
+			AddTime         string `json:"AddTime" xml:"AddTime"`
+			Expired         bool   `json:"Expired" xml:"Expired"`
+			ExpiredTime     string `json:"ExpiredTime" xml:"ExpiredTime"`
+			SpotStrategy    string `json:"SpotStrategy" xml:"SpotStrategy"`
+			LockReason      string `json:"LockReason" xml:"LockReason"`
+			ImageOwnerAlias string `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+			ImageId         string `json:"ImageId" xml:"ImageId"`
+			TotalResources  struct {
+				Cpu    int `json:"Cpu" xml:"Cpu"`
+				Memory int `json:"Memory" xml:"Memory"`
+				Gpu    int `json:"Gpu" xml:"Gpu"`
+			} `json:"TotalResources" xml:"TotalResources"`
+			UsedResources struct {
+				Cpu    int `json:"Cpu" xml:"Cpu"`
+				Memory int `json:"Memory" xml:"Memory"`
+				Gpu    int `json:"Gpu" xml:"Gpu"`
+			} `json:"UsedResources" xml:"UsedResources"`
+		} `json:"NodeInfo" xml:"NodeInfo"`
+	} `json:"Nodes" xml:"Nodes"`
+}
+
+func CreateListNodesNoPagingRequest() (request *ListNodesNoPagingRequest) {
+	request = &ListNodesNoPagingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListNodesNoPaging", "ehs", "openAPI")
+	return
+}
+
+func CreateListNodesNoPagingResponse() (response *ListNodesNoPagingResponse) {
+	response = &ListNodesNoPagingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ehpc/list_preferred_ecs_types.go

@@ -0,0 +1,108 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListPreferredEcsTypes(request *ListPreferredEcsTypesRequest) (response *ListPreferredEcsTypesResponse, err error) {
+	response = CreateListPreferredEcsTypesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListPreferredEcsTypesWithChan(request *ListPreferredEcsTypesRequest) (<-chan *ListPreferredEcsTypesResponse, <-chan error) {
+	responseChan := make(chan *ListPreferredEcsTypesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPreferredEcsTypes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListPreferredEcsTypesWithCallback(request *ListPreferredEcsTypesRequest, callback func(response *ListPreferredEcsTypesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPreferredEcsTypesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPreferredEcsTypes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListPreferredEcsTypesRequest struct {
+	*requests.RpcRequest
+	ZoneId string `position:"Query" name:"ZoneId"`
+}
+
+type ListPreferredEcsTypesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Series    struct {
+		SeriesInfo []struct {
+			SeriesId   string `json:"SeriesId" xml:"SeriesId"`
+			SeriesName string `json:"SeriesName" xml:"SeriesName"`
+			Roles      struct {
+				Manager struct {
+					InstanceTypeId []string `json:"InstanceTypeId" xml:"InstanceTypeId"`
+				} `json:"Manager" xml:"Manager"`
+				Compute struct {
+					InstanceTypeId []string `json:"InstanceTypeId" xml:"InstanceTypeId"`
+				} `json:"Compute" xml:"Compute"`
+				Login struct {
+					InstanceTypeId []string `json:"InstanceTypeId" xml:"InstanceTypeId"`
+				} `json:"Login" xml:"Login"`
+			} `json:"Roles" xml:"Roles"`
+		} `json:"SeriesInfo" xml:"SeriesInfo"`
+	} `json:"Series" xml:"Series"`
+}
+
+func CreateListPreferredEcsTypesRequest() (request *ListPreferredEcsTypesRequest) {
+	request = &ListPreferredEcsTypesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListPreferredEcsTypes", "ehs", "openAPI")
+	return
+}
+
+func CreateListPreferredEcsTypesResponse() (response *ListPreferredEcsTypesResponse) {
+	response = &ListPreferredEcsTypesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 96 - 0
services/ehpc/list_regions.go

@@ -0,0 +1,96 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListRegions(request *ListRegionsRequest) (response *ListRegionsResponse, err error) {
+	response = CreateListRegionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListRegionsWithChan(request *ListRegionsRequest) (<-chan *ListRegionsResponse, <-chan error) {
+	responseChan := make(chan *ListRegionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListRegions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListRegionsWithCallback(request *ListRegionsRequest, callback func(response *ListRegionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListRegionsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListRegions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListRegionsRequest struct {
+	*requests.RpcRequest
+}
+
+type ListRegionsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Regions   struct {
+		RegionInfo []struct {
+			RegionId  string `json:"RegionId" xml:"RegionId"`
+			LocalName string `json:"LocalName" xml:"LocalName"`
+		} `json:"RegionInfo" xml:"RegionInfo"`
+	} `json:"Regions" xml:"Regions"`
+}
+
+func CreateListRegionsRequest() (request *ListRegionsRequest) {
+	request = &ListRegionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListRegions", "ehs", "openAPI")
+	return
+}
+
+func CreateListRegionsResponse() (response *ListRegionsResponse) {
+	response = &ListRegionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ehpc/list_softwares.go

@@ -0,0 +1,109 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListSoftwares(request *ListSoftwaresRequest) (response *ListSoftwaresResponse, err error) {
+	response = CreateListSoftwaresResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListSoftwaresWithChan(request *ListSoftwaresRequest) (<-chan *ListSoftwaresResponse, <-chan error) {
+	responseChan := make(chan *ListSoftwaresResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListSoftwares(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListSoftwaresWithCallback(request *ListSoftwaresRequest, callback func(response *ListSoftwaresResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListSoftwaresResponse
+		var err error
+		defer close(result)
+		response, err = client.ListSoftwares(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListSoftwaresRequest struct {
+	*requests.RpcRequest
+	EhpcVersion string `position:"Query" name:"EhpcVersion"`
+}
+
+type ListSoftwaresResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Softwares struct {
+		SoftwareInfo []struct {
+			EhpcVersion      string `json:"EhpcVersion" xml:"EhpcVersion"`
+			OsTag            string `json:"OsTag" xml:"OsTag"`
+			SchedulerType    string `json:"SchedulerType" xml:"SchedulerType"`
+			SchedulerVersion string `json:"SchedulerVersion" xml:"SchedulerVersion"`
+			AccountType      string `json:"AccountType" xml:"AccountType"`
+			AccountVersion   string `json:"AccountVersion" xml:"AccountVersion"`
+			Applications     struct {
+				ApplicationInfo []struct {
+					Tag      string `json:"Tag" xml:"Tag"`
+					Name     string `json:"Name" xml:"Name"`
+					Version  string `json:"Version" xml:"Version"`
+					Required bool   `json:"Required" xml:"Required"`
+				} `json:"ApplicationInfo" xml:"ApplicationInfo"`
+			} `json:"Applications" xml:"Applications"`
+		} `json:"SoftwareInfo" xml:"SoftwareInfo"`
+	} `json:"Softwares" xml:"Softwares"`
+}
+
+func CreateListSoftwaresRequest() (request *ListSoftwaresRequest) {
+	request = &ListSoftwaresRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListSoftwares", "ehs", "openAPI")
+	return
+}
+
+func CreateListSoftwaresResponse() (response *ListSoftwaresResponse) {
+	response = &ListSoftwaresResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/ehpc/list_users.go

@@ -0,0 +1,103 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListUsers(request *ListUsersRequest) (response *ListUsersResponse, err error) {
+	response = CreateListUsersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListUsersWithChan(request *ListUsersRequest) (<-chan *ListUsersResponse, <-chan error) {
+	responseChan := make(chan *ListUsersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListUsers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListUsersWithCallback(request *ListUsersRequest, callback func(response *ListUsersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListUsersResponse
+		var err error
+		defer close(result)
+		response, err = client.ListUsers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListUsersRequest struct {
+	*requests.RpcRequest
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	ClusterId  string           `position:"Query" name:"ClusterId"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListUsersResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Users      struct {
+		UserInfo []struct {
+			Name    string `json:"Name" xml:"Name"`
+			Group   string `json:"Group" xml:"Group"`
+			AddTime string `json:"AddTime" xml:"AddTime"`
+		} `json:"UserInfo" xml:"UserInfo"`
+	} `json:"Users" xml:"Users"`
+}
+
+func CreateListUsersRequest() (request *ListUsersRequest) {
+	request = &ListUsersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListUsers", "ehs", "openAPI")
+	return
+}
+
+func CreateListUsersResponse() (response *ListUsersResponse) {
+	response = &ListUsersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/ehpc/list_volumes.go

@@ -0,0 +1,107 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ListVolumes(request *ListVolumesRequest) (response *ListVolumesResponse, err error) {
+	response = CreateListVolumesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListVolumesWithChan(request *ListVolumesRequest) (<-chan *ListVolumesResponse, <-chan error) {
+	responseChan := make(chan *ListVolumesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListVolumes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListVolumesWithCallback(request *ListVolumesRequest, callback func(response *ListVolumesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListVolumesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListVolumes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListVolumesRequest struct {
+	*requests.RpcRequest
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+type ListVolumesResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Volumes    struct {
+		VolumeInfo []struct {
+			RegionId         string `json:"RegionId" xml:"RegionId"`
+			ClusterId        string `json:"ClusterId" xml:"ClusterId"`
+			ClusterName      string `json:"ClusterName" xml:"ClusterName"`
+			VolumeId         string `json:"VolumeId" xml:"VolumeId"`
+			VolumeType       string `json:"VolumeType" xml:"VolumeType"`
+			VolumeProtocol   string `json:"VolumeProtocol" xml:"VolumeProtocol"`
+			VolumeMountpoint string `json:"VolumeMountpoint" xml:"VolumeMountpoint"`
+			RemoteDirectory  string `json:"RemoteDirectory" xml:"RemoteDirectory"`
+		} `json:"VolumeInfo" xml:"VolumeInfo"`
+	} `json:"Volumes" xml:"Volumes"`
+}
+
+func CreateListVolumesRequest() (request *ListVolumesRequest) {
+	request = &ListVolumesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ListVolumes", "ehs", "openAPI")
+	return
+}
+
+func CreateListVolumesResponse() (response *ListVolumesResponse) {
+	response = &ListVolumesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 93 - 0
services/ehpc/modify_cluster_attributes.go

@@ -0,0 +1,93 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ModifyClusterAttributes(request *ModifyClusterAttributesRequest) (response *ModifyClusterAttributesResponse, err error) {
+	response = CreateModifyClusterAttributesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyClusterAttributesWithChan(request *ModifyClusterAttributesRequest) (<-chan *ModifyClusterAttributesResponse, <-chan error) {
+	responseChan := make(chan *ModifyClusterAttributesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyClusterAttributes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyClusterAttributesWithCallback(request *ModifyClusterAttributesRequest, callback func(response *ModifyClusterAttributesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyClusterAttributesResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyClusterAttributes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyClusterAttributesRequest struct {
+	*requests.RpcRequest
+	Name        string `position:"Query" name:"Name"`
+	Description string `position:"Query" name:"Description"`
+	ClusterId   string `position:"Query" name:"ClusterId"`
+}
+
+type ModifyClusterAttributesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyClusterAttributesRequest() (request *ModifyClusterAttributesRequest) {
+	request = &ModifyClusterAttributesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ModifyClusterAttributes", "ehs", "openAPI")
+	return
+}
+
+func CreateModifyClusterAttributesResponse() (response *ModifyClusterAttributesResponse) {
+	response = &ModifyClusterAttributesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 97 - 0
services/ehpc/modify_user_groups.go

@@ -0,0 +1,97 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ModifyUserGroups(request *ModifyUserGroupsRequest) (response *ModifyUserGroupsResponse, err error) {
+	response = CreateModifyUserGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyUserGroupsWithChan(request *ModifyUserGroupsRequest) (<-chan *ModifyUserGroupsResponse, <-chan error) {
+	responseChan := make(chan *ModifyUserGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyUserGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyUserGroupsWithCallback(request *ModifyUserGroupsRequest, callback func(response *ModifyUserGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyUserGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyUserGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyUserGroupsRequest struct {
+	*requests.RpcRequest
+	ClusterId string                  `position:"Query" name:"ClusterId"`
+	User      *[]ModifyUserGroupsUser `position:"Query" name:"User"  type:"Repeated"`
+}
+
+type ModifyUserGroupsUser struct {
+	Name  string `name:"Name"`
+	Group string `name:"Group"`
+}
+
+type ModifyUserGroupsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyUserGroupsRequest() (request *ModifyUserGroupsRequest) {
+	request = &ModifyUserGroupsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ModifyUserGroups", "ehs", "openAPI")
+	return
+}
+
+func CreateModifyUserGroupsResponse() (response *ModifyUserGroupsResponse) {
+	response = &ModifyUserGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 97 - 0
services/ehpc/modify_user_passwords.go

@@ -0,0 +1,97 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ModifyUserPasswords(request *ModifyUserPasswordsRequest) (response *ModifyUserPasswordsResponse, err error) {
+	response = CreateModifyUserPasswordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyUserPasswordsWithChan(request *ModifyUserPasswordsRequest) (<-chan *ModifyUserPasswordsResponse, <-chan error) {
+	responseChan := make(chan *ModifyUserPasswordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyUserPasswords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyUserPasswordsWithCallback(request *ModifyUserPasswordsRequest, callback func(response *ModifyUserPasswordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyUserPasswordsResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyUserPasswords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyUserPasswordsRequest struct {
+	*requests.RpcRequest
+	ClusterId string                     `position:"Query" name:"ClusterId"`
+	User      *[]ModifyUserPasswordsUser `position:"Query" name:"User"  type:"Repeated"`
+}
+
+type ModifyUserPasswordsUser struct {
+	Name     string `name:"Name"`
+	Password string `name:"Password"`
+}
+
+type ModifyUserPasswordsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyUserPasswordsRequest() (request *ModifyUserPasswordsRequest) {
+	request = &ModifyUserPasswordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ModifyUserPasswords", "ehs", "openAPI")
+	return
+}
+
+func CreateModifyUserPasswordsResponse() (response *ModifyUserPasswordsResponse) {
+	response = &ModifyUserPasswordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 92 - 0
services/ehpc/rerun_jobs.go

@@ -0,0 +1,92 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) RerunJobs(request *RerunJobsRequest) (response *RerunJobsResponse, err error) {
+	response = CreateRerunJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) RerunJobsWithChan(request *RerunJobsRequest) (<-chan *RerunJobsResponse, <-chan error) {
+	responseChan := make(chan *RerunJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RerunJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) RerunJobsWithCallback(request *RerunJobsRequest, callback func(response *RerunJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RerunJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.RerunJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type RerunJobsRequest struct {
+	*requests.RpcRequest
+	Jobs      string `position:"Query" name:"Jobs"`
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+type RerunJobsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateRerunJobsRequest() (request *RerunJobsRequest) {
+	request = &RerunJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "RerunJobs", "ehs", "openAPI")
+	return
+}
+
+func CreateRerunJobsResponse() (response *RerunJobsResponse) {
+	response = &RerunJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 96 - 0
services/ehpc/reset_nodes.go

@@ -0,0 +1,96 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) ResetNodes(request *ResetNodesRequest) (response *ResetNodesResponse, err error) {
+	response = CreateResetNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ResetNodesWithChan(request *ResetNodesRequest) (<-chan *ResetNodesResponse, <-chan error) {
+	responseChan := make(chan *ResetNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ResetNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ResetNodesWithCallback(request *ResetNodesRequest, callback func(response *ResetNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ResetNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.ResetNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ResetNodesRequest struct {
+	*requests.RpcRequest
+	Instance  *[]ResetNodesInstance `position:"Query" name:"Instance"  type:"Repeated"`
+	ClusterId string                `position:"Query" name:"ClusterId"`
+}
+
+type ResetNodesInstance struct {
+	Id string `name:"Id"`
+}
+
+type ResetNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateResetNodesRequest() (request *ResetNodesRequest) {
+	request = &ResetNodesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "ResetNodes", "ehs", "openAPI")
+	return
+}
+
+func CreateResetNodesResponse() (response *ResetNodesResponse) {
+	response = &ResetNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 101 - 0
services/ehpc/set_auto_scale_config.go

@@ -0,0 +1,101 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) SetAutoScaleConfig(request *SetAutoScaleConfigRequest) (response *SetAutoScaleConfigResponse, err error) {
+	response = CreateSetAutoScaleConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) SetAutoScaleConfigWithChan(request *SetAutoScaleConfigRequest) (<-chan *SetAutoScaleConfigResponse, <-chan error) {
+	responseChan := make(chan *SetAutoScaleConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetAutoScaleConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) SetAutoScaleConfigWithCallback(request *SetAutoScaleConfigRequest, callback func(response *SetAutoScaleConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetAutoScaleConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.SetAutoScaleConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type SetAutoScaleConfigRequest struct {
+	*requests.RpcRequest
+	ShrinkIdleTimes         requests.Integer `position:"Query" name:"ShrinkIdleTimes"`
+	GrowTimeoutInMinutes    requests.Integer `position:"Query" name:"GrowTimeoutInMinutes"`
+	ClusterId               string           `position:"Query" name:"ClusterId"`
+	EnableAutoGrow          requests.Boolean `position:"Query" name:"EnableAutoGrow"`
+	EnableAutoShrink        requests.Boolean `position:"Query" name:"EnableAutoShrink"`
+	MaxNodesInCluster       requests.Integer `position:"Query" name:"MaxNodesInCluster"`
+	ExcludeNodes            string           `position:"Query" name:"ExcludeNodes"`
+	ShrinkIntervalInMinutes requests.Integer `position:"Query" name:"ShrinkIntervalInMinutes"`
+	ExtraNodesGrowRatio     requests.Integer `position:"Query" name:"ExtraNodesGrowRatio"`
+	GrowIntervalInMinutes   requests.Integer `position:"Query" name:"GrowIntervalInMinutes"`
+	GrowRatio               requests.Integer `position:"Query" name:"GrowRatio"`
+}
+
+type SetAutoScaleConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateSetAutoScaleConfigRequest() (request *SetAutoScaleConfigRequest) {
+	request = &SetAutoScaleConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "SetAutoScaleConfig", "ehs", "openAPI")
+	return
+}
+
+func CreateSetAutoScaleConfigResponse() (response *SetAutoScaleConfigResponse) {
+	response = &SetAutoScaleConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 93 - 0
services/ehpc/set_job_user.go

@@ -0,0 +1,93 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) SetJobUser(request *SetJobUserRequest) (response *SetJobUserResponse, err error) {
+	response = CreateSetJobUserResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) SetJobUserWithChan(request *SetJobUserRequest) (<-chan *SetJobUserResponse, <-chan error) {
+	responseChan := make(chan *SetJobUserResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetJobUser(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) SetJobUserWithCallback(request *SetJobUserRequest, callback func(response *SetJobUserResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetJobUserResponse
+		var err error
+		defer close(result)
+		response, err = client.SetJobUser(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type SetJobUserRequest struct {
+	*requests.RpcRequest
+	RunasUserPassword string `position:"Query" name:"RunasUserPassword"`
+	RunasUser         string `position:"Query" name:"RunasUser"`
+	ClusterId         string `position:"Query" name:"ClusterId"`
+}
+
+type SetJobUserResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateSetJobUserRequest() (request *SetJobUserRequest) {
+	request = &SetJobUserRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "SetJobUser", "ehs", "openAPI")
+	return
+}
+
+func CreateSetJobUserResponse() (response *SetJobUserResponse) {
+	response = &SetJobUserResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 92 - 0
services/ehpc/stop_jobs.go

@@ -0,0 +1,92 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) StopJobs(request *StopJobsRequest) (response *StopJobsResponse, err error) {
+	response = CreateStopJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) StopJobsWithChan(request *StopJobsRequest) (<-chan *StopJobsResponse, <-chan error) {
+	responseChan := make(chan *StopJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StopJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) StopJobsWithCallback(request *StopJobsRequest, callback func(response *StopJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StopJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.StopJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type StopJobsRequest struct {
+	*requests.RpcRequest
+	Jobs      string `position:"Query" name:"Jobs"`
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+type StopJobsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateStopJobsRequest() (request *StopJobsRequest) {
+	request = &StopJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "StopJobs", "ehs", "openAPI")
+	return
+}
+
+func CreateStopJobsResponse() (response *StopJobsResponse) {
+	response = &StopJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/ehpc/submit_job.go

@@ -0,0 +1,103 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) SubmitJob(request *SubmitJobRequest) (response *SubmitJobResponse, err error) {
+	response = CreateSubmitJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) SubmitJobWithChan(request *SubmitJobRequest) (<-chan *SubmitJobResponse, <-chan error) {
+	responseChan := make(chan *SubmitJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SubmitJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) SubmitJobWithCallback(request *SubmitJobRequest, callback func(response *SubmitJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SubmitJobResponse
+		var err error
+		defer close(result)
+		response, err = client.SubmitJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type SubmitJobRequest struct {
+	*requests.RpcRequest
+	StderrRedirectPath string           `position:"Query" name:"StderrRedirectPath"`
+	Variables          string           `position:"Query" name:"Variables"`
+	RunasUserPassword  string           `position:"Query" name:"RunasUserPassword"`
+	RunasUser          string           `position:"Query" name:"RunasUser"`
+	ClusterId          string           `position:"Query" name:"ClusterId"`
+	ReRunable          requests.Boolean `position:"Query" name:"ReRunable"`
+	Priority           requests.Integer `position:"Query" name:"Priority"`
+	CommandLine        string           `position:"Query" name:"CommandLine"`
+	ArrayRequest       string           `position:"Query" name:"ArrayRequest"`
+	PackagePath        string           `position:"Query" name:"PackagePath"`
+	Name               string           `position:"Query" name:"Name"`
+	StdoutRedirectPath string           `position:"Query" name:"StdoutRedirectPath"`
+}
+
+type SubmitJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	JobId     string `json:"JobId" xml:"JobId"`
+}
+
+func CreateSubmitJobRequest() (request *SubmitJobRequest) {
+	request = &SubmitJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "SubmitJob", "ehs", "openAPI")
+	return
+}
+
+func CreateSubmitJobResponse() (response *SubmitJobResponse) {
+	response = &SubmitJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 92 - 0
services/ehpc/upgrade_client.go

@@ -0,0 +1,92 @@
+package ehpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+func (client *Client) UpgradeClient(request *UpgradeClientRequest) (response *UpgradeClientResponse, err error) {
+	response = CreateUpgradeClientResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) UpgradeClientWithChan(request *UpgradeClientRequest) (<-chan *UpgradeClientResponse, <-chan error) {
+	responseChan := make(chan *UpgradeClientResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpgradeClient(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) UpgradeClientWithCallback(request *UpgradeClientRequest, callback func(response *UpgradeClientResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpgradeClientResponse
+		var err error
+		defer close(result)
+		response, err = client.UpgradeClient(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type UpgradeClientRequest struct {
+	*requests.RpcRequest
+	ClientVersion string `position:"Query" name:"ClientVersion"`
+	ClusterId     string `position:"Query" name:"ClusterId"`
+}
+
+type UpgradeClientResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateUpgradeClientRequest() (request *UpgradeClientRequest) {
+	request = &UpgradeClientRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2017-07-14", "UpgradeClient", "ehs", "openAPI")
+	return
+}
+
+func CreateUpgradeClientResponse() (response *UpgradeClientResponse) {
+	response = &UpgradeClientResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}