ソースを参照

由谦正发起的EHPC SDK自动发布, 版本号:1.13.0

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 7 年 前
コミット
41188b1aee
57 ファイル変更705 行追加96 行削除
  1. 6 0
      ChangeLog.txt
  2. 6 1
      services/ehpc/add_nodes.go
  3. 1 1
      services/ehpc/add_users.go
  4. 45 32
      services/ehpc/create_cluster.go
  5. 1 1
      services/ehpc/create_job_template.go
  6. 1 1
      services/ehpc/delete_cluster.go
  7. 1 1
      services/ehpc/delete_job_templates.go
  8. 1 1
      services/ehpc/delete_jobs.go
  9. 1 1
      services/ehpc/delete_nodes.go
  10. 1 1
      services/ehpc/delete_users.go
  11. 1 1
      services/ehpc/describe_cluster.go
  12. 1 1
      services/ehpc/edit_job_template.go
  13. 1 1
      services/ehpc/get_auto_scale_config.go
  14. 1 1
      services/ehpc/list_cluster_logs.go
  15. 1 1
      services/ehpc/list_clusters.go
  16. 1 1
      services/ehpc/list_current_client_version.go
  17. 1 1
      services/ehpc/list_custom_images.go
  18. 1 1
      services/ehpc/list_images.go
  19. 1 1
      services/ehpc/list_job_templates.go
  20. 2 1
      services/ehpc/list_jobs.go
  21. 1 1
      services/ehpc/list_nodes.go
  22. 1 1
      services/ehpc/list_nodes_no_paging.go
  23. 4 3
      services/ehpc/list_preferred_ecs_types.go
  24. 1 1
      services/ehpc/list_regions.go
  25. 1 1
      services/ehpc/list_softwares.go
  26. 1 1
      services/ehpc/list_users.go
  27. 1 1
      services/ehpc/list_volumes.go
  28. 1 1
      services/ehpc/modify_cluster_attributes.go
  29. 1 1
      services/ehpc/modify_user_groups.go
  30. 1 1
      services/ehpc/modify_user_passwords.go
  31. 103 0
      services/ehpc/recover_cluster.go
  32. 1 1
      services/ehpc/rerun_jobs.go
  33. 1 1
      services/ehpc/reset_nodes.go
  34. 1 1
      services/ehpc/set_auto_scale_config.go
  35. 1 1
      services/ehpc/set_job_user.go
  36. 103 0
      services/ehpc/start_cluster.go
  37. 110 0
      services/ehpc/start_nodes.go
  38. 103 0
      services/ehpc/stop_cluster.go
  39. 1 1
      services/ehpc/stop_jobs.go
  40. 110 0
      services/ehpc/stop_nodes.go
  41. 2 2
      services/ehpc/struct_application_info.go
  42. 1 0
      services/ehpc/struct_cluster_info.go
  43. 1 0
      services/ehpc/struct_cluster_info_simple.go
  44. 1 1
      services/ehpc/struct_compute.go
  45. 2 0
      services/ehpc/struct_computes.go
  46. 11 5
      services/ehpc/struct_image_info.go
  47. 1 1
      services/ehpc/struct_login.go
  48. 1 1
      services/ehpc/struct_manager.go
  49. 2 0
      services/ehpc/struct_managers.go
  50. 14 14
      services/ehpc/struct_node_info.go
  51. 1 1
      services/ehpc/struct_roles.go
  52. 21 0
      services/ehpc/struct_roles_in_list_nodes.go
  53. 21 0
      services/ehpc/struct_roles_in_list_nodes_no_paging.go
  54. 1 1
      services/ehpc/struct_total_resources.go
  55. 1 1
      services/ehpc/struct_used_resources.go
  56. 1 1
      services/ehpc/submit_job.go
  57. 1 1
      services/ehpc/upgrade_client.go

+ 6 - 0
ChangeLog.txt

@@ -1,3 +1,9 @@
+2018-05-23 Version: 1.13.0
+1, Update API version to 2018-04-12. 
+2, New APIs in this new version: StartCluster, StopCluster, RecoverCluster, StartNodes, StopNodes, ListCustomImages. Support stopping a post-paid cluster or partial nodes of a cluster to save cost.
+3, New parameters for CreateCluster API: EcsChargeType. Support creating a pre-paid cluster.
+4, New parameters for CreateCluster API: DeploymentMode. Support creating a cluster with fewer manager nodes.
+
 2018-05-23 Version: 1.12.5
 1, This is an example of release-log.
 2, Please strictly follow this format to edit in English.

+ 6 - 1
services/ehpc/add_nodes.go

@@ -82,6 +82,11 @@ type AddNodesRequest struct {
 	Count                 requests.Integer `position:"Query" name:"Count"`
 	ComputeSpotStrategy   string           `position:"Query" name:"ComputeSpotStrategy"`
 	ComputeSpotPriceLimit string           `position:"Query" name:"ComputeSpotPriceLimit"`
+	EcsChargeType         string           `position:"Query" name:"EcsChargeType"`
+	Period                requests.Integer `position:"Query" name:"Period"`
+	PeriodUnit            string           `position:"Query" name:"PeriodUnit"`
+	AutoRenew             string           `position:"Query" name:"AutoRenew"`
+	AutoRenewPeriod       requests.Integer `position:"Query" name:"AutoRenewPeriod"`
 }
 
 // AddNodesResponse is the response struct for api AddNodes
