浏览代码

Generated 2018-11-11 for foas.

sdk-team 6 年之前
父节点
当前提交
d01897c223
共有 98 个文件被更改,包括 7676 次插入0 次删除
  1. 3 0
      ChangeLog.txt
  2. 107 0
      services/foas/batch_get_instance_run_summary.go
  3. 106 0
      services/foas/bind_queue.go
  4. 106 0
      services/foas/calc_plan_json_resource.go
  5. 107 0
      services/foas/check_raw_plan_json.go
  6. 129 0
      services/foas/client.go
  7. 108 0
      services/foas/commit_job.go
  8. 111 0
      services/foas/create_cell_cluster_order.go
  9. 111 0
      services/foas/create_cluster.go
  10. 106 0
      services/foas/create_folder.go
  11. 116 0
      services/foas/create_job.go
  12. 114 0
      services/foas/create_package.go
  13. 109 0
      services/foas/create_project.go
  14. 108 0
      services/foas/create_queue.go
  15. 105 0
      services/foas/delete_folder.go
  16. 105 0
      services/foas/delete_job.go
  17. 105 0
      services/foas/delete_package.go
  18. 104 0
      services/foas/delete_project.go
  19. 105 0
      services/foas/delete_queue.go
  20. 104 0
      services/foas/destroy_cluster.go
  21. 33 0
      services/foas/endpoint.go
  22. 107 0
      services/foas/expand_cluster.go
  23. 105 0
      services/foas/get_cluster_details.go
  24. 105 0
      services/foas/get_cluster_engine_versions.go
  25. 106 0
      services/foas/get_cluster_metrics.go
  26. 105 0
      services/foas/get_cluster_queue_info.go
  27. 105 0
      services/foas/get_cluster_resource.go
  28. 106 0
      services/foas/get_folder.go
  29. 107 0
      services/foas/get_instance.go
  30. 107 0
      services/foas/get_instance_checkpoint.go
  31. 107 0
      services/foas/get_instance_config.go
  32. 107 0
      services/foas/get_instance_detail.go
  33. 107 0
      services/foas/get_instance_exceptions.go
  34. 107 0
      services/foas/get_instance_final_state.go
  35. 108 0
      services/foas/get_instance_history_auto_scale_plan_content.go
  36. 107 0
      services/foas/get_instance_history_auto_scale_plan_list.go
  37. 108 0
      services/foas/get_instance_metric.go
  38. 107 0
      services/foas/get_instance_resource.go
  39. 107 0
      services/foas/get_instance_run_summary.go
  40. 108 0
      services/foas/get_instance_vertex_task_managers.go
  41. 106 0
      services/foas/get_job.go
  42. 106 0
      services/foas/get_job_latest_auto_scale_plan.go
  43. 106 0
      services/foas/get_package.go
  44. 105 0
      services/foas/get_project.go
  45. 109 0
      services/foas/get_raw_plan_json.go
  46. 112 0
      services/foas/get_ref_package_job.go
  47. 106 0
      services/foas/list_child_folder.go
  48. 114 0
      services/foas/list_cluster.go
  49. 121 0
      services/foas/list_instance.go
  50. 119 0
      services/foas/list_job.go
  51. 114 0
      services/foas/list_package.go
  52. 114 0
      services/foas/list_project.go
  53. 107 0
      services/foas/list_project_bind_queue.go
  54. 107 0
      services/foas/list_project_bind_queue_resource.go
  55. 108 0
      services/foas/modify_instance_state.go
  56. 105 0
      services/foas/modify_master_spec.go
  57. 106 0
      services/foas/mv_folder.go
  58. 105 0
      services/foas/offline_job.go
  59. 106 0
      services/foas/shrink_cluster.go
  60. 107 0
      services/foas/start_job.go
  61. 30 0
      services/foas/struct_cluster.go
  62. 21 0
      services/foas/struct_clusters.go
  63. 37 0
      services/foas/struct_details.go
  64. 21 0
      services/foas/struct_engine_versions.go
  65. 22 0
      services/foas/struct_folder.go
  66. 21 0
      services/foas/struct_folders.go
  67. 24 0
      services/foas/struct_input.go
  68. 21 0
      services/foas/struct_inputs.go
  69. 43 0
      services/foas/struct_instance.go
  70. 21 0
      services/foas/struct_instances.go
  71. 39 0
      services/foas/struct_job.go
  72. 22 0
      services/foas/struct_job_in_out.go
  73. 21 0
      services/foas/struct_jobs_in_get_ref_package_job.go
  74. 21 0
      services/foas/struct_jobs_in_list_job.go
  75. 24 0
      services/foas/struct_metric.go
  76. 21 0
      services/foas/struct_metrics_in_get_cluster_metrics.go
  77. 21 0
      services/foas/struct_metrics_in_get_instance_metric.go
  78. 24 0
      services/foas/struct_output.go
  79. 21 0
      services/foas/struct_outputs.go
  80. 35 0
      services/foas/struct_package.go
  81. 21 0
      services/foas/struct_packages.go
  82. 23 0
      services/foas/struct_plan_json_info.go
  83. 22 0
      services/foas/struct_plan_json_resource.go
  84. 21 0
      services/foas/struct_plan_list.go
  85. 32 0
      services/foas/struct_project.go
  86. 21 0
      services/foas/struct_projects.go
  87. 31 0
      services/foas/struct_queue.go
  88. 21 0
      services/foas/struct_queues_in_get_cluster_queue_info.go
  89. 21 0
      services/foas/struct_queues_in_list_project_bind_queue.go
  90. 21 0
      services/foas/struct_queues_in_list_project_bind_queue_resource.go
  91. 26 0
      services/foas/struct_resource.go
  92. 28 0
      services/foas/struct_run_summary.go
  93. 21 0
      services/foas/struct_run_summarys.go
  94. 106 0
      services/foas/unbind_queue.go
  95. 107 0
      services/foas/update_auto_scale_config.go
  96. 114 0
      services/foas/update_job.go
  97. 113 0
      services/foas/update_package.go
  98. 106 0
      services/foas/validate_job.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-09-05 Version: 1.60.143
+- Generated 2018-11-11 for `foas`.
+
 2019-09-05 Version: 1.60.142
 - Add DescribeInstanceTypes.
 - Add DescribeReservedResource.