@@ -96,7 +101,7 @@ func CreateAddNodesRequest() (request *AddNodesRequest) {
 	request = &AddNodesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "AddNodes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "AddNodes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/add_users.go

@@ -99,7 +99,7 @@ func CreateAddUsersRequest() (request *AddUsersRequest) {
 	request = &AddUsersRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "AddUsers", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "AddUsers", "ehs", "openAPI")
 	return
 }
 

+ 45 - 32
services/ehpc/create_cluster.go

@@ -76,37 +76,44 @@ func (client *Client) CreateClusterWithCallback(request *CreateClusterRequest, c
 // CreateClusterRequest is the request struct for api CreateCluster
 type CreateClusterRequest struct {
 	*requests.RpcRequest
-	ZoneId                      string                      `position:"Query" name:"ZoneId"`
-	Name                        string                      `position:"Query" name:"Name"`
-	Description                 string                      `position:"Query" name:"Description"`
-	EhpcVersion                 string                      `position:"Query" name:"EhpcVersion"`
-	OsTag                       string                      `position:"Query" name:"OsTag"`
-	AccountType                 string                      `position:"Query" name:"AccountType"`
-	SchedulerType               string                      `position:"Query" name:"SchedulerType"`
-	SecurityGroupId             string                      `position:"Query" name:"SecurityGroupId"`
-	SecurityGroupName           string                      `position:"Query" name:"SecurityGroupName"`
-	VSwitchId                   string                      `position:"Query" name:"VSwitchId"`
-	VolumeType                  string                      `position:"Query" name:"VolumeType"`
-	VolumeId                    string                      `position:"Query" name:"VolumeId"`
-	VolumeProtocol              string                      `position:"Query" name:"VolumeProtocol"`
-	VolumeMountpoint            string                      `position:"Query" name:"VolumeMountpoint"`
-	RemoteDirectory             string                      `position:"Query" name:"RemoteDirectory"`
-	HaEnable                    requests.Boolean            `position:"Query" name:"HaEnable"`
-	EcsChargeType               string                      `position:"Query" name:"EcsChargeType"`
-	Password                    string                      `position:"Query" name:"Password"`
-	KeyPairName                 string                      `position:"Query" name:"KeyPairName"`
-	ImageOwnerAlias             string                      `position:"Query" name:"ImageOwnerAlias"`
-	ImageId                     string                      `position:"Query" name:"ImageId"`
-	EcsOrderManagerCount        requests.Integer            `position:"Query" name:"EcsOrder.Manager.Count"`
-	EcsOrderManagerInstanceType string                      `position:"Query" name:"EcsOrder.Manager.InstanceType"`
-	EcsOrderComputeCount        requests.Integer            `position:"Query" name:"EcsOrder.Compute.Count"`
-	EcsOrderComputeInstanceType string                      `position:"Query" name:"EcsOrder.Compute.InstanceType"`
-	EcsOrderLoginCount          requests.Integer            `position:"Query" name:"EcsOrder.Login.Count"`
-	EcsOrderLoginInstanceType   string                      `position:"Query" name:"EcsOrder.Login.InstanceType"`
-	SccClusterId                string                      `position:"Query" name:"SccClusterId"`
-	ComputeSpotStrategy         string                      `position:"Query" name:"ComputeSpotStrategy"`
-	ComputeSpotPriceLimit       string                      `position:"Query" name:"ComputeSpotPriceLimit"`
-	Application                 *[]CreateClusterApplication `position:"Query" name:"Application"  type:"Repeated"`
+	ZoneId                      string                            `position:"Query" name:"ZoneId"`
+	Name                        string                            `position:"Query" name:"Name"`
+	Description                 string                            `position:"Query" name:"Description"`
+	EhpcVersion                 string                            `position:"Query" name:"EhpcVersion"`
+	OsTag                       string                            `position:"Query" name:"OsTag"`
+	AccountType                 string                            `position:"Query" name:"AccountType"`
+	SchedulerType               string                            `position:"Query" name:"SchedulerType"`
+	SecurityGroupId             string                            `position:"Query" name:"SecurityGroupId"`
+	SecurityGroupName           string                            `position:"Query" name:"SecurityGroupName"`
+	VpcId                       string                            `position:"Query" name:"VpcId"`
+	VSwitchId                   string                            `position:"Query" name:"VSwitchId"`
+	VolumeType                  string                            `position:"Query" name:"VolumeType"`
+	VolumeId                    string                            `position:"Query" name:"VolumeId"`
+	VolumeProtocol              string                            `position:"Query" name:"VolumeProtocol"`
+	VolumeMountpoint            string                            `position:"Query" name:"VolumeMountpoint"`
+	RemoteDirectory             string                            `position:"Query" name:"RemoteDirectory"`
+	DeployMode                  string                            `position:"Query" name:"DeployMode"`
+	HaEnable                    requests.Boolean                  `position:"Query" name:"HaEnable"`
+	EcsChargeType               string                            `position:"Query" name:"EcsChargeType"`
+	Password                    string                            `position:"Query" name:"Password"`
+	KeyPairName                 string                            `position:"Query" name:"KeyPairName"`
+	ImageOwnerAlias             string                            `position:"Query" name:"ImageOwnerAlias"`
+	ImageId                     string                            `position:"Query" name:"ImageId"`
+	EcsOrderManagerCount        requests.Integer                  `position:"Query" name:"EcsOrder.Manager.Count"`
+	EcsOrderManagerInstanceType string                            `position:"Query" name:"EcsOrder.Manager.InstanceType"`
+	EcsOrderComputeCount        requests.Integer                  `position:"Query" name:"EcsOrder.Compute.Count"`
+	EcsOrderComputeInstanceType string                            `position:"Query" name:"EcsOrder.Compute.InstanceType"`
+	EcsOrderLoginCount          requests.Integer                  `position:"Query" name:"EcsOrder.Login.Count"`
+	EcsOrderLoginInstanceType   string                            `position:"Query" name:"EcsOrder.Login.InstanceType"`
+	SccClusterId                string                            `position:"Query" name:"SccClusterId"`
+	ComputeSpotStrategy         string                            `position:"Query" name:"ComputeSpotStrategy"`
+	ComputeSpotPriceLimit       string                            `position:"Query" name:"ComputeSpotPriceLimit"`
+	Application                 *[]CreateClusterApplication       `position:"Query" name:"Application"  type:"Repeated"`
+	PostInstallScript           *[]CreateClusterPostInstallScript `position:"Query" name:"PostInstallScript"  type:"Repeated"`
+	Period                      requests.Integer                  `position:"Query" name:"Period"`
+	PeriodUnit                  string                            `position:"Query" name:"PeriodUnit"`
+	AutoRenew                   string                            `position:"Query" name:"AutoRenew"`
+	AutoRenewPeriod             requests.Integer                  `position:"Query" name:"AutoRenewPeriod"`
 }
 
 // CreateClusterApplication is a repeated param struct in CreateClusterRequest
@@ -114,6 +121,12 @@ type CreateClusterApplication struct {
 	Tag string `name:"Tag"`
 }
 
+// CreateClusterPostInstallScript is a repeated param struct in CreateClusterRequest
+type CreateClusterPostInstallScript struct {
+	Url  string `name:"Url"`
+	Args string `name:"Args"`
+}
+
 // CreateClusterResponse is the response struct for api CreateCluster
 type CreateClusterResponse struct {
 	*responses.BaseResponse
@@ -126,7 +139,7 @@ func CreateCreateClusterRequest() (request *CreateClusterRequest) {
 	request = &CreateClusterRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "CreateCluster", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "CreateCluster", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/create_job_template.go

@@ -100,7 +100,7 @@ func CreateCreateJobTemplateRequest() (request *CreateJobTemplateRequest) {
 	request = &CreateJobTemplateRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "CreateJobTemplate", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "CreateJobTemplate", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/delete_cluster.go

@@ -91,7 +91,7 @@ func CreateDeleteClusterRequest() (request *DeleteClusterRequest) {
 	request = &DeleteClusterRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteCluster", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "DeleteCluster", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/delete_job_templates.go

@@ -90,7 +90,7 @@ func CreateDeleteJobTemplatesRequest() (request *DeleteJobTemplatesRequest) {
 	request = &DeleteJobTemplatesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteJobTemplates", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "DeleteJobTemplates", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/delete_jobs.go

@@ -91,7 +91,7 @@ func CreateDeleteJobsRequest() (request *DeleteJobsRequest) {
 	request = &DeleteJobsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteJobs", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "DeleteJobs", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/delete_nodes.go

@@ -97,7 +97,7 @@ func CreateDeleteNodesRequest() (request *DeleteNodesRequest) {
 	request = &DeleteNodesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteNodes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "DeleteNodes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/delete_users.go

@@ -96,7 +96,7 @@ func CreateDeleteUsersRequest() (request *DeleteUsersRequest) {
 	request = &DeleteUsersRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "DeleteUsers", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "DeleteUsers", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/describe_cluster.go

@@ -91,7 +91,7 @@ func CreateDescribeClusterRequest() (request *DescribeClusterRequest) {
 	request = &DescribeClusterRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "DescribeCluster", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "DescribeCluster", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/edit_job_template.go

@@ -101,7 +101,7 @@ func CreateEditJobTemplateRequest() (request *EditJobTemplateRequest) {
 	request = &EditJobTemplateRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "EditJobTemplate", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "EditJobTemplate", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/get_auto_scale_config.go

@@ -103,7 +103,7 @@ func CreateGetAutoScaleConfigRequest() (request *GetAutoScaleConfigRequest) {
 	request = &GetAutoScaleConfigRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "GetAutoScaleConfig", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "GetAutoScaleConfig", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_cluster_logs.go

@@ -97,7 +97,7 @@ func CreateListClusterLogsRequest() (request *ListClusterLogsRequest) {
 	request = &ListClusterLogsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListClusterLogs", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListClusterLogs", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_clusters.go

@@ -95,7 +95,7 @@ func CreateListClustersRequest() (request *ListClustersRequest) {
 	request = &ListClustersRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListClusters", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListClusters", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_current_client_version.go

@@ -90,7 +90,7 @@ func CreateListCurrentClientVersionRequest() (request *ListCurrentClientVersionR
 	request = &ListCurrentClientVersionRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListCurrentClientVersion", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListCurrentClientVersion", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_custom_images.go

@@ -92,7 +92,7 @@ func CreateListCustomImagesRequest() (request *ListCustomImagesRequest) {
 	request = &ListCustomImagesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListCustomImages", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListCustomImages", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_images.go

@@ -90,7 +90,7 @@ func CreateListImagesRequest() (request *ListImagesRequest) {
 	request = &ListImagesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListImages", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListImages", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_job_templates.go

@@ -96,7 +96,7 @@ func CreateListJobTemplatesRequest() (request *ListJobTemplatesRequest) {
 	request = &ListJobTemplatesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListJobTemplates", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListJobTemplates", "ehs", "openAPI")
 	return
 }
 

+ 2 - 1
services/ehpc/list_jobs.go

@@ -79,6 +79,7 @@ type ListJobsRequest struct {
 	ClusterId  string           `position:"Query" name:"ClusterId"`
 	Owner      string           `position:"Query" name:"Owner"`
 	State      string           `position:"Query" name:"State"`
+	Rerunable  string           `position:"Query" name:"Rerunable"`
 	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
 	PageSize   requests.Integer `position:"Query" name:"PageSize"`
 }
@@ -98,7 +99,7 @@ func CreateListJobsRequest() (request *ListJobsRequest) {
 	request = &ListJobsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListJobs", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListJobs", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_nodes.go

@@ -98,7 +98,7 @@ func CreateListNodesRequest() (request *ListNodesRequest) {
 	request = &ListNodesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListNodes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListNodes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_nodes_no_paging.go

@@ -97,7 +97,7 @@ func CreateListNodesNoPagingRequest() (request *ListNodesNoPagingRequest) {
 	request = &ListNodesNoPagingRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListNodesNoPaging", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListNodesNoPaging", "ehs", "openAPI")
 	return
 }
 

+ 4 - 3
services/ehpc/list_preferred_ecs_types.go

@@ -76,8 +76,9 @@ func (client *Client) ListPreferredEcsTypesWithCallback(request *ListPreferredEc
 // ListPreferredEcsTypesRequest is the request struct for api ListPreferredEcsTypes
 type ListPreferredEcsTypesRequest struct {
 	*requests.RpcRequest
-	ZoneId       string `position:"Query" name:"ZoneId"`
-	SpotStrategy string `position:"Query" name:"SpotStrategy"`
+	ZoneId             string `position:"Query" name:"ZoneId"`
+	SpotStrategy       string `position:"Query" name:"SpotStrategy"`
+	InstanceChargeType string `position:"Query" name:"InstanceChargeType"`
 }
 
 // ListPreferredEcsTypesResponse is the response struct for api ListPreferredEcsTypes
@@ -93,7 +94,7 @@ func CreateListPreferredEcsTypesRequest() (request *ListPreferredEcsTypesRequest
 	request = &ListPreferredEcsTypesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListPreferredEcsTypes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListPreferredEcsTypes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_regions.go

@@ -90,7 +90,7 @@ func CreateListRegionsRequest() (request *ListRegionsRequest) {
 	request = &ListRegionsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListRegions", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListRegions", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_softwares.go

@@ -91,7 +91,7 @@ func CreateListSoftwaresRequest() (request *ListSoftwaresRequest) {
 	request = &ListSoftwaresRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListSoftwares", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListSoftwares", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_users.go

@@ -96,7 +96,7 @@ func CreateListUsersRequest() (request *ListUsersRequest) {
 	request = &ListUsersRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListUsers", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListUsers", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/list_volumes.go

@@ -95,7 +95,7 @@ func CreateListVolumesRequest() (request *ListVolumesRequest) {
 	request = &ListVolumesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ListVolumes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ListVolumes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/modify_cluster_attributes.go

@@ -92,7 +92,7 @@ func CreateModifyClusterAttributesRequest() (request *ModifyClusterAttributesReq
 	request = &ModifyClusterAttributesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ModifyClusterAttributes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ModifyClusterAttributes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/modify_user_groups.go

@@ -97,7 +97,7 @@ func CreateModifyUserGroupsRequest() (request *ModifyUserGroupsRequest) {
 	request = &ModifyUserGroupsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ModifyUserGroups", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ModifyUserGroups", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/modify_user_passwords.go

@@ -97,7 +97,7 @@ func CreateModifyUserPasswordsRequest() (request *ModifyUserPasswordsRequest) {
 	request = &ModifyUserPasswordsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ModifyUserPasswords", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ModifyUserPasswords", "ehs", "openAPI")
 	return
 }
 

+ 103 - 0
services/ehpc/recover_cluster.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"
+)
+
+// RecoverCluster invokes the ehpc.RecoverCluster API synchronously
+// api document: https://help.aliyun.com/api/ehpc/recovercluster.html
+func (client *Client) RecoverCluster(request *RecoverClusterRequest) (response *RecoverClusterResponse, err error) {
+	response = CreateRecoverClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RecoverClusterWithChan invokes the ehpc.RecoverCluster API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/recovercluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RecoverClusterWithChan(request *RecoverClusterRequest) (<-chan *RecoverClusterResponse, <-chan error) {
+	responseChan := make(chan *RecoverClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RecoverCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RecoverClusterWithCallback invokes the ehpc.RecoverCluster API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/recovercluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RecoverClusterWithCallback(request *RecoverClusterRequest, callback func(response *RecoverClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RecoverClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.RecoverCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RecoverClusterRequest is the request struct for api RecoverCluster
+type RecoverClusterRequest struct {
+	*requests.RpcRequest
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+// RecoverClusterResponse is the response struct for api RecoverCluster
+type RecoverClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateRecoverClusterRequest creates a request to invoke RecoverCluster API
+func CreateRecoverClusterRequest() (request *RecoverClusterRequest) {
+	request = &RecoverClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2018-04-12", "RecoverCluster", "ehs", "openAPI")
+	return
+}
+
+// CreateRecoverClusterResponse creates a response to parse from RecoverCluster response
+func CreateRecoverClusterResponse() (response *RecoverClusterResponse) {
+	response = &RecoverClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/ehpc/rerun_jobs.go

@@ -91,7 +91,7 @@ func CreateRerunJobsRequest() (request *RerunJobsRequest) {
 	request = &RerunJobsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "RerunJobs", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "RerunJobs", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/reset_nodes.go

@@ -96,7 +96,7 @@ func CreateResetNodesRequest() (request *ResetNodesRequest) {
 	request = &ResetNodesRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "ResetNodes", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "ResetNodes", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/set_auto_scale_config.go

@@ -100,7 +100,7 @@ func CreateSetAutoScaleConfigRequest() (request *SetAutoScaleConfigRequest) {
 	request = &SetAutoScaleConfigRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "SetAutoScaleConfig", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "SetAutoScaleConfig", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/set_job_user.go

@@ -92,7 +92,7 @@ func CreateSetJobUserRequest() (request *SetJobUserRequest) {
 	request = &SetJobUserRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "SetJobUser", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "SetJobUser", "ehs", "openAPI")
 	return
 }
 

+ 103 - 0
services/ehpc/start_cluster.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"
+)
+
+// StartCluster invokes the ehpc.StartCluster API synchronously
+// api document: https://help.aliyun.com/api/ehpc/startcluster.html
+func (client *Client) StartCluster(request *StartClusterRequest) (response *StartClusterResponse, err error) {
+	response = CreateStartClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartClusterWithChan invokes the ehpc.StartCluster API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/startcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartClusterWithChan(request *StartClusterRequest) (<-chan *StartClusterResponse, <-chan error) {
+	responseChan := make(chan *StartClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartClusterWithCallback invokes the ehpc.StartCluster API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/startcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartClusterWithCallback(request *StartClusterRequest, callback func(response *StartClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.StartCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartClusterRequest is the request struct for api StartCluster
+type StartClusterRequest struct {
+	*requests.RpcRequest
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+// StartClusterResponse is the response struct for api StartCluster
+type StartClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStartClusterRequest creates a request to invoke StartCluster API
+func CreateStartClusterRequest() (request *StartClusterRequest) {
+	request = &StartClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2018-04-12", "StartCluster", "ehs", "openAPI")
+	return
+}
+
+// CreateStartClusterResponse creates a response to parse from StartCluster response
+func CreateStartClusterResponse() (response *StartClusterResponse) {
+	response = &StartClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ehpc/start_nodes.go

@@ -0,0 +1,110 @@
+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"
+)
+
+// StartNodes invokes the ehpc.StartNodes API synchronously
+// api document: https://help.aliyun.com/api/ehpc/startnodes.html
+func (client *Client) StartNodes(request *StartNodesRequest) (response *StartNodesResponse, err error) {
+	response = CreateStartNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartNodesWithChan invokes the ehpc.StartNodes API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/startnodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartNodesWithChan(request *StartNodesRequest) (<-chan *StartNodesResponse, <-chan error) {
+	responseChan := make(chan *StartNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartNodesWithCallback invokes the ehpc.StartNodes API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/startnodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartNodesWithCallback(request *StartNodesRequest, callback func(response *StartNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.StartNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartNodesRequest is the request struct for api StartNodes
+type StartNodesRequest struct {
+	*requests.RpcRequest
+	ClusterId string                `position:"Query" name:"ClusterId"`
+	Role      string                `position:"Query" name:"Role"`
+	Instance  *[]StartNodesInstance `position:"Query" name:"Instance"  type:"Repeated"`
+}
+
+// StartNodesInstance is a repeated param struct in StartNodesRequest
+type StartNodesInstance struct {
+	Id string `name:"Id"`
+}
+
+// StartNodesResponse is the response struct for api StartNodes
+type StartNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStartNodesRequest creates a request to invoke StartNodes API
+func CreateStartNodesRequest() (request *StartNodesRequest) {
+	request = &StartNodesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2018-04-12", "StartNodes", "ehs", "openAPI")
+	return
+}
+
+// CreateStartNodesResponse creates a response to parse from StartNodes response
+func CreateStartNodesResponse() (response *StartNodesResponse) {
+	response = &StartNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/ehpc/stop_cluster.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"
+)
+
+// StopCluster invokes the ehpc.StopCluster API synchronously
+// api document: https://help.aliyun.com/api/ehpc/stopcluster.html
+func (client *Client) StopCluster(request *StopClusterRequest) (response *StopClusterResponse, err error) {
+	response = CreateStopClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StopClusterWithChan invokes the ehpc.StopCluster API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/stopcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopClusterWithChan(request *StopClusterRequest) (<-chan *StopClusterResponse, <-chan error) {
+	responseChan := make(chan *StopClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StopCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StopClusterWithCallback invokes the ehpc.StopCluster API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/stopcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopClusterWithCallback(request *StopClusterRequest, callback func(response *StopClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StopClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.StopCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StopClusterRequest is the request struct for api StopCluster
+type StopClusterRequest struct {
+	*requests.RpcRequest
+	ClusterId string `position:"Query" name:"ClusterId"`
+}
+
+// StopClusterResponse is the response struct for api StopCluster
+type StopClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStopClusterRequest creates a request to invoke StopCluster API
+func CreateStopClusterRequest() (request *StopClusterRequest) {
+	request = &StopClusterRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2018-04-12", "StopCluster", "ehs", "openAPI")
+	return
+}
+
+// CreateStopClusterResponse creates a response to parse from StopCluster response
+func CreateStopClusterResponse() (response *StopClusterResponse) {
+	response = &StopClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/ehpc/stop_jobs.go

@@ -91,7 +91,7 @@ func CreateStopJobsRequest() (request *StopJobsRequest) {
 	request = &StopJobsRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "StopJobs", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "StopJobs", "ehs", "openAPI")
 	return
 }
 

+ 110 - 0
services/ehpc/stop_nodes.go

@@ -0,0 +1,110 @@
+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"
+)
+
+// StopNodes invokes the ehpc.StopNodes API synchronously
+// api document: https://help.aliyun.com/api/ehpc/stopnodes.html
+func (client *Client) StopNodes(request *StopNodesRequest) (response *StopNodesResponse, err error) {
+	response = CreateStopNodesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StopNodesWithChan invokes the ehpc.StopNodes API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/stopnodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopNodesWithChan(request *StopNodesRequest) (<-chan *StopNodesResponse, <-chan error) {
+	responseChan := make(chan *StopNodesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StopNodes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StopNodesWithCallback invokes the ehpc.StopNodes API asynchronously
+// api document: https://help.aliyun.com/api/ehpc/stopnodes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopNodesWithCallback(request *StopNodesRequest, callback func(response *StopNodesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StopNodesResponse
+		var err error
+		defer close(result)
+		response, err = client.StopNodes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StopNodesRequest is the request struct for api StopNodes
+type StopNodesRequest struct {
+	*requests.RpcRequest
+	ClusterId string               `position:"Query" name:"ClusterId"`
+	Role      string               `position:"Query" name:"Role"`
+	Instance  *[]StopNodesInstance `position:"Query" name:"Instance"  type:"Repeated"`
+}
+
+// StopNodesInstance is a repeated param struct in StopNodesRequest
+type StopNodesInstance struct {
+	Id string `name:"Id"`
+}
+
+// StopNodesResponse is the response struct for api StopNodes
+type StopNodesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStopNodesRequest creates a request to invoke StopNodes API
+func CreateStopNodesRequest() (request *StopNodesRequest) {
+	request = &StopNodesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("EHPC", "2018-04-12", "StopNodes", "ehs", "openAPI")
+	return
+}
+
+// CreateStopNodesResponse creates a response to parse from StopNodes response
+func CreateStopNodesResponse() (response *StopNodesResponse) {
+	response = &StopNodesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/ehpc/struct_application_info.go

@@ -17,8 +17,8 @@ package ehpc
 
 // ApplicationInfo is a nested struct in ehpc response
 type ApplicationInfo struct {
-	Version  string `json:"Version" xml:"Version"`
-	Required bool   `json:"Required" xml:"Required"`
 	Name     string `json:"Name" xml:"Name"`
 	Tag      string `json:"Tag" xml:"Tag"`
+	Version  string `json:"Version" xml:"Version"`
+	Required bool   `json:"Required" xml:"Required"`
 }

+ 1 - 0
services/ehpc/struct_cluster_info.go

@@ -33,6 +33,7 @@ type ClusterInfo struct {
 	VolumeProtocol   string                        `json:"VolumeProtocol" xml:"VolumeProtocol"`
 	VolumeMountpoint string                        `json:"VolumeMountpoint" xml:"VolumeMountpoint"`
 	RemoteDirectory  string                        `json:"RemoteDirectory" xml:"RemoteDirectory"`
+	DeployMode       string                        `json:"DeployMode" xml:"DeployMode"`
 	HaEnable         bool                          `json:"HaEnable" xml:"HaEnable"`
 	EcsChargeType    string                        `json:"EcsChargeType" xml:"EcsChargeType"`
 	KeyPairName      string                        `json:"KeyPairName" xml:"KeyPairName"`

+ 1 - 0
services/ehpc/struct_cluster_info_simple.go

@@ -26,6 +26,7 @@ type ClusterInfoSimple struct {
 	OsTag           string         `json:"OsTag" xml:"OsTag"`
 	AccountType     string         `json:"AccountType" xml:"AccountType"`
 	SchedulerType   string         `json:"SchedulerType" xml:"SchedulerType"`
+	DeployMode      string         `json:"DeployMode" xml:"DeployMode"`
 	Count           int            `json:"Count" xml:"Count"`
 	InstanceType    string         `json:"InstanceType" xml:"InstanceType"`
 	LoginNodes      string         `json:"LoginNodes" xml:"LoginNodes"`

+ 1 - 1
services/ehpc/struct_compute.go

@@ -17,6 +17,6 @@ package ehpc
 
 // Compute is a nested struct in ehpc response
 type Compute struct {
-	InstanceType string `json:"InstanceType" xml:"InstanceType"`
 	Count        int    `json:"Count" xml:"Count"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
 }

+ 2 - 0
services/ehpc/struct_computes.go

@@ -19,5 +19,7 @@ package ehpc
 type Computes struct {
 	Total          int `json:"Total" xml:"Total"`
 	NormalCount    int `json:"NormalCount" xml:"NormalCount"`
+	OperatingCount int `json:"OperatingCount" xml:"OperatingCount"`
+	StoppedCount   int `json:"StoppedCount" xml:"StoppedCount"`
 	ExceptionCount int `json:"ExceptionCount" xml:"ExceptionCount"`
 }

+ 11 - 5
services/ehpc/struct_image_info.go

@@ -17,9 +17,15 @@ package ehpc
 
 // ImageInfo is a nested struct in ehpc response
 type 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       BaseOsTag `json:"BaseOsTag" xml:"BaseOsTag"`
+	Uid               string    `json:"Uid" xml:"Uid"`
+	ImageId           string    `json:"ImageId" xml:"ImageId"`
+	ImageName         string    `json:"ImageName" xml:"ImageName"`
+	ImageOwnerAlias   string    `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+	Description       string    `json:"Description" xml:"Description"`
+	Status            string    `json:"Status" xml:"Status"`
+	ProductCode       string    `json:"ProductCode" xml:"ProductCode"`
+	SkuCode           string    `json:"SkuCode" xml:"SkuCode"`
+	PricingCycle      string    `json:"PricingCycle" xml:"PricingCycle"`
+	PostInstallScript string    `json:"PostInstallScript" xml:"PostInstallScript"`
+	BaseOsTag         BaseOsTag `json:"BaseOsTag" xml:"BaseOsTag"`
 }

+ 1 - 1
services/ehpc/struct_login.go

@@ -17,6 +17,6 @@ package ehpc
 
 // Login is a nested struct in ehpc response
 type Login struct {
-	InstanceType string `json:"InstanceType" xml:"InstanceType"`
 	Count        int    `json:"Count" xml:"Count"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
 }

+ 1 - 1
services/ehpc/struct_manager.go

@@ -17,6 +17,6 @@ package ehpc
 
 // Manager is a nested struct in ehpc response
 type Manager struct {
-	InstanceType string `json:"InstanceType" xml:"InstanceType"`
 	Count        int    `json:"Count" xml:"Count"`
+	InstanceType string `json:"InstanceType" xml:"InstanceType"`
 }

+ 2 - 0
services/ehpc/struct_managers.go

@@ -19,5 +19,7 @@ package ehpc
 type Managers struct {
 	Total          int `json:"Total" xml:"Total"`
 	NormalCount    int `json:"NormalCount" xml:"NormalCount"`
+	OperatingCount int `json:"OperatingCount" xml:"OperatingCount"`
+	StoppedCount   int `json:"StoppedCount" xml:"StoppedCount"`
 	ExceptionCount int `json:"ExceptionCount" xml:"ExceptionCount"`
 }

+ 14 - 14
services/ehpc/struct_node_info.go

@@ -17,18 +17,18 @@ package ehpc
 
 // NodeInfo is a nested struct in ehpc response
 type NodeInfo struct {
-	ExpiredTime     string         `json:"ExpiredTime" xml:"ExpiredTime"`
-	LockReason      string         `json:"LockReason" xml:"LockReason"`
-	CreatedByEhpc   bool           `json:"CreatedByEhpc" xml:"CreatedByEhpc"`
-	AddTime         string         `json:"AddTime" xml:"AddTime"`
-	ImageOwnerAlias string         `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
-	Expired         bool           `json:"Expired" xml:"Expired"`
-	SpotStrategy    string         `json:"SpotStrategy" xml:"SpotStrategy"`
-	ImageId         string         `json:"ImageId" xml:"ImageId"`
-	Id              string         `json:"Id" xml:"Id"`
-	RegionId        string         `json:"RegionId" xml:"RegionId"`
-	Role            string         `json:"Role" xml:"Role"`
-	Status          string         `json:"Status" xml:"Status"`
-	UsedResources   UsedResources  `json:"UsedResources" xml:"UsedResources"`
-	TotalResources  TotalResources `json:"TotalResources" xml:"TotalResources"`
+	LockReason      string                   `json:"LockReason" xml:"LockReason"`
+	Expired         bool                     `json:"Expired" xml:"Expired"`
+	ExpiredTime     string                   `json:"ExpiredTime" xml:"ExpiredTime"`
+	ImageId         string                   `json:"ImageId" xml:"ImageId"`
+	ImageOwnerAlias string                   `json:"ImageOwnerAlias" xml:"ImageOwnerAlias"`
+	RegionId        string                   `json:"RegionId" xml:"RegionId"`
+	CreatedByEhpc   bool                     `json:"CreatedByEhpc" xml:"CreatedByEhpc"`
+	Id              string                   `json:"Id" xml:"Id"`
+	Status          string                   `json:"Status" xml:"Status"`
+	AddTime         string                   `json:"AddTime" xml:"AddTime"`
+	SpotStrategy    string                   `json:"SpotStrategy" xml:"SpotStrategy"`
+	Roles           RolesInListNodesNoPaging `json:"Roles" xml:"Roles"`
+	TotalResources  TotalResources           `json:"TotalResources" xml:"TotalResources"`
+	UsedResources   UsedResources            `json:"UsedResources" xml:"UsedResources"`
 }

+ 1 - 1
services/ehpc/struct_roles.go

@@ -18,6 +18,6 @@ package ehpc
 // Roles is a nested struct in ehpc response
 type Roles struct {
 	Manager ManagerInListPreferredEcsTypes `json:"Manager" xml:"Manager"`
-	Compute ComputeInListPreferredEcsTypes `json:"Compute" xml:"Compute"`
 	Login   LoginInListPreferredEcsTypes   `json:"Login" xml:"Login"`
+	Compute ComputeInListPreferredEcsTypes `json:"Compute" xml:"Compute"`
 }

+ 21 - 0
services/ehpc/struct_roles_in_list_nodes.go

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

+ 21 - 0
services/ehpc/struct_roles_in_list_nodes_no_paging.go

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

+ 1 - 1
services/ehpc/struct_total_resources.go

@@ -18,6 +18,6 @@ package ehpc
 // TotalResources is a nested struct in ehpc response
 type TotalResources struct {
 	Gpu    int `json:"Gpu" xml:"Gpu"`
-	Cpu    int `json:"Cpu" xml:"Cpu"`
 	Memory int `json:"Memory" xml:"Memory"`
+	Cpu    int `json:"Cpu" xml:"Cpu"`
 }

+ 1 - 1
services/ehpc/struct_used_resources.go

@@ -18,6 +18,6 @@ package ehpc
 // UsedResources is a nested struct in ehpc response
 type UsedResources struct {
 	Gpu    int `json:"Gpu" xml:"Gpu"`
-	Cpu    int `json:"Cpu" xml:"Cpu"`
 	Memory int `json:"Memory" xml:"Memory"`
+	Cpu    int `json:"Cpu" xml:"Cpu"`
 }

+ 1 - 1
services/ehpc/submit_job.go

@@ -102,7 +102,7 @@ func CreateSubmitJobRequest() (request *SubmitJobRequest) {
 	request = &SubmitJobRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "SubmitJob", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "SubmitJob", "ehs", "openAPI")
 	return
 }
 

+ 1 - 1
services/ehpc/upgrade_client.go

@@ -91,7 +91,7 @@ func CreateUpgradeClientRequest() (request *UpgradeClientRequest) {
 	request = &UpgradeClientRequest{
 		RpcRequest: &requests.RpcRequest{},
 	}
-	request.InitWithApiInfo("EHPC", "2017-07-14", "UpgradeClient", "ehs", "openAPI")
+	request.InitWithApiInfo("EHPC", "2018-04-12", "UpgradeClient", "ehs", "openAPI")
 	return
 }