+ 107 - 0
services/foas/batch_get_instance_run_summary.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// BatchGetInstanceRunSummary invokes the foas.BatchGetInstanceRunSummary API synchronously
+// api document: https://help.aliyun.com/api/foas/batchgetinstancerunsummary.html
+func (client *Client) BatchGetInstanceRunSummary(request *BatchGetInstanceRunSummaryRequest) (response *BatchGetInstanceRunSummaryResponse, err error) {
+	response = CreateBatchGetInstanceRunSummaryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchGetInstanceRunSummaryWithChan invokes the foas.BatchGetInstanceRunSummary API asynchronously
+// api document: https://help.aliyun.com/api/foas/batchgetinstancerunsummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetInstanceRunSummaryWithChan(request *BatchGetInstanceRunSummaryRequest) (<-chan *BatchGetInstanceRunSummaryResponse, <-chan error) {
+	responseChan := make(chan *BatchGetInstanceRunSummaryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchGetInstanceRunSummary(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchGetInstanceRunSummaryWithCallback invokes the foas.BatchGetInstanceRunSummary API asynchronously
+// api document: https://help.aliyun.com/api/foas/batchgetinstancerunsummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetInstanceRunSummaryWithCallback(request *BatchGetInstanceRunSummaryRequest, callback func(response *BatchGetInstanceRunSummaryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchGetInstanceRunSummaryResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchGetInstanceRunSummary(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchGetInstanceRunSummaryRequest is the request struct for api BatchGetInstanceRunSummary
+type BatchGetInstanceRunSummaryRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobNames    string `position:"Query" name:"jobNames"`
+	JobType     string `position:"Query" name:"jobType"`
+}
+
+// BatchGetInstanceRunSummaryResponse is the response struct for api BatchGetInstanceRunSummary
+type BatchGetInstanceRunSummaryResponse struct {
+	*responses.BaseResponse
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	RunSummarys RunSummarys `json:"RunSummarys" xml:"RunSummarys"`
+}
+
+// CreateBatchGetInstanceRunSummaryRequest creates a request to invoke BatchGetInstanceRunSummary API
+func CreateBatchGetInstanceRunSummaryRequest() (request *BatchGetInstanceRunSummaryRequest) {
+	request = &BatchGetInstanceRunSummaryRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "BatchGetInstanceRunSummary", "/api/v2/projects/[projectName]/runsummary", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateBatchGetInstanceRunSummaryResponse creates a response to parse from BatchGetInstanceRunSummary response
+func CreateBatchGetInstanceRunSummaryResponse() (response *BatchGetInstanceRunSummaryResponse) {
+	response = &BatchGetInstanceRunSummaryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/bind_queue.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// BindQueue invokes the foas.BindQueue API synchronously
+// api document: https://help.aliyun.com/api/foas/bindqueue.html
+func (client *Client) BindQueue(request *BindQueueRequest) (response *BindQueueResponse, err error) {
+	response = CreateBindQueueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BindQueueWithChan invokes the foas.BindQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/bindqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindQueueWithChan(request *BindQueueRequest) (<-chan *BindQueueResponse, <-chan error) {
+	responseChan := make(chan *BindQueueResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BindQueue(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BindQueueWithCallback invokes the foas.BindQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/bindqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindQueueWithCallback(request *BindQueueRequest, callback func(response *BindQueueResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BindQueueResponse
+		var err error
+		defer close(result)
+		response, err = client.BindQueue(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BindQueueRequest is the request struct for api BindQueue
+type BindQueueRequest struct {
+	*requests.RoaRequest
+	QueueName   string `position:"Body" name:"queueName"`
+	ProjectName string `position:"Path" name:"projectName"`
+	ClusterId   string `position:"Body" name:"clusterId"`
+}
+
+// BindQueueResponse is the response struct for api BindQueue
+type BindQueueResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBindQueueRequest creates a request to invoke BindQueue API
+func CreateBindQueueRequest() (request *BindQueueRequest) {
+	request = &BindQueueRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "BindQueue", "/api/v2/projects/[projectName]/queue", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateBindQueueResponse creates a response to parse from BindQueue response
+func CreateBindQueueResponse() (response *BindQueueResponse) {
+	response = &BindQueueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/calc_plan_json_resource.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// CalcPlanJsonResource invokes the foas.CalcPlanJsonResource API synchronously
+// api document: https://help.aliyun.com/api/foas/calcplanjsonresource.html
+func (client *Client) CalcPlanJsonResource(request *CalcPlanJsonResourceRequest) (response *CalcPlanJsonResourceResponse, err error) {
+	response = CreateCalcPlanJsonResourceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CalcPlanJsonResourceWithChan invokes the foas.CalcPlanJsonResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/calcplanjsonresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CalcPlanJsonResourceWithChan(request *CalcPlanJsonResourceRequest) (<-chan *CalcPlanJsonResourceResponse, <-chan error) {
+	responseChan := make(chan *CalcPlanJsonResourceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CalcPlanJsonResource(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CalcPlanJsonResourceWithCallback invokes the foas.CalcPlanJsonResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/calcplanjsonresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CalcPlanJsonResourceWithCallback(request *CalcPlanJsonResourceRequest, callback func(response *CalcPlanJsonResourceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CalcPlanJsonResourceResponse
+		var err error
+		defer close(result)
+		response, err = client.CalcPlanJsonResource(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CalcPlanJsonResourceRequest is the request struct for api CalcPlanJsonResource
+type CalcPlanJsonResourceRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// CalcPlanJsonResourceResponse is the response struct for api CalcPlanJsonResource
+type CalcPlanJsonResourceResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	PlanJsonResource PlanJsonResource `json:"PlanJsonResource" xml:"PlanJsonResource"`
+}
+
+// CreateCalcPlanJsonResourceRequest creates a request to invoke CalcPlanJsonResource API
+func CreateCalcPlanJsonResourceRequest() (request *CalcPlanJsonResourceRequest) {
+	request = &CalcPlanJsonResourceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CalcPlanJsonResource", "/api/v2/projects/[projectName]/jobs/[jobName]/planjson-resource", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateCalcPlanJsonResourceResponse creates a response to parse from CalcPlanJsonResource response
+func CreateCalcPlanJsonResourceResponse() (response *CalcPlanJsonResourceResponse) {
+	response = &CalcPlanJsonResourceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/check_raw_plan_json.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// CheckRawPlanJson invokes the foas.CheckRawPlanJson API synchronously
+// api document: https://help.aliyun.com/api/foas/checkrawplanjson.html
+func (client *Client) CheckRawPlanJson(request *CheckRawPlanJsonRequest) (response *CheckRawPlanJsonResponse, err error) {
+	response = CreateCheckRawPlanJsonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckRawPlanJsonWithChan invokes the foas.CheckRawPlanJson API asynchronously
+// api document: https://help.aliyun.com/api/foas/checkrawplanjson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRawPlanJsonWithChan(request *CheckRawPlanJsonRequest) (<-chan *CheckRawPlanJsonResponse, <-chan error) {
+	responseChan := make(chan *CheckRawPlanJsonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckRawPlanJson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckRawPlanJsonWithCallback invokes the foas.CheckRawPlanJson API asynchronously
+// api document: https://help.aliyun.com/api/foas/checkrawplanjson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRawPlanJsonWithCallback(request *CheckRawPlanJsonRequest, callback func(response *CheckRawPlanJsonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckRawPlanJsonResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckRawPlanJson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckRawPlanJsonRequest is the request struct for api CheckRawPlanJson
+type CheckRawPlanJsonRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	SessionId   string `position:"Query" name:"sessionId"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// CheckRawPlanJsonResponse is the response struct for api CheckRawPlanJson
+type CheckRawPlanJsonResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	PlanJsonInfo PlanJsonInfo `json:"PlanJsonInfo" xml:"PlanJsonInfo"`
+}
+
+// CreateCheckRawPlanJsonRequest creates a request to invoke CheckRawPlanJson API
+func CreateCheckRawPlanJsonRequest() (request *CheckRawPlanJsonRequest) {
+	request = &CheckRawPlanJsonRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CheckRawPlanJson", "/api/v2/projects/[projectName]/jobs/[jobName]/planjson/check", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateCheckRawPlanJsonResponse creates a response to parse from CheckRawPlanJson response
+func CreateCheckRawPlanJsonResponse() (response *CheckRawPlanJsonResponse) {
+	response = &CheckRawPlanJsonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 129 - 0
services/foas/client.go

@@ -0,0 +1,129 @@
+package foas
+
+//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 (
+	"reflect"
+
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// SetClientProperty Set Property by Reflect
+func SetClientProperty(client *Client, propertyName string, propertyValue interface{}) {
+	v := reflect.ValueOf(client).Elem()
+	if v.FieldByName(propertyName).IsValid() && v.FieldByName(propertyName).CanSet() {
+		v.FieldByName(propertyName).Set(reflect.ValueOf(propertyValue))
+	}
+}
+
+// SetEndpointDataToClient Set EndpointMap and ENdpointType
+func SetEndpointDataToClient(client *Client) {
+	SetClientProperty(client, "EndpointMap", GetEndpointMap())
+	SetClientProperty(client, "EndpointType", GetEndpointType())
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithProvider creates a sdk client with providers
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) {
+	client = &Client{}
+	var pc provider.Provider
+	if len(providers) == 0 {
+		pc = provider.DefaultChain
+	} else {
+		pc = provider.NewProviderChain(providers)
+	}
+	err = client.InitWithProviderChain(regionId, pc)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	SetEndpointDataToClient(client)
+	return
+}

+ 108 - 0
services/foas/commit_job.go

@@ -0,0 +1,108 @@
+package foas
+
+//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"
+)
+
+// CommitJob invokes the foas.CommitJob API synchronously
+// api document: https://help.aliyun.com/api/foas/commitjob.html
+func (client *Client) CommitJob(request *CommitJobRequest) (response *CommitJobResponse, err error) {
+	response = CreateCommitJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CommitJobWithChan invokes the foas.CommitJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/commitjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CommitJobWithChan(request *CommitJobRequest) (<-chan *CommitJobResponse, <-chan error) {
+	responseChan := make(chan *CommitJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CommitJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CommitJobWithCallback invokes the foas.CommitJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/commitjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CommitJobWithCallback(request *CommitJobRequest, callback func(response *CommitJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CommitJobResponse
+		var err error
+		defer close(result)
+		response, err = client.CommitJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CommitJobRequest is the request struct for api CommitJob
+type CommitJobRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	MaxCU       requests.Float   `position:"Body" name:"maxCU"`
+	Configure   string           `position:"Body" name:"configure"`
+	IsOnOff     requests.Boolean `position:"Body" name:"isOnOff"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// CommitJobResponse is the response struct for api CommitJob
+type CommitJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCommitJobRequest creates a request to invoke CommitJob API
+func CreateCommitJobRequest() (request *CommitJobRequest) {
+	request = &CommitJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CommitJob", "/api/v2/projects/[projectName]/jobs/[jobName]/commit", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCommitJobResponse creates a response to parse from CommitJob response
+func CreateCommitJobResponse() (response *CommitJobResponse) {
+	response = &CommitJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/foas/create_cell_cluster_order.go

@@ -0,0 +1,111 @@
+package foas
+
+//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"
+)
+
+// CreateCellClusterOrder invokes the foas.CreateCellClusterOrder API synchronously
+// api document: https://help.aliyun.com/api/foas/createcellclusterorder.html
+func (client *Client) CreateCellClusterOrder(request *CreateCellClusterOrderRequest) (response *CreateCellClusterOrderResponse, err error) {
+	response = CreateCreateCellClusterOrderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCellClusterOrderWithChan invokes the foas.CreateCellClusterOrder API asynchronously
+// api document: https://help.aliyun.com/api/foas/createcellclusterorder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCellClusterOrderWithChan(request *CreateCellClusterOrderRequest) (<-chan *CreateCellClusterOrderResponse, <-chan error) {
+	responseChan := make(chan *CreateCellClusterOrderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCellClusterOrder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCellClusterOrderWithCallback invokes the foas.CreateCellClusterOrder API asynchronously
+// api document: https://help.aliyun.com/api/foas/createcellclusterorder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCellClusterOrderWithCallback(request *CreateCellClusterOrderRequest, callback func(response *CreateCellClusterOrderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCellClusterOrderResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCellClusterOrder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCellClusterOrderRequest is the request struct for api CreateCellClusterOrder
+type CreateCellClusterOrderRequest struct {
+	*requests.RoaRequest
+	Period     requests.Integer `position:"Body" name:"period"`
+	SlaveNum   requests.Integer `position:"Body" name:"slaveNum"`
+	SlaveSpec  string           `position:"Body" name:"slaveSpec"`
+	Region     string           `position:"Body" name:"region"`
+	MasterNum  requests.Integer `position:"Body" name:"masterNum"`
+	MasterSpec string           `position:"Body" name:"masterSpec"`
+	PayModel   string           `position:"Body" name:"payModel"`
+}
+
+// CreateCellClusterOrderResponse is the response struct for api CreateCellClusterOrder
+type CreateCellClusterOrderResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	OrderId   string `json:"OrderId" xml:"OrderId"`
+}
+
+// CreateCreateCellClusterOrderRequest creates a request to invoke CreateCellClusterOrder API
+func CreateCreateCellClusterOrderRequest() (request *CreateCellClusterOrderRequest) {
+	request = &CreateCellClusterOrderRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreateCellClusterOrder", "/api/v2/realtime-compute/cell/buy", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateCellClusterOrderResponse creates a response to parse from CreateCellClusterOrder response
+func CreateCreateCellClusterOrderResponse() (response *CreateCellClusterOrderResponse) {
+	response = &CreateCellClusterOrderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/foas/create_cluster.go

@@ -0,0 +1,111 @@
+package foas
+
+//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"
+)
+
+// CreateCluster invokes the foas.CreateCluster API synchronously
+// api document: https://help.aliyun.com/api/foas/createcluster.html
+func (client *Client) CreateCluster(request *CreateClusterRequest) (response *CreateClusterResponse, err error) {
+	response = CreateCreateClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateClusterWithChan invokes the foas.CreateCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/createcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+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
+}
+
+// CreateClusterWithCallback invokes the foas.CreateCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/createcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+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
+}
+
+// CreateClusterRequest is the request struct for api CreateCluster
+type CreateClusterRequest struct {
+	*requests.RoaRequest
+	OrderId       string `position:"Body" name:"orderId"`
+	UserOssBucket string `position:"Body" name:"userOssBucket"`
+	DisplayName   string `position:"Body" name:"displayName"`
+	UserVpcId     string `position:"Body" name:"userVpcId"`
+	ZoneId        string `position:"Body" name:"zoneId"`
+	Description   string `position:"Body" name:"description"`
+	UserVSwitch   string `position:"Body" name:"userVSwitch"`
+}
+
+// CreateClusterResponse is the response struct for api CreateCluster
+type CreateClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	ClusterId string `json:"ClusterId" xml:"ClusterId"`
+}
+
+// CreateCreateClusterRequest creates a request to invoke CreateCluster API
+func CreateCreateClusterRequest() (request *CreateClusterRequest) {
+	request = &CreateClusterRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreateCluster", "/api/v2/clusters", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateClusterResponse creates a response to parse from CreateCluster response
+func CreateCreateClusterResponse() (response *CreateClusterResponse) {
+	response = &CreateClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/create_folder.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// CreateFolder invokes the foas.CreateFolder API synchronously
+// api document: https://help.aliyun.com/api/foas/createfolder.html
+func (client *Client) CreateFolder(request *CreateFolderRequest) (response *CreateFolderResponse, err error) {
+	response = CreateCreateFolderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateFolderWithChan invokes the foas.CreateFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/createfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateFolderWithChan(request *CreateFolderRequest) (<-chan *CreateFolderResponse, <-chan error) {
+	responseChan := make(chan *CreateFolderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateFolder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateFolderWithCallback invokes the foas.CreateFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/createfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateFolderWithCallback(request *CreateFolderRequest, callback func(response *CreateFolderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateFolderResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateFolder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateFolderRequest is the request struct for api CreateFolder
+type CreateFolderRequest struct {
+	*requests.RoaRequest
+	Path        string `position:"Body" name:"path"`
+	ProjectName string `position:"Path" name:"projectName"`
+}
+
+// CreateFolderResponse is the response struct for api CreateFolder
+type CreateFolderResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	FolderId  int64  `json:"FolderId" xml:"FolderId"`
+}
+
+// CreateCreateFolderRequest creates a request to invoke CreateFolder API
+func CreateCreateFolderRequest() (request *CreateFolderRequest) {
+	request = &CreateFolderRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreateFolder", "/api/v2/projects/[projectName]/folders", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateFolderResponse creates a response to parse from CreateFolder response
+func CreateCreateFolderResponse() (response *CreateFolderResponse) {
+	response = &CreateFolderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/foas/create_job.go

@@ -0,0 +1,116 @@
+package foas
+
+//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"
+)
+
+// CreateJob invokes the foas.CreateJob API synchronously
+// api document: https://help.aliyun.com/api/foas/createjob.html
+func (client *Client) CreateJob(request *CreateJobRequest) (response *CreateJobResponse, err error) {
+	response = CreateCreateJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateJobWithChan invokes the foas.CreateJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/createjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateJobWithChan(request *CreateJobRequest) (<-chan *CreateJobResponse, <-chan error) {
+	responseChan := make(chan *CreateJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateJobWithCallback invokes the foas.CreateJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/createjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateJobWithCallback(request *CreateJobRequest, callback func(response *CreateJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateJobResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateJobRequest is the request struct for api CreateJob
+type CreateJobRequest struct {
+	*requests.RoaRequest
+	QueueName     string           `position:"Body" name:"queueName"`
+	ProjectName   string           `position:"Path" name:"projectName"`
+	Code          string           `position:"Body" name:"code"`
+	Description   string           `position:"Body" name:"description"`
+	EngineVersion string           `position:"Body" name:"engineVersion"`
+	ClusterId     string           `position:"Body" name:"clusterId"`
+	Packages      string           `position:"Body" name:"packages"`
+	JobType       string           `position:"Body" name:"jobType"`
+	ApiType       string           `position:"Body" name:"apiType"`
+	FolderId      requests.Integer `position:"Body" name:"folderId"`
+	PlanJson      string           `position:"Body" name:"planJson"`
+	Properties    string           `position:"Body" name:"properties"`
+	JobName       string           `position:"Body" name:"jobName"`
+}
+
+// CreateJobResponse is the response struct for api CreateJob
+type CreateJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateJobRequest creates a request to invoke CreateJob API
+func CreateCreateJobRequest() (request *CreateJobRequest) {
+	request = &CreateJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreateJob", "/api/v2/projects/[projectName]/jobs", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateJobResponse creates a response to parse from CreateJob response
+func CreateCreateJobResponse() (response *CreateJobResponse) {
+	response = &CreateJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/foas/create_package.go

@@ -0,0 +1,114 @@
+package foas
+
+//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"
+)
+
+// CreatePackage invokes the foas.CreatePackage API synchronously
+// api document: https://help.aliyun.com/api/foas/createpackage.html
+func (client *Client) CreatePackage(request *CreatePackageRequest) (response *CreatePackageResponse, err error) {
+	response = CreateCreatePackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreatePackageWithChan invokes the foas.CreatePackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/createpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePackageWithChan(request *CreatePackageRequest) (<-chan *CreatePackageResponse, <-chan error) {
+	responseChan := make(chan *CreatePackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreatePackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreatePackageWithCallback invokes the foas.CreatePackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/createpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePackageWithCallback(request *CreatePackageRequest, callback func(response *CreatePackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreatePackageResponse
+		var err error
+		defer close(result)
+		response, err = client.CreatePackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreatePackageRequest is the request struct for api CreatePackage
+type CreatePackageRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	OssBucket   string `position:"Body" name:"ossBucket"`
+	OssOwner    string `position:"Body" name:"ossOwner"`
+	PackageName string `position:"Body" name:"packageName"`
+	OssEndpoint string `position:"Body" name:"ossEndpoint"`
+	Description string `position:"Body" name:"description"`
+	Tag         string `position:"Body" name:"tag"`
+	OriginName  string `position:"Body" name:"originName"`
+	Type        string `position:"Body" name:"type"`
+	OssPath     string `position:"Body" name:"ossPath"`
+	Md5         string `position:"Body" name:"md5"`
+}
+
+// CreatePackageResponse is the response struct for api CreatePackage
+type CreatePackageResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreatePackageRequest creates a request to invoke CreatePackage API
+func CreateCreatePackageRequest() (request *CreatePackageRequest) {
+	request = &CreatePackageRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreatePackage", "/api/v2/projects/[projectName]/packages", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreatePackageResponse creates a response to parse from CreatePackage response
+func CreateCreatePackageResponse() (response *CreatePackageResponse) {
+	response = &CreatePackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/foas/create_project.go

@@ -0,0 +1,109 @@
+package foas
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateProject invokes the foas.CreateProject API synchronously
+// api document: https://help.aliyun.com/api/foas/createproject.html
+func (client *Client) CreateProject(request *CreateProjectRequest) (response *CreateProjectResponse, err error) {
+	response = CreateCreateProjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateProjectWithChan invokes the foas.CreateProject API asynchronously
+// api document: https://help.aliyun.com/api/foas/createproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateProjectWithChan(request *CreateProjectRequest) (<-chan *CreateProjectResponse, <-chan error) {
+	responseChan := make(chan *CreateProjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateProject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateProjectWithCallback invokes the foas.CreateProject API asynchronously
+// api document: https://help.aliyun.com/api/foas/createproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateProjectWithCallback(request *CreateProjectRequest, callback func(response *CreateProjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateProjectResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateProject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateProjectRequest is the request struct for api CreateProject
+type CreateProjectRequest struct {
+	*requests.RoaRequest
+	ManagerIds  string `position:"Body" name:"managerIds"`
+	OrderId     string `position:"Body" name:"orderId"`
+	Name        string `position:"Body" name:"name"`
+	Description string `position:"Body" name:"description"`
+	ClusterId   string `position:"Body" name:"clusterId"`
+	DeployType  string `position:"Body" name:"deployType"`
+}
+
+// CreateProjectResponse is the response struct for api CreateProject
+type CreateProjectResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateProjectRequest creates a request to invoke CreateProject API
+func CreateCreateProjectRequest() (request *CreateProjectRequest) {
+	request = &CreateProjectRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreateProject", "/api/v2/projects", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateProjectResponse creates a response to parse from CreateProject response
+func CreateCreateProjectResponse() (response *CreateProjectResponse) {
+	response = &CreateProjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/foas/create_queue.go

@@ -0,0 +1,108 @@
+package foas
+
+//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"
+)
+
+// CreateQueue invokes the foas.CreateQueue API synchronously
+// api document: https://help.aliyun.com/api/foas/createqueue.html
+func (client *Client) CreateQueue(request *CreateQueueRequest) (response *CreateQueueResponse, err error) {
+	response = CreateCreateQueueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateQueueWithChan invokes the foas.CreateQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/createqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateQueueWithChan(request *CreateQueueRequest) (<-chan *CreateQueueResponse, <-chan error) {
+	responseChan := make(chan *CreateQueueResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateQueue(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateQueueWithCallback invokes the foas.CreateQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/createqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateQueueWithCallback(request *CreateQueueRequest, callback func(response *CreateQueueResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateQueueResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateQueue(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateQueueRequest is the request struct for api CreateQueue
+type CreateQueueRequest struct {
+	*requests.RoaRequest
+	QueueName string           `position:"Body" name:"queueName"`
+	MaxMemMB  requests.Integer `position:"Body" name:"maxMemMB"`
+	ClusterId string           `position:"Path" name:"clusterId"`
+	Gpu       requests.Integer `position:"Body" name:"gpu"`
+	MaxVcore  requests.Integer `position:"Body" name:"maxVcore"`
+}
+
+// CreateQueueResponse is the response struct for api CreateQueue
+type CreateQueueResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateQueueRequest creates a request to invoke CreateQueue API
+func CreateCreateQueueRequest() (request *CreateQueueRequest) {
+	request = &CreateQueueRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "CreateQueue", "/api/v2/clusters/[clusterId]/queue", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCreateQueueResponse creates a response to parse from CreateQueue response
+func CreateCreateQueueResponse() (response *CreateQueueResponse) {
+	response = &CreateQueueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/delete_folder.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// DeleteFolder invokes the foas.DeleteFolder API synchronously
+// api document: https://help.aliyun.com/api/foas/deletefolder.html
+func (client *Client) DeleteFolder(request *DeleteFolderRequest) (response *DeleteFolderResponse, err error) {
+	response = CreateDeleteFolderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteFolderWithChan invokes the foas.DeleteFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletefolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFolderWithChan(request *DeleteFolderRequest) (<-chan *DeleteFolderResponse, <-chan error) {
+	responseChan := make(chan *DeleteFolderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteFolder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteFolderWithCallback invokes the foas.DeleteFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletefolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFolderWithCallback(request *DeleteFolderRequest, callback func(response *DeleteFolderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteFolderResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteFolder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteFolderRequest is the request struct for api DeleteFolder
+type DeleteFolderRequest struct {
+	*requests.RoaRequest
+	Path        string `position:"Query" name:"path"`
+	ProjectName string `position:"Path" name:"projectName"`
+}
+
+// DeleteFolderResponse is the response struct for api DeleteFolder
+type DeleteFolderResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteFolderRequest creates a request to invoke DeleteFolder API
+func CreateDeleteFolderRequest() (request *DeleteFolderRequest) {
+	request = &DeleteFolderRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "DeleteFolder", "/api/v2/projects/[projectName]/folders", "foas", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteFolderResponse creates a response to parse from DeleteFolder response
+func CreateDeleteFolderResponse() (response *DeleteFolderResponse) {
+	response = &DeleteFolderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/delete_job.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// DeleteJob invokes the foas.DeleteJob API synchronously
+// api document: https://help.aliyun.com/api/foas/deletejob.html
+func (client *Client) DeleteJob(request *DeleteJobRequest) (response *DeleteJobResponse, err error) {
+	response = CreateDeleteJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteJobWithChan invokes the foas.DeleteJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteJobWithChan(request *DeleteJobRequest) (<-chan *DeleteJobResponse, <-chan error) {
+	responseChan := make(chan *DeleteJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteJobWithCallback invokes the foas.DeleteJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteJobWithCallback(request *DeleteJobRequest, callback func(response *DeleteJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteJobResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteJobRequest is the request struct for api DeleteJob
+type DeleteJobRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// DeleteJobResponse is the response struct for api DeleteJob
+type DeleteJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteJobRequest creates a request to invoke DeleteJob API
+func CreateDeleteJobRequest() (request *DeleteJobRequest) {
+	request = &DeleteJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "DeleteJob", "/api/v2/projects/[projectName]/jobs/[jobName]", "foas", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteJobResponse creates a response to parse from DeleteJob response
+func CreateDeleteJobResponse() (response *DeleteJobResponse) {
+	response = &DeleteJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/delete_package.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// DeletePackage invokes the foas.DeletePackage API synchronously
+// api document: https://help.aliyun.com/api/foas/deletepackage.html
+func (client *Client) DeletePackage(request *DeletePackageRequest) (response *DeletePackageResponse, err error) {
+	response = CreateDeletePackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeletePackageWithChan invokes the foas.DeletePackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletepackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePackageWithChan(request *DeletePackageRequest) (<-chan *DeletePackageResponse, <-chan error) {
+	responseChan := make(chan *DeletePackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeletePackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeletePackageWithCallback invokes the foas.DeletePackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletepackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePackageWithCallback(request *DeletePackageRequest, callback func(response *DeletePackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeletePackageResponse
+		var err error
+		defer close(result)
+		response, err = client.DeletePackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeletePackageRequest is the request struct for api DeletePackage
+type DeletePackageRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	PackageName string `position:"Path" name:"packageName"`
+}
+
+// DeletePackageResponse is the response struct for api DeletePackage
+type DeletePackageResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeletePackageRequest creates a request to invoke DeletePackage API
+func CreateDeletePackageRequest() (request *DeletePackageRequest) {
+	request = &DeletePackageRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "DeletePackage", "/api/v2/projects/[projectName]/packages/[packageName]", "foas", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeletePackageResponse creates a response to parse from DeletePackage response
+func CreateDeletePackageResponse() (response *DeletePackageResponse) {
+	response = &DeletePackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/foas/delete_project.go

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

+ 105 - 0
services/foas/delete_queue.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// DeleteQueue invokes the foas.DeleteQueue API synchronously
+// api document: https://help.aliyun.com/api/foas/deletequeue.html
+func (client *Client) DeleteQueue(request *DeleteQueueRequest) (response *DeleteQueueResponse, err error) {
+	response = CreateDeleteQueueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteQueueWithChan invokes the foas.DeleteQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletequeue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteQueueWithChan(request *DeleteQueueRequest) (<-chan *DeleteQueueResponse, <-chan error) {
+	responseChan := make(chan *DeleteQueueResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteQueue(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteQueueWithCallback invokes the foas.DeleteQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/deletequeue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteQueueWithCallback(request *DeleteQueueRequest, callback func(response *DeleteQueueResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteQueueResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteQueue(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteQueueRequest is the request struct for api DeleteQueue
+type DeleteQueueRequest struct {
+	*requests.RoaRequest
+	QueueName string `position:"Query" name:"queueName"`
+	ClusterId string `position:"Path" name:"clusterId"`
+}
+
+// DeleteQueueResponse is the response struct for api DeleteQueue
+type DeleteQueueResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteQueueRequest creates a request to invoke DeleteQueue API
+func CreateDeleteQueueRequest() (request *DeleteQueueRequest) {
+	request = &DeleteQueueRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "DeleteQueue", "/api/v2/clusters/[clusterId]/queue", "foas", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteQueueResponse creates a response to parse from DeleteQueue response
+func CreateDeleteQueueResponse() (response *DeleteQueueResponse) {
+	response = &DeleteQueueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/foas/destroy_cluster.go

@@ -0,0 +1,104 @@
+package foas
+
+//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"
+)
+
+// DestroyCluster invokes the foas.DestroyCluster API synchronously
+// api document: https://help.aliyun.com/api/foas/destroycluster.html
+func (client *Client) DestroyCluster(request *DestroyClusterRequest) (response *DestroyClusterResponse, err error) {
+	response = CreateDestroyClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DestroyClusterWithChan invokes the foas.DestroyCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/destroycluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DestroyClusterWithChan(request *DestroyClusterRequest) (<-chan *DestroyClusterResponse, <-chan error) {
+	responseChan := make(chan *DestroyClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DestroyCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DestroyClusterWithCallback invokes the foas.DestroyCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/destroycluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DestroyClusterWithCallback(request *DestroyClusterRequest, callback func(response *DestroyClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DestroyClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.DestroyCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DestroyClusterRequest is the request struct for api DestroyCluster
+type DestroyClusterRequest struct {
+	*requests.RoaRequest
+	ClusterId string `position:"Path" name:"clusterId"`
+}
+
+// DestroyClusterResponse is the response struct for api DestroyCluster
+type DestroyClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDestroyClusterRequest creates a request to invoke DestroyCluster API
+func CreateDestroyClusterRequest() (request *DestroyClusterRequest) {
+	request = &DestroyClusterRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "DestroyCluster", "/api/v2/clusters/[clusterId]", "foas", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDestroyClusterResponse creates a response to parse from DestroyCluster response
+func CreateDestroyClusterResponse() (response *DestroyClusterResponse) {
+	response = &DestroyClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 33 - 0
services/foas/endpoint.go

@@ -0,0 +1,33 @@
+package foas
+
+// EndpointMap Endpoint Data
+var EndpointMap map[string]string
+
+// EndpointType regional or central
+var EndpointType = "regional"
+
+// GetEndpointMap Get Endpoint Data Map
+func GetEndpointMap() map[string]string {
+	if EndpointMap == nil {
+		EndpointMap = map[string]string{
+			"ap-south-1":            "foas.ap-northeast-1.aliyuncs.com",
+			"cn-hongkong":           "foas.aliyuncs.com",
+			"eu-west-1":             "foas.ap-northeast-1.aliyuncs.com",
+			"ap-southeast-2":        "foas.ap-northeast-1.aliyuncs.com",
+			"eu-central-1":          "foas.ap-northeast-1.aliyuncs.com",
+			"cn-huhehaote":          "foas.aliyuncs.com",
+			"cn-shenzhen-finance-1": "foas.aliyuncs.com",
+			"ap-southeast-5":        "foas.ap-northeast-1.aliyuncs.com",
+			"us-east-1":             "foas.ap-northeast-1.aliyuncs.com",
+			"me-east-1":             "foas.ap-northeast-1.aliyuncs.com",
+			"us-west-1":             "foas.ap-northeast-1.aliyuncs.com",
+			"cn-chengdu":            "foas.aliyuncs.com",
+		}
+	}
+	return EndpointMap
+}
+
+// GetEndpointType Get Endpoint Type Value
+func GetEndpointType() string {
+	return EndpointType
+}

+ 107 - 0
services/foas/expand_cluster.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// ExpandCluster invokes the foas.ExpandCluster API synchronously
+// api document: https://help.aliyun.com/api/foas/expandcluster.html
+func (client *Client) ExpandCluster(request *ExpandClusterRequest) (response *ExpandClusterResponse, err error) {
+	response = CreateExpandClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ExpandClusterWithChan invokes the foas.ExpandCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/expandcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExpandClusterWithChan(request *ExpandClusterRequest) (<-chan *ExpandClusterResponse, <-chan error) {
+	responseChan := make(chan *ExpandClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ExpandCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ExpandClusterWithCallback invokes the foas.ExpandCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/expandcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExpandClusterWithCallback(request *ExpandClusterRequest, callback func(response *ExpandClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ExpandClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.ExpandCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ExpandClusterRequest is the request struct for api ExpandCluster
+type ExpandClusterRequest struct {
+	*requests.RoaRequest
+	Count       requests.Integer `position:"Body" name:"count"`
+	Model       string           `position:"Body" name:"model"`
+	UserVSwitch string           `position:"Body" name:"userVSwitch"`
+	ClusterId   string           `position:"Path" name:"clusterId"`
+}
+
+// ExpandClusterResponse is the response struct for api ExpandCluster
+type ExpandClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateExpandClusterRequest creates a request to invoke ExpandCluster API
+func CreateExpandClusterRequest() (request *ExpandClusterRequest) {
+	request = &ExpandClusterRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ExpandCluster", "/api/v2/clusters/[clusterId]/expand", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateExpandClusterResponse creates a response to parse from ExpandCluster response
+func CreateExpandClusterResponse() (response *ExpandClusterResponse) {
+	response = &ExpandClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/get_cluster_details.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// GetClusterDetails invokes the foas.GetClusterDetails API synchronously
+// api document: https://help.aliyun.com/api/foas/getclusterdetails.html
+func (client *Client) GetClusterDetails(request *GetClusterDetailsRequest) (response *GetClusterDetailsResponse, err error) {
+	response = CreateGetClusterDetailsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetClusterDetailsWithChan invokes the foas.GetClusterDetails API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterdetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterDetailsWithChan(request *GetClusterDetailsRequest) (<-chan *GetClusterDetailsResponse, <-chan error) {
+	responseChan := make(chan *GetClusterDetailsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetClusterDetails(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetClusterDetailsWithCallback invokes the foas.GetClusterDetails API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterdetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterDetailsWithCallback(request *GetClusterDetailsRequest, callback func(response *GetClusterDetailsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetClusterDetailsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetClusterDetails(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetClusterDetailsRequest is the request struct for api GetClusterDetails
+type GetClusterDetailsRequest struct {
+	*requests.RoaRequest
+	ClusterId string `position:"Path" name:"clusterId"`
+}
+
+// GetClusterDetailsResponse is the response struct for api GetClusterDetails
+type GetClusterDetailsResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Details   Details `json:"Details" xml:"Details"`
+}
+
+// CreateGetClusterDetailsRequest creates a request to invoke GetClusterDetails API
+func CreateGetClusterDetailsRequest() (request *GetClusterDetailsRequest) {
+	request = &GetClusterDetailsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetClusterDetails", "/api/v2/clusters/[clusterId]/details", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetClusterDetailsResponse creates a response to parse from GetClusterDetails response
+func CreateGetClusterDetailsResponse() (response *GetClusterDetailsResponse) {
+	response = &GetClusterDetailsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/get_cluster_engine_versions.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// GetClusterEngineVersions invokes the foas.GetClusterEngineVersions API synchronously
+// api document: https://help.aliyun.com/api/foas/getclusterengineversions.html
+func (client *Client) GetClusterEngineVersions(request *GetClusterEngineVersionsRequest) (response *GetClusterEngineVersionsResponse, err error) {
+	response = CreateGetClusterEngineVersionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetClusterEngineVersionsWithChan invokes the foas.GetClusterEngineVersions API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterengineversions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterEngineVersionsWithChan(request *GetClusterEngineVersionsRequest) (<-chan *GetClusterEngineVersionsResponse, <-chan error) {
+	responseChan := make(chan *GetClusterEngineVersionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetClusterEngineVersions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetClusterEngineVersionsWithCallback invokes the foas.GetClusterEngineVersions API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterengineversions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterEngineVersionsWithCallback(request *GetClusterEngineVersionsRequest, callback func(response *GetClusterEngineVersionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetClusterEngineVersionsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetClusterEngineVersions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetClusterEngineVersionsRequest is the request struct for api GetClusterEngineVersions
+type GetClusterEngineVersionsRequest struct {
+	*requests.RoaRequest
+	ClusterId string `position:"Path" name:"clusterId"`
+}
+
+// GetClusterEngineVersionsResponse is the response struct for api GetClusterEngineVersions
+type GetClusterEngineVersionsResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	EngineVersions EngineVersions `json:"EngineVersions" xml:"EngineVersions"`
+}
+
+// CreateGetClusterEngineVersionsRequest creates a request to invoke GetClusterEngineVersions API
+func CreateGetClusterEngineVersionsRequest() (request *GetClusterEngineVersionsRequest) {
+	request = &GetClusterEngineVersionsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetClusterEngineVersions", "/api/v2/clusters/[clusterId]/engineversions", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetClusterEngineVersionsResponse creates a response to parse from GetClusterEngineVersions response
+func CreateGetClusterEngineVersionsResponse() (response *GetClusterEngineVersionsResponse) {
+	response = &GetClusterEngineVersionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/get_cluster_metrics.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// GetClusterMetrics invokes the foas.GetClusterMetrics API synchronously
+// api document: https://help.aliyun.com/api/foas/getclustermetrics.html
+func (client *Client) GetClusterMetrics(request *GetClusterMetricsRequest) (response *GetClusterMetricsResponse, err error) {
+	response = CreateGetClusterMetricsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetClusterMetricsWithChan invokes the foas.GetClusterMetrics API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclustermetrics.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterMetricsWithChan(request *GetClusterMetricsRequest) (<-chan *GetClusterMetricsResponse, <-chan error) {
+	responseChan := make(chan *GetClusterMetricsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetClusterMetrics(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetClusterMetricsWithCallback invokes the foas.GetClusterMetrics API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclustermetrics.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterMetricsWithCallback(request *GetClusterMetricsRequest, callback func(response *GetClusterMetricsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetClusterMetricsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetClusterMetrics(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetClusterMetricsRequest is the request struct for api GetClusterMetrics
+type GetClusterMetricsRequest struct {
+	*requests.RoaRequest
+	ClusterId  string `position:"Path" name:"clusterId"`
+	MetricJson string `position:"Body" name:"metricJson"`
+}
+
+// GetClusterMetricsResponse is the response struct for api GetClusterMetrics
+type GetClusterMetricsResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Metrics   MetricsInGetClusterMetrics `json:"Metrics" xml:"Metrics"`
+}
+
+// CreateGetClusterMetricsRequest creates a request to invoke GetClusterMetrics API
+func CreateGetClusterMetricsRequest() (request *GetClusterMetricsRequest) {
+	request = &GetClusterMetricsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetClusterMetrics", "/api/v2/clusters/[clusterId]/metrics", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateGetClusterMetricsResponse creates a response to parse from GetClusterMetrics response
+func CreateGetClusterMetricsResponse() (response *GetClusterMetricsResponse) {
+	response = &GetClusterMetricsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/get_cluster_queue_info.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// GetClusterQueueInfo invokes the foas.GetClusterQueueInfo API synchronously
+// api document: https://help.aliyun.com/api/foas/getclusterqueueinfo.html
+func (client *Client) GetClusterQueueInfo(request *GetClusterQueueInfoRequest) (response *GetClusterQueueInfoResponse, err error) {
+	response = CreateGetClusterQueueInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetClusterQueueInfoWithChan invokes the foas.GetClusterQueueInfo API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterqueueinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterQueueInfoWithChan(request *GetClusterQueueInfoRequest) (<-chan *GetClusterQueueInfoResponse, <-chan error) {
+	responseChan := make(chan *GetClusterQueueInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetClusterQueueInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetClusterQueueInfoWithCallback invokes the foas.GetClusterQueueInfo API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterqueueinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterQueueInfoWithCallback(request *GetClusterQueueInfoRequest, callback func(response *GetClusterQueueInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetClusterQueueInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.GetClusterQueueInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetClusterQueueInfoRequest is the request struct for api GetClusterQueueInfo
+type GetClusterQueueInfoRequest struct {
+	*requests.RoaRequest
+	ClusterId string `position:"Path" name:"clusterId"`
+}
+
+// GetClusterQueueInfoResponse is the response struct for api GetClusterQueueInfo
+type GetClusterQueueInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string                      `json:"RequestId" xml:"RequestId"`
+	Queues    QueuesInGetClusterQueueInfo `json:"Queues" xml:"Queues"`
+}
+
+// CreateGetClusterQueueInfoRequest creates a request to invoke GetClusterQueueInfo API
+func CreateGetClusterQueueInfoRequest() (request *GetClusterQueueInfoRequest) {
+	request = &GetClusterQueueInfoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetClusterQueueInfo", "/api/v2/clusters/[clusterId]/queueinfo", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetClusterQueueInfoResponse creates a response to parse from GetClusterQueueInfo response
+func CreateGetClusterQueueInfoResponse() (response *GetClusterQueueInfoResponse) {
+	response = &GetClusterQueueInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/get_cluster_resource.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// GetClusterResource invokes the foas.GetClusterResource API synchronously
+// api document: https://help.aliyun.com/api/foas/getclusterresource.html
+func (client *Client) GetClusterResource(request *GetClusterResourceRequest) (response *GetClusterResourceResponse, err error) {
+	response = CreateGetClusterResourceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetClusterResourceWithChan invokes the foas.GetClusterResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterResourceWithChan(request *GetClusterResourceRequest) (<-chan *GetClusterResourceResponse, <-chan error) {
+	responseChan := make(chan *GetClusterResourceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetClusterResource(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetClusterResourceWithCallback invokes the foas.GetClusterResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/getclusterresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetClusterResourceWithCallback(request *GetClusterResourceRequest, callback func(response *GetClusterResourceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetClusterResourceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetClusterResource(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetClusterResourceRequest is the request struct for api GetClusterResource
+type GetClusterResourceRequest struct {
+	*requests.RoaRequest
+	ClusterId string `position:"Path" name:"clusterId"`
+}
+
+// GetClusterResourceResponse is the response struct for api GetClusterResource
+type GetClusterResourceResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Resource  Resource `json:"Resource" xml:"Resource"`
+}
+
+// CreateGetClusterResourceRequest creates a request to invoke GetClusterResource API
+func CreateGetClusterResourceRequest() (request *GetClusterResourceRequest) {
+	request = &GetClusterResourceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetClusterResource", "/api/v2/clusters/[clusterId]/resource", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetClusterResourceResponse creates a response to parse from GetClusterResource response
+func CreateGetClusterResourceResponse() (response *GetClusterResourceResponse) {
+	response = &GetClusterResourceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/get_folder.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// GetFolder invokes the foas.GetFolder API synchronously
+// api document: https://help.aliyun.com/api/foas/getfolder.html
+func (client *Client) GetFolder(request *GetFolderRequest) (response *GetFolderResponse, err error) {
+	response = CreateGetFolderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetFolderWithChan invokes the foas.GetFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/getfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetFolderWithChan(request *GetFolderRequest) (<-chan *GetFolderResponse, <-chan error) {
+	responseChan := make(chan *GetFolderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetFolder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetFolderWithCallback invokes the foas.GetFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/getfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetFolderWithCallback(request *GetFolderRequest, callback func(response *GetFolderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetFolderResponse
+		var err error
+		defer close(result)
+		response, err = client.GetFolder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetFolderRequest is the request struct for api GetFolder
+type GetFolderRequest struct {
+	*requests.RoaRequest
+	Path        string `position:"Query" name:"path"`
+	ProjectName string `position:"Path" name:"projectName"`
+}
+
+// GetFolderResponse is the response struct for api GetFolder
+type GetFolderResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Folder    Folder `json:"Folder" xml:"Folder"`
+}
+
+// CreateGetFolderRequest creates a request to invoke GetFolder API
+func CreateGetFolderRequest() (request *GetFolderRequest) {
+	request = &GetFolderRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetFolder", "/api/v2/projects/[projectName]/folders", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetFolderResponse creates a response to parse from GetFolder response
+func CreateGetFolderResponse() (response *GetFolderResponse) {
+	response = &GetFolderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstance invokes the foas.GetInstance API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstance.html
+func (client *Client) GetInstance(request *GetInstanceRequest) (response *GetInstanceResponse, err error) {
+	response = CreateGetInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceWithChan invokes the foas.GetInstance API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceWithChan(request *GetInstanceRequest) (<-chan *GetInstanceResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceWithCallback invokes the foas.GetInstance API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceWithCallback(request *GetInstanceRequest, callback func(response *GetInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceRequest is the request struct for api GetInstance
+type GetInstanceRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceResponse is the response struct for api GetInstance
+type GetInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Instance  Instance `json:"Instance" xml:"Instance"`
+}
+
+// CreateGetInstanceRequest creates a request to invoke GetInstance API
+func CreateGetInstanceRequest() (request *GetInstanceRequest) {
+	request = &GetInstanceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstance", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceResponse creates a response to parse from GetInstance response
+func CreateGetInstanceResponse() (response *GetInstanceResponse) {
+	response = &GetInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_checkpoint.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceCheckpoint invokes the foas.GetInstanceCheckpoint API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancecheckpoint.html
+func (client *Client) GetInstanceCheckpoint(request *GetInstanceCheckpointRequest) (response *GetInstanceCheckpointResponse, err error) {
+	response = CreateGetInstanceCheckpointResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceCheckpointWithChan invokes the foas.GetInstanceCheckpoint API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancecheckpoint.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceCheckpointWithChan(request *GetInstanceCheckpointRequest) (<-chan *GetInstanceCheckpointResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceCheckpointResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceCheckpoint(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceCheckpointWithCallback invokes the foas.GetInstanceCheckpoint API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancecheckpoint.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceCheckpointWithCallback(request *GetInstanceCheckpointRequest, callback func(response *GetInstanceCheckpointResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceCheckpointResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceCheckpoint(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceCheckpointRequest is the request struct for api GetInstanceCheckpoint
+type GetInstanceCheckpointRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceCheckpointResponse is the response struct for api GetInstanceCheckpoint
+type GetInstanceCheckpointResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	Checkpoints string `json:"Checkpoints" xml:"Checkpoints"`
+}
+
+// CreateGetInstanceCheckpointRequest creates a request to invoke GetInstanceCheckpoint API
+func CreateGetInstanceCheckpointRequest() (request *GetInstanceCheckpointRequest) {
+	request = &GetInstanceCheckpointRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceCheckpoint", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/checkpoints", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceCheckpointResponse creates a response to parse from GetInstanceCheckpoint response
+func CreateGetInstanceCheckpointResponse() (response *GetInstanceCheckpointResponse) {
+	response = &GetInstanceCheckpointResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_config.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceConfig invokes the foas.GetInstanceConfig API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceconfig.html
+func (client *Client) GetInstanceConfig(request *GetInstanceConfigRequest) (response *GetInstanceConfigResponse, err error) {
+	response = CreateGetInstanceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceConfigWithChan invokes the foas.GetInstanceConfig API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceConfigWithChan(request *GetInstanceConfigRequest) (<-chan *GetInstanceConfigResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceConfigWithCallback invokes the foas.GetInstanceConfig API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceConfigWithCallback(request *GetInstanceConfigRequest, callback func(response *GetInstanceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceConfigRequest is the request struct for api GetInstanceConfig
+type GetInstanceConfigRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceConfigResponse is the response struct for api GetInstanceConfig
+type GetInstanceConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Config    string `json:"Config" xml:"Config"`
+}
+
+// CreateGetInstanceConfigRequest creates a request to invoke GetInstanceConfig API
+func CreateGetInstanceConfigRequest() (request *GetInstanceConfigRequest) {
+	request = &GetInstanceConfigRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceConfig", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/config", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceConfigResponse creates a response to parse from GetInstanceConfig response
+func CreateGetInstanceConfigResponse() (response *GetInstanceConfigResponse) {
+	response = &GetInstanceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_detail.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceDetail invokes the foas.GetInstanceDetail API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancedetail.html
+func (client *Client) GetInstanceDetail(request *GetInstanceDetailRequest) (response *GetInstanceDetailResponse, err error) {
+	response = CreateGetInstanceDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceDetailWithChan invokes the foas.GetInstanceDetail API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceDetailWithChan(request *GetInstanceDetailRequest) (<-chan *GetInstanceDetailResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceDetailWithCallback invokes the foas.GetInstanceDetail API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceDetailWithCallback(request *GetInstanceDetailRequest, callback func(response *GetInstanceDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceDetailRequest is the request struct for api GetInstanceDetail
+type GetInstanceDetailRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceDetailResponse is the response struct for api GetInstanceDetail
+type GetInstanceDetailResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Detail    string `json:"Detail" xml:"Detail"`
+}
+
+// CreateGetInstanceDetailRequest creates a request to invoke GetInstanceDetail API
+func CreateGetInstanceDetailRequest() (request *GetInstanceDetailRequest) {
+	request = &GetInstanceDetailRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceDetail", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/details", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceDetailResponse creates a response to parse from GetInstanceDetail response
+func CreateGetInstanceDetailResponse() (response *GetInstanceDetailResponse) {
+	response = &GetInstanceDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_exceptions.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceExceptions invokes the foas.GetInstanceExceptions API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceexceptions.html
+func (client *Client) GetInstanceExceptions(request *GetInstanceExceptionsRequest) (response *GetInstanceExceptionsResponse, err error) {
+	response = CreateGetInstanceExceptionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceExceptionsWithChan invokes the foas.GetInstanceExceptions API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceexceptions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceExceptionsWithChan(request *GetInstanceExceptionsRequest) (<-chan *GetInstanceExceptionsResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceExceptionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceExceptions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceExceptionsWithCallback invokes the foas.GetInstanceExceptions API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceexceptions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceExceptionsWithCallback(request *GetInstanceExceptionsRequest, callback func(response *GetInstanceExceptionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceExceptionsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceExceptions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceExceptionsRequest is the request struct for api GetInstanceExceptions
+type GetInstanceExceptionsRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceExceptionsResponse is the response struct for api GetInstanceExceptions
+type GetInstanceExceptionsResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	Exceptions string `json:"Exceptions" xml:"Exceptions"`
+}
+
+// CreateGetInstanceExceptionsRequest creates a request to invoke GetInstanceExceptions API
+func CreateGetInstanceExceptionsRequest() (request *GetInstanceExceptionsRequest) {
+	request = &GetInstanceExceptionsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceExceptions", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/exceptions", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceExceptionsResponse creates a response to parse from GetInstanceExceptions response
+func CreateGetInstanceExceptionsResponse() (response *GetInstanceExceptionsResponse) {
+	response = &GetInstanceExceptionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_final_state.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceFinalState invokes the foas.GetInstanceFinalState API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancefinalstate.html
+func (client *Client) GetInstanceFinalState(request *GetInstanceFinalStateRequest) (response *GetInstanceFinalStateResponse, err error) {
+	response = CreateGetInstanceFinalStateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceFinalStateWithChan invokes the foas.GetInstanceFinalState API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancefinalstate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceFinalStateWithChan(request *GetInstanceFinalStateRequest) (<-chan *GetInstanceFinalStateResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceFinalStateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceFinalState(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceFinalStateWithCallback invokes the foas.GetInstanceFinalState API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancefinalstate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceFinalStateWithCallback(request *GetInstanceFinalStateRequest, callback func(response *GetInstanceFinalStateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceFinalStateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceFinalState(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceFinalStateRequest is the request struct for api GetInstanceFinalState
+type GetInstanceFinalStateRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceFinalStateResponse is the response struct for api GetInstanceFinalState
+type GetInstanceFinalStateResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	Finalstate string `json:"Finalstate" xml:"Finalstate"`
+}
+
+// CreateGetInstanceFinalStateRequest creates a request to invoke GetInstanceFinalState API
+func CreateGetInstanceFinalStateRequest() (request *GetInstanceFinalStateRequest) {
+	request = &GetInstanceFinalStateRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceFinalState", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/finalstate", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceFinalStateResponse creates a response to parse from GetInstanceFinalState response
+func CreateGetInstanceFinalStateResponse() (response *GetInstanceFinalStateResponse) {
+	response = &GetInstanceFinalStateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/foas/get_instance_history_auto_scale_plan_content.go

@@ -0,0 +1,108 @@
+package foas
+
+//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"
+)
+
+// GetInstanceHistoryAutoScalePlanContent invokes the foas.GetInstanceHistoryAutoScalePlanContent API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancehistoryautoscaleplancontent.html
+func (client *Client) GetInstanceHistoryAutoScalePlanContent(request *GetInstanceHistoryAutoScalePlanContentRequest) (response *GetInstanceHistoryAutoScalePlanContentResponse, err error) {
+	response = CreateGetInstanceHistoryAutoScalePlanContentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceHistoryAutoScalePlanContentWithChan invokes the foas.GetInstanceHistoryAutoScalePlanContent API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancehistoryautoscaleplancontent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceHistoryAutoScalePlanContentWithChan(request *GetInstanceHistoryAutoScalePlanContentRequest) (<-chan *GetInstanceHistoryAutoScalePlanContentResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceHistoryAutoScalePlanContentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceHistoryAutoScalePlanContent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceHistoryAutoScalePlanContentWithCallback invokes the foas.GetInstanceHistoryAutoScalePlanContent API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancehistoryautoscaleplancontent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceHistoryAutoScalePlanContentWithCallback(request *GetInstanceHistoryAutoScalePlanContentRequest, callback func(response *GetInstanceHistoryAutoScalePlanContentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceHistoryAutoScalePlanContentResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceHistoryAutoScalePlanContent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceHistoryAutoScalePlanContentRequest is the request struct for api GetInstanceHistoryAutoScalePlanContent
+type GetInstanceHistoryAutoScalePlanContentRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	PlanName    string           `position:"Query" name:"planName"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceHistoryAutoScalePlanContentResponse is the response struct for api GetInstanceHistoryAutoScalePlanContent
+type GetInstanceHistoryAutoScalePlanContentResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	PlanContent string `json:"PlanContent" xml:"PlanContent"`
+}
+
+// CreateGetInstanceHistoryAutoScalePlanContentRequest creates a request to invoke GetInstanceHistoryAutoScalePlanContent API
+func CreateGetInstanceHistoryAutoScalePlanContentRequest() (request *GetInstanceHistoryAutoScalePlanContentRequest) {
+	request = &GetInstanceHistoryAutoScalePlanContentRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceHistoryAutoScalePlanContent", "/api/v2/projects/[projectName]/jobs/[jobName]/instance/[instanceId]/autoscale/plancontent", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceHistoryAutoScalePlanContentResponse creates a response to parse from GetInstanceHistoryAutoScalePlanContent response
+func CreateGetInstanceHistoryAutoScalePlanContentResponse() (response *GetInstanceHistoryAutoScalePlanContentResponse) {
+	response = &GetInstanceHistoryAutoScalePlanContentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_history_auto_scale_plan_list.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceHistoryAutoScalePlanList invokes the foas.GetInstanceHistoryAutoScalePlanList API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancehistoryautoscaleplanlist.html
+func (client *Client) GetInstanceHistoryAutoScalePlanList(request *GetInstanceHistoryAutoScalePlanListRequest) (response *GetInstanceHistoryAutoScalePlanListResponse, err error) {
+	response = CreateGetInstanceHistoryAutoScalePlanListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceHistoryAutoScalePlanListWithChan invokes the foas.GetInstanceHistoryAutoScalePlanList API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancehistoryautoscaleplanlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceHistoryAutoScalePlanListWithChan(request *GetInstanceHistoryAutoScalePlanListRequest) (<-chan *GetInstanceHistoryAutoScalePlanListResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceHistoryAutoScalePlanListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceHistoryAutoScalePlanList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceHistoryAutoScalePlanListWithCallback invokes the foas.GetInstanceHistoryAutoScalePlanList API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancehistoryautoscaleplanlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceHistoryAutoScalePlanListWithCallback(request *GetInstanceHistoryAutoScalePlanListRequest, callback func(response *GetInstanceHistoryAutoScalePlanListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceHistoryAutoScalePlanListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceHistoryAutoScalePlanList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceHistoryAutoScalePlanListRequest is the request struct for api GetInstanceHistoryAutoScalePlanList
+type GetInstanceHistoryAutoScalePlanListRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceHistoryAutoScalePlanListResponse is the response struct for api GetInstanceHistoryAutoScalePlanList
+type GetInstanceHistoryAutoScalePlanListResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	PlanList  PlanList `json:"PlanList" xml:"PlanList"`
+}
+
+// CreateGetInstanceHistoryAutoScalePlanListRequest creates a request to invoke GetInstanceHistoryAutoScalePlanList API
+func CreateGetInstanceHistoryAutoScalePlanListRequest() (request *GetInstanceHistoryAutoScalePlanListRequest) {
+	request = &GetInstanceHistoryAutoScalePlanListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceHistoryAutoScalePlanList", "/api/v2/projects/[projectName]/jobs/[jobName]/instance/[instanceId]/autoscale/planlist", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceHistoryAutoScalePlanListResponse creates a response to parse from GetInstanceHistoryAutoScalePlanList response
+func CreateGetInstanceHistoryAutoScalePlanListResponse() (response *GetInstanceHistoryAutoScalePlanListResponse) {
+	response = &GetInstanceHistoryAutoScalePlanListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/foas/get_instance_metric.go

@@ -0,0 +1,108 @@
+package foas
+
+//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"
+)
+
+// GetInstanceMetric invokes the foas.GetInstanceMetric API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancemetric.html
+func (client *Client) GetInstanceMetric(request *GetInstanceMetricRequest) (response *GetInstanceMetricResponse, err error) {
+	response = CreateGetInstanceMetricResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceMetricWithChan invokes the foas.GetInstanceMetric API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancemetric.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceMetricWithChan(request *GetInstanceMetricRequest) (<-chan *GetInstanceMetricResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceMetricResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceMetric(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceMetricWithCallback invokes the foas.GetInstanceMetric API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancemetric.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceMetricWithCallback(request *GetInstanceMetricRequest, callback func(response *GetInstanceMetricResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceMetricResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceMetric(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceMetricRequest is the request struct for api GetInstanceMetric
+type GetInstanceMetricRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Query" name:"instanceId"`
+	MetricJson  string           `position:"Body" name:"metricJson"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceMetricResponse is the response struct for api GetInstanceMetric
+type GetInstanceMetricResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Metrics   MetricsInGetInstanceMetric `json:"Metrics" xml:"Metrics"`
+}
+
+// CreateGetInstanceMetricRequest creates a request to invoke GetInstanceMetric API
+func CreateGetInstanceMetricRequest() (request *GetInstanceMetricRequest) {
+	request = &GetInstanceMetricRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceMetric", "/api/v2/projects/[projectName]/jobs/[jobName]/metric", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateGetInstanceMetricResponse creates a response to parse from GetInstanceMetric response
+func CreateGetInstanceMetricResponse() (response *GetInstanceMetricResponse) {
+	response = &GetInstanceMetricResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_resource.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceResource invokes the foas.GetInstanceResource API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceresource.html
+func (client *Client) GetInstanceResource(request *GetInstanceResourceRequest) (response *GetInstanceResourceResponse, err error) {
+	response = CreateGetInstanceResourceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceResourceWithChan invokes the foas.GetInstanceResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceResourceWithChan(request *GetInstanceResourceRequest) (<-chan *GetInstanceResourceResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceResourceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceResource(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceResourceWithCallback invokes the foas.GetInstanceResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstanceresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceResourceWithCallback(request *GetInstanceResourceRequest, callback func(response *GetInstanceResourceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceResourceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceResource(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceResourceRequest is the request struct for api GetInstanceResource
+type GetInstanceResourceRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceResourceResponse is the response struct for api GetInstanceResource
+type GetInstanceResourceResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Resource  Resource `json:"Resource" xml:"Resource"`
+}
+
+// CreateGetInstanceResourceRequest creates a request to invoke GetInstanceResource API
+func CreateGetInstanceResourceRequest() (request *GetInstanceResourceRequest) {
+	request = &GetInstanceResourceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceResource", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/resource", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceResourceResponse creates a response to parse from GetInstanceResource response
+func CreateGetInstanceResourceResponse() (response *GetInstanceResourceResponse) {
+	response = &GetInstanceResourceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/get_instance_run_summary.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// GetInstanceRunSummary invokes the foas.GetInstanceRunSummary API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancerunsummary.html
+func (client *Client) GetInstanceRunSummary(request *GetInstanceRunSummaryRequest) (response *GetInstanceRunSummaryResponse, err error) {
+	response = CreateGetInstanceRunSummaryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceRunSummaryWithChan invokes the foas.GetInstanceRunSummary API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancerunsummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceRunSummaryWithChan(request *GetInstanceRunSummaryRequest) (<-chan *GetInstanceRunSummaryResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceRunSummaryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceRunSummary(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceRunSummaryWithCallback invokes the foas.GetInstanceRunSummary API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancerunsummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceRunSummaryWithCallback(request *GetInstanceRunSummaryRequest, callback func(response *GetInstanceRunSummaryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceRunSummaryResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceRunSummary(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceRunSummaryRequest is the request struct for api GetInstanceRunSummary
+type GetInstanceRunSummaryRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceRunSummaryResponse is the response struct for api GetInstanceRunSummary
+type GetInstanceRunSummaryResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	RunSummary RunSummary `json:"RunSummary" xml:"RunSummary"`
+}
+
+// CreateGetInstanceRunSummaryRequest creates a request to invoke GetInstanceRunSummary API
+func CreateGetInstanceRunSummaryRequest() (request *GetInstanceRunSummaryRequest) {
+	request = &GetInstanceRunSummaryRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceRunSummary", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/runsummary", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceRunSummaryResponse creates a response to parse from GetInstanceRunSummary response
+func CreateGetInstanceRunSummaryResponse() (response *GetInstanceRunSummaryResponse) {
+	response = &GetInstanceRunSummaryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/foas/get_instance_vertex_task_managers.go

@@ -0,0 +1,108 @@
+package foas
+
+//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"
+)
+
+// GetInstanceVertexTaskManagers invokes the foas.GetInstanceVertexTaskManagers API synchronously
+// api document: https://help.aliyun.com/api/foas/getinstancevertextaskmanagers.html
+func (client *Client) GetInstanceVertexTaskManagers(request *GetInstanceVertexTaskManagersRequest) (response *GetInstanceVertexTaskManagersResponse, err error) {
+	response = CreateGetInstanceVertexTaskManagersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceVertexTaskManagersWithChan invokes the foas.GetInstanceVertexTaskManagers API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancevertextaskmanagers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceVertexTaskManagersWithChan(request *GetInstanceVertexTaskManagersRequest) (<-chan *GetInstanceVertexTaskManagersResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceVertexTaskManagersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceVertexTaskManagers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceVertexTaskManagersWithCallback invokes the foas.GetInstanceVertexTaskManagers API asynchronously
+// api document: https://help.aliyun.com/api/foas/getinstancevertextaskmanagers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceVertexTaskManagersWithCallback(request *GetInstanceVertexTaskManagersRequest, callback func(response *GetInstanceVertexTaskManagersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceVertexTaskManagersResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceVertexTaskManagers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceVertexTaskManagersRequest is the request struct for api GetInstanceVertexTaskManagers
+type GetInstanceVertexTaskManagersRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	VertexId    string           `position:"Path" name:"vertexId"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// GetInstanceVertexTaskManagersResponse is the response struct for api GetInstanceVertexTaskManagers
+type GetInstanceVertexTaskManagersResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	TaskManagers string `json:"TaskManagers" xml:"TaskManagers"`
+}
+
+// CreateGetInstanceVertexTaskManagersRequest creates a request to invoke GetInstanceVertexTaskManagers API
+func CreateGetInstanceVertexTaskManagersRequest() (request *GetInstanceVertexTaskManagersRequest) {
+	request = &GetInstanceVertexTaskManagersRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetInstanceVertexTaskManagers", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/vertices/[vertexId]/taskmanagers", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetInstanceVertexTaskManagersResponse creates a response to parse from GetInstanceVertexTaskManagers response
+func CreateGetInstanceVertexTaskManagersResponse() (response *GetInstanceVertexTaskManagersResponse) {
+	response = &GetInstanceVertexTaskManagersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/get_job.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// GetJob invokes the foas.GetJob API synchronously
+// api document: https://help.aliyun.com/api/foas/getjob.html
+func (client *Client) GetJob(request *GetJobRequest) (response *GetJobResponse, err error) {
+	response = CreateGetJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobWithChan invokes the foas.GetJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/getjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobWithChan(request *GetJobRequest) (<-chan *GetJobResponse, <-chan error) {
+	responseChan := make(chan *GetJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobWithCallback invokes the foas.GetJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/getjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobWithCallback(request *GetJobRequest, callback func(response *GetJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobRequest is the request struct for api GetJob
+type GetJobRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// GetJobResponse is the response struct for api GetJob
+type GetJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Job       Job    `json:"Job" xml:"Job"`
+}
+
+// CreateGetJobRequest creates a request to invoke GetJob API
+func CreateGetJobRequest() (request *GetJobRequest) {
+	request = &GetJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetJob", "/api/v2/projects/[projectName]/jobs/[jobName]", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetJobResponse creates a response to parse from GetJob response
+func CreateGetJobResponse() (response *GetJobResponse) {
+	response = &GetJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/get_job_latest_auto_scale_plan.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// GetJobLatestAutoScalePlan invokes the foas.GetJobLatestAutoScalePlan API synchronously
+// api document: https://help.aliyun.com/api/foas/getjoblatestautoscaleplan.html
+func (client *Client) GetJobLatestAutoScalePlan(request *GetJobLatestAutoScalePlanRequest) (response *GetJobLatestAutoScalePlanResponse, err error) {
+	response = CreateGetJobLatestAutoScalePlanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobLatestAutoScalePlanWithChan invokes the foas.GetJobLatestAutoScalePlan API asynchronously
+// api document: https://help.aliyun.com/api/foas/getjoblatestautoscaleplan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobLatestAutoScalePlanWithChan(request *GetJobLatestAutoScalePlanRequest) (<-chan *GetJobLatestAutoScalePlanResponse, <-chan error) {
+	responseChan := make(chan *GetJobLatestAutoScalePlanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobLatestAutoScalePlan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobLatestAutoScalePlanWithCallback invokes the foas.GetJobLatestAutoScalePlan API asynchronously
+// api document: https://help.aliyun.com/api/foas/getjoblatestautoscaleplan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobLatestAutoScalePlanWithCallback(request *GetJobLatestAutoScalePlanRequest, callback func(response *GetJobLatestAutoScalePlanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobLatestAutoScalePlanResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobLatestAutoScalePlan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobLatestAutoScalePlanRequest is the request struct for api GetJobLatestAutoScalePlan
+type GetJobLatestAutoScalePlanRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// GetJobLatestAutoScalePlanResponse is the response struct for api GetJobLatestAutoScalePlan
+type GetJobLatestAutoScalePlanResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	PlanJson  string `json:"PlanJson" xml:"PlanJson"`
+}
+
+// CreateGetJobLatestAutoScalePlanRequest creates a request to invoke GetJobLatestAutoScalePlan API
+func CreateGetJobLatestAutoScalePlanRequest() (request *GetJobLatestAutoScalePlanRequest) {
+	request = &GetJobLatestAutoScalePlanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetJobLatestAutoScalePlan", "/api/v2/projects/[projectName]/jobs/[jobName]/autoscale/latestplanjson", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetJobLatestAutoScalePlanResponse creates a response to parse from GetJobLatestAutoScalePlan response
+func CreateGetJobLatestAutoScalePlanResponse() (response *GetJobLatestAutoScalePlanResponse) {
+	response = &GetJobLatestAutoScalePlanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/get_package.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// GetPackage invokes the foas.GetPackage API synchronously
+// api document: https://help.aliyun.com/api/foas/getpackage.html
+func (client *Client) GetPackage(request *GetPackageRequest) (response *GetPackageResponse, err error) {
+	response = CreateGetPackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPackageWithChan invokes the foas.GetPackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/getpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPackageWithChan(request *GetPackageRequest) (<-chan *GetPackageResponse, <-chan error) {
+	responseChan := make(chan *GetPackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPackageWithCallback invokes the foas.GetPackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/getpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPackageWithCallback(request *GetPackageRequest, callback func(response *GetPackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPackageResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPackageRequest is the request struct for api GetPackage
+type GetPackageRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	PackageName string `position:"Path" name:"packageName"`
+}
+
+// GetPackageResponse is the response struct for api GetPackage
+type GetPackageResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Package   Package `json:"Package" xml:"Package"`
+}
+
+// CreateGetPackageRequest creates a request to invoke GetPackage API
+func CreateGetPackageRequest() (request *GetPackageRequest) {
+	request = &GetPackageRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetPackage", "/api/v2/projects/[projectName]/packages/[packageName]", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetPackageResponse creates a response to parse from GetPackage response
+func CreateGetPackageResponse() (response *GetPackageResponse) {
+	response = &GetPackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/get_project.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// GetProject invokes the foas.GetProject API synchronously
+// api document: https://help.aliyun.com/api/foas/getproject.html
+func (client *Client) GetProject(request *GetProjectRequest) (response *GetProjectResponse, err error) {
+	response = CreateGetProjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetProjectWithChan invokes the foas.GetProject API asynchronously
+// api document: https://help.aliyun.com/api/foas/getproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProjectWithChan(request *GetProjectRequest) (<-chan *GetProjectResponse, <-chan error) {
+	responseChan := make(chan *GetProjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetProject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetProjectWithCallback invokes the foas.GetProject API asynchronously
+// api document: https://help.aliyun.com/api/foas/getproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProjectWithCallback(request *GetProjectRequest, callback func(response *GetProjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetProjectResponse
+		var err error
+		defer close(result)
+		response, err = client.GetProject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetProjectRequest is the request struct for api GetProject
+type GetProjectRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+}
+
+// GetProjectResponse is the response struct for api GetProject
+type GetProjectResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Project   Project `json:"Project" xml:"Project"`
+}
+
+// CreateGetProjectRequest creates a request to invoke GetProject API
+func CreateGetProjectRequest() (request *GetProjectRequest) {
+	request = &GetProjectRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetProject", "/api/v2/projects/[projectName]", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetProjectResponse creates a response to parse from GetProject response
+func CreateGetProjectResponse() (response *GetProjectResponse) {
+	response = &GetProjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/foas/get_raw_plan_json.go

@@ -0,0 +1,109 @@
+package foas
+
+//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"
+)
+
+// GetRawPlanJson invokes the foas.GetRawPlanJson API synchronously
+// api document: https://help.aliyun.com/api/foas/getrawplanjson.html
+func (client *Client) GetRawPlanJson(request *GetRawPlanJsonRequest) (response *GetRawPlanJsonResponse, err error) {
+	response = CreateGetRawPlanJsonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRawPlanJsonWithChan invokes the foas.GetRawPlanJson API asynchronously
+// api document: https://help.aliyun.com/api/foas/getrawplanjson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRawPlanJsonWithChan(request *GetRawPlanJsonRequest) (<-chan *GetRawPlanJsonResponse, <-chan error) {
+	responseChan := make(chan *GetRawPlanJsonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRawPlanJson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRawPlanJsonWithCallback invokes the foas.GetRawPlanJson API asynchronously
+// api document: https://help.aliyun.com/api/foas/getrawplanjson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRawPlanJsonWithCallback(request *GetRawPlanJsonRequest, callback func(response *GetRawPlanJsonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRawPlanJsonResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRawPlanJson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRawPlanJsonRequest is the request struct for api GetRawPlanJson
+type GetRawPlanJsonRequest struct {
+	*requests.RoaRequest
+	ProjectName    string           `position:"Path" name:"projectName"`
+	ExpectedGB     requests.Float   `position:"Query" name:"expectedGB"`
+	ExpectedCore   requests.Float   `position:"Query" name:"expectedCore"`
+	JobName        string           `position:"Path" name:"jobName"`
+	AutoconfEnable requests.Boolean `position:"Query" name:"autoconfEnable"`
+}
+
+// GetRawPlanJsonResponse is the response struct for api GetRawPlanJson
+type GetRawPlanJsonResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	SessionId string `json:"SessionId" xml:"SessionId"`
+}
+
+// CreateGetRawPlanJsonRequest creates a request to invoke GetRawPlanJson API
+func CreateGetRawPlanJsonRequest() (request *GetRawPlanJsonRequest) {
+	request = &GetRawPlanJsonRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetRawPlanJson", "/api/v2/projects/[projectName]/jobs/[jobName]/planjson", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRawPlanJsonResponse creates a response to parse from GetRawPlanJson response
+func CreateGetRawPlanJsonResponse() (response *GetRawPlanJsonResponse) {
+	response = &GetRawPlanJsonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/foas/get_ref_package_job.go

@@ -0,0 +1,112 @@
+package foas
+
+//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"
+)
+
+// GetRefPackageJob invokes the foas.GetRefPackageJob API synchronously
+// api document: https://help.aliyun.com/api/foas/getrefpackagejob.html
+func (client *Client) GetRefPackageJob(request *GetRefPackageJobRequest) (response *GetRefPackageJobResponse, err error) {
+	response = CreateGetRefPackageJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRefPackageJobWithChan invokes the foas.GetRefPackageJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/getrefpackagejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRefPackageJobWithChan(request *GetRefPackageJobRequest) (<-chan *GetRefPackageJobResponse, <-chan error) {
+	responseChan := make(chan *GetRefPackageJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRefPackageJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRefPackageJobWithCallback invokes the foas.GetRefPackageJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/getrefpackagejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRefPackageJobWithCallback(request *GetRefPackageJobRequest, callback func(response *GetRefPackageJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRefPackageJobResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRefPackageJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRefPackageJobRequest is the request struct for api GetRefPackageJob
+type GetRefPackageJobRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	PackageName string           `position:"Path" name:"packageName"`
+	PageSize    requests.Integer `position:"Query" name:"pageSize"`
+	PageIndex   requests.Integer `position:"Query" name:"pageIndex"`
+}
+
+// GetRefPackageJobResponse is the response struct for api GetRefPackageJob
+type GetRefPackageJobResponse struct {
+	*responses.BaseResponse
+	RequestId  string                 `json:"RequestId" xml:"RequestId"`
+	PageIndex  int                    `json:"PageIndex" xml:"PageIndex"`
+	PageSize   int                    `json:"PageSize" xml:"PageSize"`
+	TotalCount int64                  `json:"TotalCount" xml:"TotalCount"`
+	TotalPage  int                    `json:"TotalPage" xml:"TotalPage"`
+	Jobs       JobsInGetRefPackageJob `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateGetRefPackageJobRequest creates a request to invoke GetRefPackageJob API
+func CreateGetRefPackageJobRequest() (request *GetRefPackageJobRequest) {
+	request = &GetRefPackageJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "GetRefPackageJob", "/api/v2/projects/[projectName]/packages/[packageName]/jobs", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRefPackageJobResponse creates a response to parse from GetRefPackageJob response
+func CreateGetRefPackageJobResponse() (response *GetRefPackageJobResponse) {
+	response = &GetRefPackageJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/list_child_folder.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// ListChildFolder invokes the foas.ListChildFolder API synchronously
+// api document: https://help.aliyun.com/api/foas/listchildfolder.html
+func (client *Client) ListChildFolder(request *ListChildFolderRequest) (response *ListChildFolderResponse, err error) {
+	response = CreateListChildFolderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListChildFolderWithChan invokes the foas.ListChildFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/listchildfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListChildFolderWithChan(request *ListChildFolderRequest) (<-chan *ListChildFolderResponse, <-chan error) {
+	responseChan := make(chan *ListChildFolderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListChildFolder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListChildFolderWithCallback invokes the foas.ListChildFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/listchildfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListChildFolderWithCallback(request *ListChildFolderRequest, callback func(response *ListChildFolderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListChildFolderResponse
+		var err error
+		defer close(result)
+		response, err = client.ListChildFolder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListChildFolderRequest is the request struct for api ListChildFolder
+type ListChildFolderRequest struct {
+	*requests.RoaRequest
+	Path        string `position:"Query" name:"path"`
+	ProjectName string `position:"Path" name:"projectName"`
+}
+
+// ListChildFolderResponse is the response struct for api ListChildFolder
+type ListChildFolderResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Folders   Folders `json:"Folders" xml:"Folders"`
+}
+
+// CreateListChildFolderRequest creates a request to invoke ListChildFolder API
+func CreateListChildFolderRequest() (request *ListChildFolderRequest) {
+	request = &ListChildFolderRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListChildFolder", "/api/v2/projects/[projectName]/folders/children", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListChildFolderResponse creates a response to parse from ListChildFolder response
+func CreateListChildFolderResponse() (response *ListChildFolderResponse) {
+	response = &ListChildFolderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/foas/list_cluster.go

@@ -0,0 +1,114 @@
+package foas
+
+//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"
+)
+
+// ListCluster invokes the foas.ListCluster API synchronously
+// api document: https://help.aliyun.com/api/foas/listcluster.html
+func (client *Client) ListCluster(request *ListClusterRequest) (response *ListClusterResponse, err error) {
+	response = CreateListClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListClusterWithChan invokes the foas.ListCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/listcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListClusterWithChan(request *ListClusterRequest) (<-chan *ListClusterResponse, <-chan error) {
+	responseChan := make(chan *ListClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListClusterWithCallback invokes the foas.ListCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/listcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListClusterWithCallback(request *ListClusterRequest, callback func(response *ListClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.ListCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListClusterRequest is the request struct for api ListCluster
+type ListClusterRequest struct {
+	*requests.RoaRequest
+	DisplayName string           `position:"Query" name:"displayName"`
+	PageSize    requests.Integer `position:"Query" name:"pageSize"`
+	PageIndex   requests.Integer `position:"Query" name:"pageIndex"`
+	ClusterId   string           `position:"Query" name:"clusterId"`
+	State       string           `position:"Query" name:"state"`
+	Region      string           `position:"Query" name:"region"`
+}
+
+// ListClusterResponse is the response struct for api ListCluster
+type ListClusterResponse struct {
+	*responses.BaseResponse
+	RequestId  string   `json:"RequestId" xml:"RequestId"`
+	TotalCount int64    `json:"TotalCount" xml:"TotalCount"`
+	TotalPage  int      `json:"TotalPage" xml:"TotalPage"`
+	PageIndex  int      `json:"PageIndex" xml:"PageIndex"`
+	PageSize   int      `json:"PageSize" xml:"PageSize"`
+	Clusters   Clusters `json:"Clusters" xml:"Clusters"`
+}
+
+// CreateListClusterRequest creates a request to invoke ListCluster API
+func CreateListClusterRequest() (request *ListClusterRequest) {
+	request = &ListClusterRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListCluster", "/api/v2/clusters", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListClusterResponse creates a response to parse from ListCluster response
+func CreateListClusterResponse() (response *ListClusterResponse) {
+	response = &ListClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 121 - 0
services/foas/list_instance.go

@@ -0,0 +1,121 @@
+package foas
+
+//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"
+)
+
+// ListInstance invokes the foas.ListInstance API synchronously
+// api document: https://help.aliyun.com/api/foas/listinstance.html
+func (client *Client) ListInstance(request *ListInstanceRequest) (response *ListInstanceResponse, err error) {
+	response = CreateListInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListInstanceWithChan invokes the foas.ListInstance API asynchronously
+// api document: https://help.aliyun.com/api/foas/listinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListInstanceWithChan(request *ListInstanceRequest) (<-chan *ListInstanceResponse, <-chan error) {
+	responseChan := make(chan *ListInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListInstanceWithCallback invokes the foas.ListInstance API asynchronously
+// api document: https://help.aliyun.com/api/foas/listinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListInstanceWithCallback(request *ListInstanceRequest, callback func(response *ListInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.ListInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListInstanceRequest is the request struct for api ListInstance
+type ListInstanceRequest struct {
+	*requests.RoaRequest
+	ProjectName  string           `position:"Path" name:"projectName"`
+	EndBeginTs   requests.Integer `position:"Query" name:"endBeginTs"`
+	ExpectState  string           `position:"Query" name:"expectState"`
+	JobType      string           `position:"Query" name:"jobType"`
+	ApiType      string           `position:"Query" name:"apiType"`
+	ActualState  string           `position:"Query" name:"actualState"`
+	EndEndTs     requests.Integer `position:"Query" name:"endEndTs"`
+	StartEndTs   requests.Integer `position:"Query" name:"startEndTs"`
+	PageSize     requests.Integer `position:"Query" name:"pageSize"`
+	StartBeginTs requests.Integer `position:"Query" name:"startBeginTs"`
+	PageIndex    requests.Integer `position:"Query" name:"pageIndex"`
+	IsArchived   requests.Boolean `position:"Query" name:"isArchived"`
+	JobName      string           `position:"Query" name:"jobName"`
+}
+
+// ListInstanceResponse is the response struct for api ListInstance
+type ListInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId  string    `json:"RequestId" xml:"RequestId"`
+	PageIndex  int       `json:"PageIndex" xml:"PageIndex"`
+	PageSize   int       `json:"PageSize" xml:"PageSize"`
+	TotalPage  int       `json:"TotalPage" xml:"TotalPage"`
+	TotalCount int64     `json:"TotalCount" xml:"TotalCount"`
+	Instances  Instances `json:"Instances" xml:"Instances"`
+}
+
+// CreateListInstanceRequest creates a request to invoke ListInstance API
+func CreateListInstanceRequest() (request *ListInstanceRequest) {
+	request = &ListInstanceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListInstance", "/api/v2/projects/[projectName]/instances", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListInstanceResponse creates a response to parse from ListInstance response
+func CreateListInstanceResponse() (response *ListInstanceResponse) {
+	response = &ListInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 119 - 0
services/foas/list_job.go

@@ -0,0 +1,119 @@
+package foas
+
+//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"
+)
+
+// ListJob invokes the foas.ListJob API synchronously
+// api document: https://help.aliyun.com/api/foas/listjob.html
+func (client *Client) ListJob(request *ListJobRequest) (response *ListJobResponse, err error) {
+	response = CreateListJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobWithChan invokes the foas.ListJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/listjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobWithChan(request *ListJobRequest) (<-chan *ListJobResponse, <-chan error) {
+	responseChan := make(chan *ListJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListJobWithCallback invokes the foas.ListJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/listjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobWithCallback(request *ListJobRequest, callback func(response *ListJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListJobRequest is the request struct for api ListJob
+type ListJobRequest struct {
+	*requests.RoaRequest
+	QueueName       string           `position:"Query" name:"queueName"`
+	ProjectName     string           `position:"Path" name:"projectName"`
+	PageSize        requests.Integer `position:"Query" name:"pageSize"`
+	IsShowFullField requests.Boolean `position:"Query" name:"isShowFullField"`
+	PageIndex       requests.Integer `position:"Query" name:"pageIndex"`
+	EngineVersion   string           `position:"Query" name:"engineVersion"`
+	ClusterId       string           `position:"Query" name:"clusterId"`
+	JobType         string           `position:"Query" name:"jobType"`
+	ApiType         string           `position:"Query" name:"apiType"`
+	JobName         string           `position:"Query" name:"jobName"`
+	FolderId        requests.Integer `position:"Query" name:"folderId"`
+}
+
+// ListJobResponse is the response struct for api ListJob
+type ListJobResponse struct {
+	*responses.BaseResponse
+	RequestId  string        `json:"RequestId" xml:"RequestId"`
+	PageIndex  int           `json:"PageIndex" xml:"PageIndex"`
+	PageSize   int           `json:"PageSize" xml:"PageSize"`
+	TotalPage  int           `json:"TotalPage" xml:"TotalPage"`
+	TotalCount int64         `json:"TotalCount" xml:"TotalCount"`
+	Jobs       JobsInListJob `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateListJobRequest creates a request to invoke ListJob API
+func CreateListJobRequest() (request *ListJobRequest) {
+	request = &ListJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListJob", "/api/v2/projects/[projectName]/jobs", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListJobResponse creates a response to parse from ListJob response
+func CreateListJobResponse() (response *ListJobResponse) {
+	response = &ListJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/foas/list_package.go

@@ -0,0 +1,114 @@
+package foas
+
+//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"
+)
+
+// ListPackage invokes the foas.ListPackage API synchronously
+// api document: https://help.aliyun.com/api/foas/listpackage.html
+func (client *Client) ListPackage(request *ListPackageRequest) (response *ListPackageResponse, err error) {
+	response = CreateListPackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListPackageWithChan invokes the foas.ListPackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/listpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPackageWithChan(request *ListPackageRequest) (<-chan *ListPackageResponse, <-chan error) {
+	responseChan := make(chan *ListPackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListPackageWithCallback invokes the foas.ListPackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/listpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPackageWithCallback(request *ListPackageRequest, callback func(response *ListPackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPackageResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListPackageRequest is the request struct for api ListPackage
+type ListPackageRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	PackageName string           `position:"Query" name:"packageName"`
+	PageSize    requests.Integer `position:"Query" name:"pageSize"`
+	PageIndex   requests.Integer `position:"Query" name:"pageIndex"`
+	Tag         string           `position:"Query" name:"tag"`
+	Type        string           `position:"Query" name:"type"`
+}
+
+// ListPackageResponse is the response struct for api ListPackage
+type ListPackageResponse struct {
+	*responses.BaseResponse
+	RequestId  string   `json:"RequestId" xml:"RequestId"`
+	PageIndex  int      `json:"PageIndex" xml:"PageIndex"`
+	PageSize   int      `json:"PageSize" xml:"PageSize"`
+	TotalPage  int      `json:"TotalPage" xml:"TotalPage"`
+	TotalCount int64    `json:"TotalCount" xml:"TotalCount"`
+	Packages   Packages `json:"Packages" xml:"Packages"`
+}
+
+// CreateListPackageRequest creates a request to invoke ListPackage API
+func CreateListPackageRequest() (request *ListPackageRequest) {
+	request = &ListPackageRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListPackage", "/api/v2/projects/[projectName]/packages", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListPackageResponse creates a response to parse from ListPackage response
+func CreateListPackageResponse() (response *ListPackageResponse) {
+	response = &ListPackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/foas/list_project.go

@@ -0,0 +1,114 @@
+package foas
+
+//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"
+)
+
+// ListProject invokes the foas.ListProject API synchronously
+// api document: https://help.aliyun.com/api/foas/listproject.html
+func (client *Client) ListProject(request *ListProjectRequest) (response *ListProjectResponse, err error) {
+	response = CreateListProjectResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListProjectWithChan invokes the foas.ListProject API asynchronously
+// api document: https://help.aliyun.com/api/foas/listproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListProjectWithChan(request *ListProjectRequest) (<-chan *ListProjectResponse, <-chan error) {
+	responseChan := make(chan *ListProjectResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListProject(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListProjectWithCallback invokes the foas.ListProject API asynchronously
+// api document: https://help.aliyun.com/api/foas/listproject.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListProjectWithCallback(request *ListProjectRequest, callback func(response *ListProjectResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListProjectResponse
+		var err error
+		defer close(result)
+		response, err = client.ListProject(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListProjectRequest is the request struct for api ListProject
+type ListProjectRequest struct {
+	*requests.RoaRequest
+	Name       string           `position:"Query" name:"name"`
+	PageSize   requests.Integer `position:"Query" name:"pageSize"`
+	PageIndex  requests.Integer `position:"Query" name:"pageIndex"`
+	ClusterId  string           `position:"Query" name:"clusterId"`
+	Region     string           `position:"Query" name:"region"`
+	DeployType string           `position:"Query" name:"deployType"`
+}
+
+// ListProjectResponse is the response struct for api ListProject
+type ListProjectResponse struct {
+	*responses.BaseResponse
+	RequestId  string   `json:"RequestId" xml:"RequestId"`
+	PageIndex  int      `json:"PageIndex" xml:"PageIndex"`
+	PageSize   int      `json:"PageSize" xml:"PageSize"`
+	TotalPage  int      `json:"TotalPage" xml:"TotalPage"`
+	TotalCount int64    `json:"TotalCount" xml:"TotalCount"`
+	Projects   Projects `json:"Projects" xml:"Projects"`
+}
+
+// CreateListProjectRequest creates a request to invoke ListProject API
+func CreateListProjectRequest() (request *ListProjectRequest) {
+	request = &ListProjectRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListProject", "/api/v2/projects", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListProjectResponse creates a response to parse from ListProject response
+func CreateListProjectResponse() (response *ListProjectResponse) {
+	response = &ListProjectResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/list_project_bind_queue.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// ListProjectBindQueue invokes the foas.ListProjectBindQueue API synchronously
+// api document: https://help.aliyun.com/api/foas/listprojectbindqueue.html
+func (client *Client) ListProjectBindQueue(request *ListProjectBindQueueRequest) (response *ListProjectBindQueueResponse, err error) {
+	response = CreateListProjectBindQueueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListProjectBindQueueWithChan invokes the foas.ListProjectBindQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/listprojectbindqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListProjectBindQueueWithChan(request *ListProjectBindQueueRequest) (<-chan *ListProjectBindQueueResponse, <-chan error) {
+	responseChan := make(chan *ListProjectBindQueueResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListProjectBindQueue(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListProjectBindQueueWithCallback invokes the foas.ListProjectBindQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/listprojectbindqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListProjectBindQueueWithCallback(request *ListProjectBindQueueRequest, callback func(response *ListProjectBindQueueResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListProjectBindQueueResponse
+		var err error
+		defer close(result)
+		response, err = client.ListProjectBindQueue(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListProjectBindQueueRequest is the request struct for api ListProjectBindQueue
+type ListProjectBindQueueRequest struct {
+	*requests.RoaRequest
+	QueueName   string `position:"Query" name:"queueName"`
+	ProjectName string `position:"Path" name:"projectName"`
+	ClusterId   string `position:"Query" name:"clusterId"`
+}
+
+// ListProjectBindQueueResponse is the response struct for api ListProjectBindQueue
+type ListProjectBindQueueResponse struct {
+	*responses.BaseResponse
+	RequestId string                       `json:"RequestId" xml:"RequestId"`
+	Queues    QueuesInListProjectBindQueue `json:"Queues" xml:"Queues"`
+}
+
+// CreateListProjectBindQueueRequest creates a request to invoke ListProjectBindQueue API
+func CreateListProjectBindQueueRequest() (request *ListProjectBindQueueRequest) {
+	request = &ListProjectBindQueueRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListProjectBindQueue", "/api/v2/projects/[projectName]/queues", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListProjectBindQueueResponse creates a response to parse from ListProjectBindQueue response
+func CreateListProjectBindQueueResponse() (response *ListProjectBindQueueResponse) {
+	response = &ListProjectBindQueueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/list_project_bind_queue_resource.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// ListProjectBindQueueResource invokes the foas.ListProjectBindQueueResource API synchronously
+// api document: https://help.aliyun.com/api/foas/listprojectbindqueueresource.html
+func (client *Client) ListProjectBindQueueResource(request *ListProjectBindQueueResourceRequest) (response *ListProjectBindQueueResourceResponse, err error) {
+	response = CreateListProjectBindQueueResourceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListProjectBindQueueResourceWithChan invokes the foas.ListProjectBindQueueResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/listprojectbindqueueresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListProjectBindQueueResourceWithChan(request *ListProjectBindQueueResourceRequest) (<-chan *ListProjectBindQueueResourceResponse, <-chan error) {
+	responseChan := make(chan *ListProjectBindQueueResourceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListProjectBindQueueResource(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListProjectBindQueueResourceWithCallback invokes the foas.ListProjectBindQueueResource API asynchronously
+// api document: https://help.aliyun.com/api/foas/listprojectbindqueueresource.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListProjectBindQueueResourceWithCallback(request *ListProjectBindQueueResourceRequest, callback func(response *ListProjectBindQueueResourceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListProjectBindQueueResourceResponse
+		var err error
+		defer close(result)
+		response, err = client.ListProjectBindQueueResource(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListProjectBindQueueResourceRequest is the request struct for api ListProjectBindQueueResource
+type ListProjectBindQueueResourceRequest struct {
+	*requests.RoaRequest
+	QueueName   string `position:"Query" name:"queueName"`
+	ProjectName string `position:"Path" name:"projectName"`
+	ClusterId   string `position:"Query" name:"clusterId"`
+}
+
+// ListProjectBindQueueResourceResponse is the response struct for api ListProjectBindQueueResource
+type ListProjectBindQueueResourceResponse struct {
+	*responses.BaseResponse
+	RequestId string                               `json:"RequestId" xml:"RequestId"`
+	Queues    QueuesInListProjectBindQueueResource `json:"Queues" xml:"Queues"`
+}
+
+// CreateListProjectBindQueueResourceRequest creates a request to invoke ListProjectBindQueueResource API
+func CreateListProjectBindQueueResourceRequest() (request *ListProjectBindQueueResourceRequest) {
+	request = &ListProjectBindQueueResourceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ListProjectBindQueueResource", "/api/v2/projects/[projectName]/queueresource", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateListProjectBindQueueResourceResponse creates a response to parse from ListProjectBindQueueResource response
+func CreateListProjectBindQueueResourceResponse() (response *ListProjectBindQueueResourceResponse) {
+	response = &ListProjectBindQueueResourceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/foas/modify_instance_state.go

@@ -0,0 +1,108 @@
+package foas
+
+//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"
+)
+
+// ModifyInstanceState invokes the foas.ModifyInstanceState API synchronously
+// api document: https://help.aliyun.com/api/foas/modifyinstancestate.html
+func (client *Client) ModifyInstanceState(request *ModifyInstanceStateRequest) (response *ModifyInstanceStateResponse, err error) {
+	response = CreateModifyInstanceStateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceStateWithChan invokes the foas.ModifyInstanceState API asynchronously
+// api document: https://help.aliyun.com/api/foas/modifyinstancestate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceStateWithChan(request *ModifyInstanceStateRequest) (<-chan *ModifyInstanceStateResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceStateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstanceState(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceStateWithCallback invokes the foas.ModifyInstanceState API asynchronously
+// api document: https://help.aliyun.com/api/foas/modifyinstancestate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceStateWithCallback(request *ModifyInstanceStateRequest, callback func(response *ModifyInstanceStateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceStateResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstanceState(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceStateRequest is the request struct for api ModifyInstanceState
+type ModifyInstanceStateRequest struct {
+	*requests.RoaRequest
+	IsFlush     requests.Boolean `position:"Body" name:"isFlush"`
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	ExpectState string           `position:"Body" name:"expectState"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// ModifyInstanceStateResponse is the response struct for api ModifyInstanceState
+type ModifyInstanceStateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyInstanceStateRequest creates a request to invoke ModifyInstanceState API
+func CreateModifyInstanceStateRequest() (request *ModifyInstanceStateRequest) {
+	request = &ModifyInstanceStateRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ModifyInstanceState", "/api/v2/projects/[projectName]/jobs/[jobName]/instances/[instanceId]/expectstate", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateModifyInstanceStateResponse creates a response to parse from ModifyInstanceState response
+func CreateModifyInstanceStateResponse() (response *ModifyInstanceStateResponse) {
+	response = &ModifyInstanceStateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/modify_master_spec.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// ModifyMasterSpec invokes the foas.ModifyMasterSpec API synchronously
+// api document: https://help.aliyun.com/api/foas/modifymasterspec.html
+func (client *Client) ModifyMasterSpec(request *ModifyMasterSpecRequest) (response *ModifyMasterSpecResponse, err error) {
+	response = CreateModifyMasterSpecResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyMasterSpecWithChan invokes the foas.ModifyMasterSpec API asynchronously
+// api document: https://help.aliyun.com/api/foas/modifymasterspec.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyMasterSpecWithChan(request *ModifyMasterSpecRequest) (<-chan *ModifyMasterSpecResponse, <-chan error) {
+	responseChan := make(chan *ModifyMasterSpecResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyMasterSpec(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyMasterSpecWithCallback invokes the foas.ModifyMasterSpec API asynchronously
+// api document: https://help.aliyun.com/api/foas/modifymasterspec.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyMasterSpecWithCallback(request *ModifyMasterSpecRequest, callback func(response *ModifyMasterSpecResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyMasterSpecResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyMasterSpec(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyMasterSpecRequest is the request struct for api ModifyMasterSpec
+type ModifyMasterSpecRequest struct {
+	*requests.RoaRequest
+	ClusterId         string `position:"Path" name:"clusterId"`
+	MasterTargetModel string `position:"Body" name:"masterTargetModel"`
+}
+
+// ModifyMasterSpecResponse is the response struct for api ModifyMasterSpec
+type ModifyMasterSpecResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyMasterSpecRequest creates a request to invoke ModifyMasterSpec API
+func CreateModifyMasterSpecRequest() (request *ModifyMasterSpecRequest) {
+	request = &ModifyMasterSpecRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ModifyMasterSpec", "/api/v2/clusters/[clusterId]/specification", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateModifyMasterSpecResponse creates a response to parse from ModifyMasterSpec response
+func CreateModifyMasterSpecResponse() (response *ModifyMasterSpecResponse) {
+	response = &ModifyMasterSpecResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/mv_folder.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// MVFolder invokes the foas.MVFolder API synchronously
+// api document: https://help.aliyun.com/api/foas/mvfolder.html
+func (client *Client) MVFolder(request *MVFolderRequest) (response *MVFolderResponse, err error) {
+	response = CreateMVFolderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MVFolderWithChan invokes the foas.MVFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/mvfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MVFolderWithChan(request *MVFolderRequest) (<-chan *MVFolderResponse, <-chan error) {
+	responseChan := make(chan *MVFolderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MVFolder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MVFolderWithCallback invokes the foas.MVFolder API asynchronously
+// api document: https://help.aliyun.com/api/foas/mvfolder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MVFolderWithCallback(request *MVFolderRequest, callback func(response *MVFolderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MVFolderResponse
+		var err error
+		defer close(result)
+		response, err = client.MVFolder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MVFolderRequest is the request struct for api MVFolder
+type MVFolderRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	SrcPath     string `position:"Body" name:"srcPath"`
+	DestPath    string `position:"Body" name:"destPath"`
+}
+
+// MVFolderResponse is the response struct for api MVFolder
+type MVFolderResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateMVFolderRequest creates a request to invoke MVFolder API
+func CreateMVFolderRequest() (request *MVFolderRequest) {
+	request = &MVFolderRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "MVFolder", "/api/v2/projects/[projectName]/folders", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateMVFolderResponse creates a response to parse from MVFolder response
+func CreateMVFolderResponse() (response *MVFolderResponse) {
+	response = &MVFolderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/foas/offline_job.go

@@ -0,0 +1,105 @@
+package foas
+
+//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"
+)
+
+// OfflineJob invokes the foas.OfflineJob API synchronously
+// api document: https://help.aliyun.com/api/foas/offlinejob.html
+func (client *Client) OfflineJob(request *OfflineJobRequest) (response *OfflineJobResponse, err error) {
+	response = CreateOfflineJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// OfflineJobWithChan invokes the foas.OfflineJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/offlinejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) OfflineJobWithChan(request *OfflineJobRequest) (<-chan *OfflineJobResponse, <-chan error) {
+	responseChan := make(chan *OfflineJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.OfflineJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// OfflineJobWithCallback invokes the foas.OfflineJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/offlinejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) OfflineJobWithCallback(request *OfflineJobRequest, callback func(response *OfflineJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *OfflineJobResponse
+		var err error
+		defer close(result)
+		response, err = client.OfflineJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// OfflineJobRequest is the request struct for api OfflineJob
+type OfflineJobRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// OfflineJobResponse is the response struct for api OfflineJob
+type OfflineJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateOfflineJobRequest creates a request to invoke OfflineJob API
+func CreateOfflineJobRequest() (request *OfflineJobRequest) {
+	request = &OfflineJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "OfflineJob", "/api/v2/projects/[projectName]/jobs/[jobName]/offline", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateOfflineJobResponse creates a response to parse from OfflineJob response
+func CreateOfflineJobResponse() (response *OfflineJobResponse) {
+	response = &OfflineJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/shrink_cluster.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// ShrinkCluster invokes the foas.ShrinkCluster API synchronously
+// api document: https://help.aliyun.com/api/foas/shrinkcluster.html
+func (client *Client) ShrinkCluster(request *ShrinkClusterRequest) (response *ShrinkClusterResponse, err error) {
+	response = CreateShrinkClusterResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ShrinkClusterWithChan invokes the foas.ShrinkCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/shrinkcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ShrinkClusterWithChan(request *ShrinkClusterRequest) (<-chan *ShrinkClusterResponse, <-chan error) {
+	responseChan := make(chan *ShrinkClusterResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ShrinkCluster(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ShrinkClusterWithCallback invokes the foas.ShrinkCluster API asynchronously
+// api document: https://help.aliyun.com/api/foas/shrinkcluster.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ShrinkClusterWithCallback(request *ShrinkClusterRequest, callback func(response *ShrinkClusterResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ShrinkClusterResponse
+		var err error
+		defer close(result)
+		response, err = client.ShrinkCluster(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ShrinkClusterRequest is the request struct for api ShrinkCluster
+type ShrinkClusterRequest struct {
+	*requests.RoaRequest
+	InstanceIds      string `position:"Body" name:"instanceIds"`
+	ClusterId        string `position:"Path" name:"clusterId"`
+	ModelTargetCount string `position:"Body" name:"modelTargetCount"`
+}
+
+// ShrinkClusterResponse is the response struct for api ShrinkCluster
+type ShrinkClusterResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateShrinkClusterRequest creates a request to invoke ShrinkCluster API
+func CreateShrinkClusterRequest() (request *ShrinkClusterRequest) {
+	request = &ShrinkClusterRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ShrinkCluster", "/api/v2/clusters/[clusterId]/shrink", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateShrinkClusterResponse creates a response to parse from ShrinkCluster response
+func CreateShrinkClusterResponse() (response *ShrinkClusterResponse) {
+	response = &ShrinkClusterResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/start_job.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// StartJob invokes the foas.StartJob API synchronously
+// api document: https://help.aliyun.com/api/foas/startjob.html
+func (client *Client) StartJob(request *StartJobRequest) (response *StartJobResponse, err error) {
+	response = CreateStartJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartJobWithChan invokes the foas.StartJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/startjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartJobWithChan(request *StartJobRequest) (<-chan *StartJobResponse, <-chan error) {
+	responseChan := make(chan *StartJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartJobWithCallback invokes the foas.StartJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/startjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartJobWithCallback(request *StartJobRequest, callback func(response *StartJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartJobResponse
+		var err error
+		defer close(result)
+		response, err = client.StartJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartJobRequest is the request struct for api StartJob
+type StartJobRequest struct {
+	*requests.RoaRequest
+	ProjectName   string `position:"Path" name:"projectName"`
+	ParameterJson string `position:"Body" name:"parameterJson"`
+	JobName       string `position:"Path" name:"jobName"`
+}
+
+// StartJobResponse is the response struct for api StartJob
+type StartJobResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	InstanceId int64  `json:"instanceId" xml:"instanceId"`
+}
+
+// CreateStartJobRequest creates a request to invoke StartJob API
+func CreateStartJobRequest() (request *StartJobRequest) {
+	request = &StartJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "StartJob", "/api/v2/projects/[projectName]/jobs/[jobName]/instance", "foas", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateStartJobResponse creates a response to parse from StartJob response
+func CreateStartJobResponse() (response *StartJobResponse) {
+	response = &StartJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 30 - 0
services/foas/struct_cluster.go

@@ -0,0 +1,30 @@
+package foas
+
+//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.
+
+// Cluster is a nested struct in foas response
+type Cluster struct {
+	ClusterId   string `json:"ClusterId" xml:"ClusterId"`
+	RegionId    string `json:"RegionId" xml:"RegionId"`
+	ZoneId      string `json:"ZoneId" xml:"ZoneId"`
+	State       string `json:"State" xml:"State"`
+	OwnerId     string `json:"OwnerId" xml:"OwnerId"`
+	Operator    string `json:"Operator" xml:"Operator"`
+	DisplayName string `json:"DisplayName" xml:"DisplayName"`
+	Description string `json:"Description" xml:"Description"`
+	GmtCreate   int64  `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified int64  `json:"GmtModified" xml:"GmtModified"`
+}

+ 21 - 0
services/foas/struct_clusters.go

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

+ 37 - 0
services/foas/struct_details.go

@@ -0,0 +1,37 @@
+package foas
+
+//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.
+
+// Details is a nested struct in foas response
+type Details struct {
+	ClusterId       string `json:"ClusterId" xml:"ClusterId"`
+	RegionId        string `json:"RegionId" xml:"RegionId"`
+	ZoneId          string `json:"ZoneId" xml:"ZoneId"`
+	State           string `json:"State" xml:"State"`
+	Description     string `json:"Description" xml:"Description"`
+	DisplayName     string `json:"DisplayName" xml:"DisplayName"`
+	OwnerId         string `json:"OwnerId" xml:"OwnerId"`
+	Operator        string `json:"Operator" xml:"Operator"`
+	StorageType     string `json:"StorageType" xml:"StorageType"`
+	GmtCreate       int64  `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified     int64  `json:"GmtModified" xml:"GmtModified"`
+	UserOssInfo     string `json:"UserOssInfo" xml:"UserOssInfo"`
+	UserVpcId       string `json:"UserVpcId" xml:"UserVpcId"`
+	UserSGId        string `json:"UserSGId" xml:"UserSGId"`
+	UserVSwitchList string `json:"UserVSwitchList" xml:"UserVSwitchList"`
+	IsMixDeploy     bool   `json:"IsMixDeploy" xml:"IsMixDeploy"`
+	InstanceInfos   string `json:"InstanceInfos" xml:"InstanceInfos"`
+}

+ 21 - 0
services/foas/struct_engine_versions.go

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

+ 22 - 0
services/foas/struct_folder.go

@@ -0,0 +1,22 @@
+package foas
+
+//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.
+
+// Folder is a nested struct in foas response
+type Folder struct {
+	Path     string `json:"Path" xml:"Path"`
+	FolderId int64  `json:"FolderId" xml:"FolderId"`
+}

+ 21 - 0
services/foas/struct_folders.go

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

+ 24 - 0
services/foas/struct_input.go

@@ -0,0 +1,24 @@
+package foas
+
+//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.
+
+// Input is a nested struct in foas response
+type Input struct {
+	Type       string                 `json:"Type" xml:"Type"`
+	Workspace  string                 `json:"Workspace" xml:"Workspace"`
+	Name       string                 `json:"Name" xml:"Name"`
+	Properties map[string]interface{} `json:"Properties" xml:"Properties"`
+}

+ 21 - 0
services/foas/struct_inputs.go

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

+ 43 - 0
services/foas/struct_instance.go

@@ -0,0 +1,43 @@
+package foas
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Instance is a nested struct in foas response
+type Instance struct {
+	ClusterId        string `json:"ClusterId" xml:"ClusterId"`
+	QueueName        string `json:"QueueName" xml:"QueueName"`
+	Code             string `json:"Code" xml:"Code"`
+	LastOperateTime  int64  `json:"LastOperateTime" xml:"LastOperateTime"`
+	EngineVersion    string `json:"EngineVersion" xml:"EngineVersion"`
+	ApiType          string `json:"ApiType" xml:"ApiType"`
+	LastErrorTime    int64  `json:"LastErrorTime" xml:"LastErrorTime"`
+	LastOperator     string `json:"LastOperator" xml:"LastOperator"`
+	InputDelay       int64  `json:"InputDelay" xml:"InputDelay"`
+	Packages         string `json:"Packages" xml:"Packages"`
+	Id               int64  `json:"Id" xml:"Id"`
+	Starter          string `json:"Starter" xml:"Starter"`
+	EndTime          int64  `json:"EndTime" xml:"EndTime"`
+	StartTime        int64  `json:"StartTime" xml:"StartTime"`
+	PlanJson         string `json:"PlanJson" xml:"PlanJson"`
+	ProjectName      string `json:"ProjectName" xml:"ProjectName"`
+	EngineJobHandler string `json:"EngineJobHandler" xml:"EngineJobHandler"`
+	ActualState      string `json:"ActualState" xml:"ActualState"`
+	JobType          string `json:"JobType" xml:"JobType"`
+	LastErrorMessage string `json:"LastErrorMessage" xml:"LastErrorMessage"`
+	JobName          string `json:"JobName" xml:"JobName"`
+	ExpectState      string `json:"ExpectState" xml:"ExpectState"`
+	Properties       string `json:"Properties" xml:"Properties"`
+}

+ 21 - 0
services/foas/struct_instances.go

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

+ 39 - 0
services/foas/struct_job.go

@@ -0,0 +1,39 @@
+package foas
+
+//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.
+
+// Job is a nested struct in foas response
+type Job struct {
+	ModifyTime    int64  `json:"ModifyTime" xml:"ModifyTime"`
+	ClusterId     string `json:"ClusterId" xml:"ClusterId"`
+	QueueName     string `json:"QueueName" xml:"QueueName"`
+	JobId         string `json:"JobId" xml:"JobId"`
+	Code          string `json:"Code" xml:"Code"`
+	EngineVersion string `json:"EngineVersion" xml:"EngineVersion"`
+	ApiType       string `json:"ApiType" xml:"ApiType"`
+	IsCommitted   bool   `json:"IsCommitted" xml:"IsCommitted"`
+	FolderId      int64  `json:"FolderId" xml:"FolderId"`
+	Packages      string `json:"Packages" xml:"Packages"`
+	CreateTime    int64  `json:"CreateTime" xml:"CreateTime"`
+	PlanJson      string `json:"PlanJson" xml:"PlanJson"`
+	ProjectName   string `json:"ProjectName" xml:"ProjectName"`
+	Modifier      string `json:"Modifier" xml:"Modifier"`
+	Creator       string `json:"Creator" xml:"Creator"`
+	JobType       string `json:"JobType" xml:"JobType"`
+	JobName       string `json:"JobName" xml:"JobName"`
+	Properties    string `json:"Properties" xml:"Properties"`
+	Description   string `json:"Description" xml:"Description"`
+}

+ 22 - 0
services/foas/struct_job_in_out.go

@@ -0,0 +1,22 @@
+package foas
+
+//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.
+
+// JobInOut is a nested struct in foas response
+type JobInOut struct {
+	Inputs  Inputs  `json:"Inputs" xml:"Inputs"`
+	Outputs Outputs `json:"Outputs" xml:"Outputs"`
+}

+ 21 - 0
services/foas/struct_jobs_in_get_ref_package_job.go

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

+ 21 - 0
services/foas/struct_jobs_in_list_job.go

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

+ 24 - 0
services/foas/struct_metric.go

@@ -0,0 +1,24 @@
+package foas
+
+//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.
+
+// Metric is a nested struct in foas response
+type Metric struct {
+	Dps        map[string]interface{} `json:"Dps" xml:"Dps"`
+	Summary    float64                `json:"Summary" xml:"Summary"`
+	MetricName string                 `json:"MetricName" xml:"MetricName"`
+	Tags       map[string]interface{} `json:"Tags" xml:"Tags"`
+}

+ 21 - 0
services/foas/struct_metrics_in_get_cluster_metrics.go

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

+ 21 - 0
services/foas/struct_metrics_in_get_instance_metric.go

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

+ 24 - 0
services/foas/struct_output.go

@@ -0,0 +1,24 @@
+package foas
+
+//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.
+
+// Output is a nested struct in foas response
+type Output struct {
+	Type       string                 `json:"Type" xml:"Type"`
+	Workspace  string                 `json:"Workspace" xml:"Workspace"`
+	Name       string                 `json:"Name" xml:"Name"`
+	Properties map[string]interface{} `json:"Properties" xml:"Properties"`
+}

+ 21 - 0
services/foas/struct_outputs.go

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

+ 35 - 0
services/foas/struct_package.go

@@ -0,0 +1,35 @@
+package foas
+
+//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.
+
+// Package is a nested struct in foas response
+type Package struct {
+	ModifyTime  int64  `json:"ModifyTime" xml:"ModifyTime"`
+	OriginName  string `json:"OriginName" xml:"OriginName"`
+	OssOwner    string `json:"OssOwner" xml:"OssOwner"`
+	PackageName string `json:"PackageName" xml:"PackageName"`
+	CreateTime  int64  `json:"CreateTime" xml:"CreateTime"`
+	OssBucket   string `json:"OssBucket" xml:"OssBucket"`
+	OssPath     string `json:"OssPath" xml:"OssPath"`
+	Tag         string `json:"Tag" xml:"Tag"`
+	ProjectName string `json:"ProjectName" xml:"ProjectName"`
+	Modifier    string `json:"Modifier" xml:"Modifier"`
+	Md5         string `json:"Md5" xml:"Md5"`
+	Creator     string `json:"Creator" xml:"Creator"`
+	OssEndpoint string `json:"OssEndpoint" xml:"OssEndpoint"`
+	Description string `json:"Description" xml:"Description"`
+	Type        string `json:"Type" xml:"Type"`
+}

+ 21 - 0
services/foas/struct_packages.go

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

+ 23 - 0
services/foas/struct_plan_json_info.go

@@ -0,0 +1,23 @@
+package foas
+
+//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.
+
+// PlanJsonInfo is a nested struct in foas response
+type PlanJsonInfo struct {
+	Status       string `json:"Status" xml:"Status"`
+	PlanJson     string `json:"PlanJson" xml:"PlanJson"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}

+ 22 - 0
services/foas/struct_plan_json_resource.go

@@ -0,0 +1,22 @@
+package foas
+
+//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.
+
+// PlanJsonResource is a nested struct in foas response
+type PlanJsonResource struct {
+	Cores    float64 `json:"Cores" xml:"Cores"`
+	MemoryGB float64 `json:"MemoryGB" xml:"MemoryGB"`
+}

+ 21 - 0
services/foas/struct_plan_list.go

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

+ 32 - 0
services/foas/struct_project.go

@@ -0,0 +1,32 @@
+package foas
+
+//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.
+
+// Project is a nested struct in foas response
+type Project struct {
+	Name        string `json:"Name" xml:"Name"`
+	Region      string `json:"Region" xml:"Region"`
+	ModifyTime  int64  `json:"ModifyTime" xml:"ModifyTime"`
+	ClusterId   string `json:"ClusterId" xml:"ClusterId"`
+	ManagerIds  string `json:"ManagerIds" xml:"ManagerIds"`
+	State       string `json:"State" xml:"State"`
+	Modifier    string `json:"Modifier" xml:"Modifier"`
+	Creator     string `json:"Creator" xml:"Creator"`
+	Id          string `json:"Id" xml:"Id"`
+	CreateTime  int64  `json:"CreateTime" xml:"CreateTime"`
+	Description string `json:"Description" xml:"Description"`
+	DeployType  string `json:"DeployType" xml:"DeployType"`
+}

+ 21 - 0
services/foas/struct_projects.go

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

+ 31 - 0
services/foas/struct_queue.go

@@ -0,0 +1,31 @@
+package foas
+
+//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.
+
+// Queue is a nested struct in foas response
+type Queue struct {
+	ClusterId string `json:"ClusterId" xml:"ClusterId"`
+	QueueName string `json:"QueueName" xml:"QueueName"`
+	UsedVCore int    `json:"UsedVCore" xml:"UsedVCore"`
+	MinGpu    int    `json:"MinGpu" xml:"MinGpu"`
+	UsedMem   int    `json:"UsedMem" xml:"UsedMem"`
+	MaxVCore  int    `json:"MaxVCore" xml:"MaxVCore"`
+	MaxMem    int    `json:"MaxMem" xml:"MaxMem"`
+	MaxGpu    int    `json:"MaxGpu" xml:"MaxGpu"`
+	UsedGpu   int    `json:"UsedGpu" xml:"UsedGpu"`
+	MinMem    int    `json:"MinMem" xml:"MinMem"`
+	MinVCore  int    `json:"MinVCore" xml:"MinVCore"`
+}

+ 21 - 0
services/foas/struct_queues_in_get_cluster_queue_info.go

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

+ 21 - 0
services/foas/struct_queues_in_list_project_bind_queue.go

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

+ 21 - 0
services/foas/struct_queues_in_list_project_bind_queue_resource.go

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

+ 26 - 0
services/foas/struct_resource.go

@@ -0,0 +1,26 @@
+package foas
+
+//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.
+
+// Resource is a nested struct in foas response
+type Resource struct {
+	AllocatedMB           int64 `json:"AllocatedMB" xml:"AllocatedMB"`
+	TotalVirtualCores     int64 `json:"TotalVirtualCores" xml:"TotalVirtualCores"`
+	AllocatedVirtualCores int64 `json:"AllocatedVirtualCores" xml:"AllocatedVirtualCores"`
+	AvailableMB           int64 `json:"AvailableMB" xml:"AvailableMB"`
+	TotalMB               int64 `json:"TotalMB" xml:"TotalMB"`
+	AvailableVirtualCores int64 `json:"AvailableVirtualCores" xml:"AvailableVirtualCores"`
+}

+ 28 - 0
services/foas/struct_run_summary.go

@@ -0,0 +1,28 @@
+package foas
+
+//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.
+
+// RunSummary is a nested struct in foas response
+type RunSummary struct {
+	LastErrorTime    int64  `json:"LastErrorTime" xml:"LastErrorTime"`
+	InputDelay       int64  `json:"InputDelay" xml:"InputDelay"`
+	EngineJobHandler string `json:"EngineJobHandler" xml:"EngineJobHandler"`
+	Id               int64  `json:"Id" xml:"Id"`
+	ActualState      string `json:"ActualState" xml:"ActualState"`
+	LastErrorMessage string `json:"LastErrorMessage" xml:"LastErrorMessage"`
+	ExpectState      string `json:"ExpectState" xml:"ExpectState"`
+	JobName          string `json:"JobName" xml:"JobName"`
+}

+ 21 - 0
services/foas/struct_run_summarys.go

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

+ 106 - 0
services/foas/unbind_queue.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// UnbindQueue invokes the foas.UnbindQueue API synchronously
+// api document: https://help.aliyun.com/api/foas/unbindqueue.html
+func (client *Client) UnbindQueue(request *UnbindQueueRequest) (response *UnbindQueueResponse, err error) {
+	response = CreateUnbindQueueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UnbindQueueWithChan invokes the foas.UnbindQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/unbindqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnbindQueueWithChan(request *UnbindQueueRequest) (<-chan *UnbindQueueResponse, <-chan error) {
+	responseChan := make(chan *UnbindQueueResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UnbindQueue(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UnbindQueueWithCallback invokes the foas.UnbindQueue API asynchronously
+// api document: https://help.aliyun.com/api/foas/unbindqueue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnbindQueueWithCallback(request *UnbindQueueRequest, callback func(response *UnbindQueueResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UnbindQueueResponse
+		var err error
+		defer close(result)
+		response, err = client.UnbindQueue(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UnbindQueueRequest is the request struct for api UnbindQueue
+type UnbindQueueRequest struct {
+	*requests.RoaRequest
+	QueueName   string `position:"Query" name:"queueName"`
+	ProjectName string `position:"Path" name:"projectName"`
+	ClusterId   string `position:"Query" name:"clusterId"`
+}
+
+// UnbindQueueResponse is the response struct for api UnbindQueue
+type UnbindQueueResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUnbindQueueRequest creates a request to invoke UnbindQueue API
+func CreateUnbindQueueRequest() (request *UnbindQueueRequest) {
+	request = &UnbindQueueRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "UnbindQueue", "/api/v2/projects/[projectName]/queue", "foas", "openAPI")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateUnbindQueueResponse creates a response to parse from UnbindQueue response
+func CreateUnbindQueueResponse() (response *UnbindQueueResponse) {
+	response = &UnbindQueueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/foas/update_auto_scale_config.go

@@ -0,0 +1,107 @@
+package foas
+
+//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"
+)
+
+// UpdateAutoScaleConfig invokes the foas.UpdateAutoScaleConfig API synchronously
+// api document: https://help.aliyun.com/api/foas/updateautoscaleconfig.html
+func (client *Client) UpdateAutoScaleConfig(request *UpdateAutoScaleConfigRequest) (response *UpdateAutoScaleConfigResponse, err error) {
+	response = CreateUpdateAutoScaleConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateAutoScaleConfigWithChan invokes the foas.UpdateAutoScaleConfig API asynchronously
+// api document: https://help.aliyun.com/api/foas/updateautoscaleconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateAutoScaleConfigWithChan(request *UpdateAutoScaleConfigRequest) (<-chan *UpdateAutoScaleConfigResponse, <-chan error) {
+	responseChan := make(chan *UpdateAutoScaleConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateAutoScaleConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateAutoScaleConfigWithCallback invokes the foas.UpdateAutoScaleConfig API asynchronously
+// api document: https://help.aliyun.com/api/foas/updateautoscaleconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateAutoScaleConfigWithCallback(request *UpdateAutoScaleConfigRequest, callback func(response *UpdateAutoScaleConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateAutoScaleConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateAutoScaleConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateAutoScaleConfigRequest is the request struct for api UpdateAutoScaleConfig
+type UpdateAutoScaleConfigRequest struct {
+	*requests.RoaRequest
+	ProjectName string           `position:"Path" name:"projectName"`
+	InstanceId  requests.Integer `position:"Path" name:"instanceId"`
+	ConfigJson  string           `position:"Body" name:"configJson"`
+	JobName     string           `position:"Path" name:"jobName"`
+}
+
+// UpdateAutoScaleConfigResponse is the response struct for api UpdateAutoScaleConfig
+type UpdateAutoScaleConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateAutoScaleConfigRequest creates a request to invoke UpdateAutoScaleConfig API
+func CreateUpdateAutoScaleConfigRequest() (request *UpdateAutoScaleConfigRequest) {
+	request = &UpdateAutoScaleConfigRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "UpdateAutoScaleConfig", "/api/v2/projects/[projectName]/jobs/[jobName]/instance/[instanceId]/autoscale/config", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateUpdateAutoScaleConfigResponse creates a response to parse from UpdateAutoScaleConfig response
+func CreateUpdateAutoScaleConfigResponse() (response *UpdateAutoScaleConfigResponse) {
+	response = &UpdateAutoScaleConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/foas/update_job.go

@@ -0,0 +1,114 @@
+package foas
+
+//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"
+)
+
+// UpdateJob invokes the foas.UpdateJob API synchronously
+// api document: https://help.aliyun.com/api/foas/updatejob.html
+func (client *Client) UpdateJob(request *UpdateJobRequest) (response *UpdateJobResponse, err error) {
+	response = CreateUpdateJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateJobWithChan invokes the foas.UpdateJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/updatejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateJobWithChan(request *UpdateJobRequest) (<-chan *UpdateJobResponse, <-chan error) {
+	responseChan := make(chan *UpdateJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateJobWithCallback invokes the foas.UpdateJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/updatejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateJobWithCallback(request *UpdateJobRequest, callback func(response *UpdateJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateJobResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateJobRequest is the request struct for api UpdateJob
+type UpdateJobRequest struct {
+	*requests.RoaRequest
+	QueueName     string           `position:"Body" name:"queueName"`
+	ProjectName   string           `position:"Path" name:"projectName"`
+	Code          string           `position:"Body" name:"code"`
+	Description   string           `position:"Body" name:"description"`
+	PlanJson      string           `position:"Body" name:"planJson"`
+	EngineVersion string           `position:"Body" name:"engineVersion"`
+	ClusterId     string           `position:"Body" name:"clusterId"`
+	Packages      string           `position:"Body" name:"packages"`
+	FolderId      requests.Integer `position:"Body" name:"folderId"`
+	Properties    string           `position:"Body" name:"properties"`
+	JobName       string           `position:"Path" name:"jobName"`
+}
+
+// UpdateJobResponse is the response struct for api UpdateJob
+type UpdateJobResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateJobRequest creates a request to invoke UpdateJob API
+func CreateUpdateJobRequest() (request *UpdateJobRequest) {
+	request = &UpdateJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "UpdateJob", "/api/v2/projects/[projectName]/jobs/[jobName]", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateUpdateJobResponse creates a response to parse from UpdateJob response
+func CreateUpdateJobResponse() (response *UpdateJobResponse) {
+	response = &UpdateJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/foas/update_package.go

@@ -0,0 +1,113 @@
+package foas
+
+//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"
+)
+
+// UpdatePackage invokes the foas.UpdatePackage API synchronously
+// api document: https://help.aliyun.com/api/foas/updatepackage.html
+func (client *Client) UpdatePackage(request *UpdatePackageRequest) (response *UpdatePackageResponse, err error) {
+	response = CreateUpdatePackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdatePackageWithChan invokes the foas.UpdatePackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/updatepackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdatePackageWithChan(request *UpdatePackageRequest) (<-chan *UpdatePackageResponse, <-chan error) {
+	responseChan := make(chan *UpdatePackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdatePackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdatePackageWithCallback invokes the foas.UpdatePackage API asynchronously
+// api document: https://help.aliyun.com/api/foas/updatepackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdatePackageWithCallback(request *UpdatePackageRequest, callback func(response *UpdatePackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdatePackageResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdatePackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdatePackageRequest is the request struct for api UpdatePackage
+type UpdatePackageRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	OssBucket   string `position:"Body" name:"ossBucket"`
+	OssOwner    string `position:"Body" name:"ossOwner"`
+	PackageName string `position:"Path" name:"packageName"`
+	OssEndpoint string `position:"Body" name:"ossEndpoint"`
+	Description string `position:"Body" name:"description"`
+	Tag         string `position:"Body" name:"tag"`
+	OriginName  string `position:"Body" name:"originName"`
+	OssPath     string `position:"Body" name:"ossPath"`
+	Md5         string `position:"Body" name:"md5"`
+}
+
+// UpdatePackageResponse is the response struct for api UpdatePackage
+type UpdatePackageResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdatePackageRequest creates a request to invoke UpdatePackage API
+func CreateUpdatePackageRequest() (request *UpdatePackageRequest) {
+	request = &UpdatePackageRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "UpdatePackage", "/api/v2/projects/[projectName]/packages/[packageName]", "foas", "openAPI")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateUpdatePackageResponse creates a response to parse from UpdatePackage response
+func CreateUpdatePackageResponse() (response *UpdatePackageResponse) {
+	response = &UpdatePackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/foas/validate_job.go

@@ -0,0 +1,106 @@
+package foas
+
+//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"
+)
+
+// ValidateJob invokes the foas.ValidateJob API synchronously
+// api document: https://help.aliyun.com/api/foas/validatejob.html
+func (client *Client) ValidateJob(request *ValidateJobRequest) (response *ValidateJobResponse, err error) {
+	response = CreateValidateJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ValidateJobWithChan invokes the foas.ValidateJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/validatejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateJobWithChan(request *ValidateJobRequest) (<-chan *ValidateJobResponse, <-chan error) {
+	responseChan := make(chan *ValidateJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ValidateJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ValidateJobWithCallback invokes the foas.ValidateJob API asynchronously
+// api document: https://help.aliyun.com/api/foas/validatejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateJobWithCallback(request *ValidateJobRequest, callback func(response *ValidateJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ValidateJobResponse
+		var err error
+		defer close(result)
+		response, err = client.ValidateJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ValidateJobRequest is the request struct for api ValidateJob
+type ValidateJobRequest struct {
+	*requests.RoaRequest
+	ProjectName string `position:"Path" name:"projectName"`
+	JobName     string `position:"Path" name:"jobName"`
+}
+
+// ValidateJobResponse is the response struct for api ValidateJob
+type ValidateJobResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	JobInOut  JobInOut `json:"JobInOut" xml:"JobInOut"`
+}
+
+// CreateValidateJobRequest creates a request to invoke ValidateJob API
+func CreateValidateJobRequest() (request *ValidateJobRequest) {
+	request = &ValidateJobRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("foas", "2018-11-11", "ValidateJob", "/api/v2/projects/[projectName]/jobs/[jobName]/validate", "foas", "openAPI")
+	request.Method = requests.GET
+	return
+}
+
+// CreateValidateJobResponse creates a response to parse from ValidateJob response
+func CreateValidateJobResponse() (response *ValidateJobResponse) {
+	response = &ValidateJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}