Browse Source

OOS SDK first release for managing of templates, executions and actions.

sdk-team 6 years ago
parent
commit
e18d903080

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-06-20 Version: 1.60.50
+- OOS SDK first release for managing of templates, executions and actions.
+
 2019-06-19 Version: 1.60.49
 1, Add DefaultPolicyVersion as return field to GetPolicy interface, Facilitating to get policy document from this interface.
 2, Add RotateStrategy as input field to CreatePolicyVersion interface for rotating policy version when reaching policy version limit.

+ 103 - 0
services/oos/cancel_execution.go

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

+ 104 - 0
services/oos/client.go

@@ -0,0 +1,104 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithProvider creates a sdk client with providers
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) {
+	client = &Client{}
+	var pc provider.Provider
+	if len(providers) == 0 {
+		pc = provider.DefaultChain
+	} else {
+		pc = provider.NewProviderChain(providers)
+	}
+	err = client.InitWithProviderChain(regionId, pc)
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 105 - 0
services/oos/create_template.go

@@ -0,0 +1,105 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// CreateTemplate invokes the oos.CreateTemplate API synchronously
+// api document: https://help.aliyun.com/api/oos/createtemplate.html
+func (client *Client) CreateTemplate(request *CreateTemplateRequest) (response *CreateTemplateResponse, err error) {
+	response = CreateCreateTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateTemplateWithChan invokes the oos.CreateTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/createtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateTemplateWithChan(request *CreateTemplateRequest) (<-chan *CreateTemplateResponse, <-chan error) {
+	responseChan := make(chan *CreateTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateTemplateWithCallback invokes the oos.CreateTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/createtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateTemplateWithCallback(request *CreateTemplateRequest, callback func(response *CreateTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateTemplateRequest is the request struct for api CreateTemplate
+type CreateTemplateRequest struct {
+	*requests.RpcRequest
+	TemplateName string `position:"Query" name:"TemplateName"`
+	Content      string `position:"Query" name:"Content"`
+}
+
+// CreateTemplateResponse is the response struct for api CreateTemplate
+type CreateTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Template  Template `json:"Template" xml:"Template"`
+}
+
+// CreateCreateTemplateRequest creates a request to invoke CreateTemplate API
+func CreateCreateTemplateRequest() (request *CreateTemplateRequest) {
+	request = &CreateTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "CreateTemplate", "oos", "openAPI")
+	return
+}
+
+// CreateCreateTemplateResponse creates a response to parse from CreateTemplate response
+func CreateCreateTemplateResponse() (response *CreateTemplateResponse) {
+	response = &CreateTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/oos/delete_executions.go

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

+ 103 - 0
services/oos/delete_template.go

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

+ 104 - 0
services/oos/generate_execution_policy.go

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

+ 105 - 0
services/oos/get_execution_template.go

@@ -0,0 +1,105 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// GetExecutionTemplate invokes the oos.GetExecutionTemplate API synchronously
+// api document: https://help.aliyun.com/api/oos/getexecutiontemplate.html
+func (client *Client) GetExecutionTemplate(request *GetExecutionTemplateRequest) (response *GetExecutionTemplateResponse, err error) {
+	response = CreateGetExecutionTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetExecutionTemplateWithChan invokes the oos.GetExecutionTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/getexecutiontemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetExecutionTemplateWithChan(request *GetExecutionTemplateRequest) (<-chan *GetExecutionTemplateResponse, <-chan error) {
+	responseChan := make(chan *GetExecutionTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetExecutionTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetExecutionTemplateWithCallback invokes the oos.GetExecutionTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/getexecutiontemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetExecutionTemplateWithCallback(request *GetExecutionTemplateRequest, callback func(response *GetExecutionTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetExecutionTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetExecutionTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetExecutionTemplateRequest is the request struct for api GetExecutionTemplate
+type GetExecutionTemplateRequest struct {
+	*requests.RpcRequest
+	ExecutionId string `position:"Query" name:"ExecutionId"`
+}
+
+// GetExecutionTemplateResponse is the response struct for api GetExecutionTemplate
+type GetExecutionTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Content   string   `json:"Content" xml:"Content"`
+	Template  Template `json:"Template" xml:"Template"`
+}
+
+// CreateGetExecutionTemplateRequest creates a request to invoke GetExecutionTemplate API
+func CreateGetExecutionTemplateRequest() (request *GetExecutionTemplateRequest) {
+	request = &GetExecutionTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "GetExecutionTemplate", "oos", "openAPI")
+	return
+}
+
+// CreateGetExecutionTemplateResponse creates a response to parse from GetExecutionTemplate response
+func CreateGetExecutionTemplateResponse() (response *GetExecutionTemplateResponse) {
+	response = &GetExecutionTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/oos/get_template.go

@@ -0,0 +1,106 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// GetTemplate invokes the oos.GetTemplate API synchronously
+// api document: https://help.aliyun.com/api/oos/gettemplate.html
+func (client *Client) GetTemplate(request *GetTemplateRequest) (response *GetTemplateResponse, err error) {
+	response = CreateGetTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetTemplateWithChan invokes the oos.GetTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/gettemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTemplateWithChan(request *GetTemplateRequest) (<-chan *GetTemplateResponse, <-chan error) {
+	responseChan := make(chan *GetTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetTemplateWithCallback invokes the oos.GetTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/gettemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTemplateWithCallback(request *GetTemplateRequest, callback func(response *GetTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetTemplateRequest is the request struct for api GetTemplate
+type GetTemplateRequest struct {
+	*requests.RpcRequest
+	TemplateVersion string `position:"Query" name:"TemplateVersion"`
+	TemplateName    string `position:"Query" name:"TemplateName"`
+}
+
+// GetTemplateResponse is the response struct for api GetTemplate
+type GetTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Content   string   `json:"Content" xml:"Content"`
+	Template  Template `json:"Template" xml:"Template"`
+}
+
+// CreateGetTemplateRequest creates a request to invoke GetTemplate API
+func CreateGetTemplateRequest() (request *GetTemplateRequest) {
+	request = &GetTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "GetTemplate", "oos", "openAPI")
+	return
+}
+
+// CreateGetTemplateResponse creates a response to parse from GetTemplate response
+func CreateGetTemplateResponse() (response *GetTemplateResponse) {
+	response = &GetTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/oos/list_actions.go

@@ -0,0 +1,108 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListActions invokes the oos.ListActions API synchronously
+// api document: https://help.aliyun.com/api/oos/listactions.html
+func (client *Client) ListActions(request *ListActionsRequest) (response *ListActionsResponse, err error) {
+	response = CreateListActionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListActionsWithChan invokes the oos.ListActions API asynchronously
+// api document: https://help.aliyun.com/api/oos/listactions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListActionsWithChan(request *ListActionsRequest) (<-chan *ListActionsResponse, <-chan error) {
+	responseChan := make(chan *ListActionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListActions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListActionsWithCallback invokes the oos.ListActions API asynchronously
+// api document: https://help.aliyun.com/api/oos/listactions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListActionsWithCallback(request *ListActionsRequest, callback func(response *ListActionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListActionsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListActions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListActionsRequest is the request struct for api ListActions
+type ListActionsRequest struct {
+	*requests.RpcRequest
+	NextToken  string           `position:"Query" name:"NextToken"`
+	MaxResults requests.Integer `position:"Query" name:"MaxResults"`
+	ActionName string           `position:"Query" name:"ActionName"`
+}
+
+// ListActionsResponse is the response struct for api ListActions
+type ListActionsResponse struct {
+	*responses.BaseResponse
+	RequestId  string   `json:"RequestId" xml:"RequestId"`
+	MaxResults int      `json:"MaxResults" xml:"MaxResults"`
+	NextToken  string   `json:"NextToken" xml:"NextToken"`
+	Actions    []Action `json:"Actions" xml:"Actions"`
+}
+
+// CreateListActionsRequest creates a request to invoke ListActions API
+func CreateListActionsRequest() (request *ListActionsRequest) {
+	request = &ListActionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "ListActions", "oos", "openAPI")
+	return
+}
+
+// CreateListActionsResponse creates a response to parse from ListActions response
+func CreateListActionsResponse() (response *ListActionsResponse) {
+	response = &ListActionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/oos/list_execution_logs.go

@@ -0,0 +1,108 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListExecutionLogs invokes the oos.ListExecutionLogs API synchronously
+// api document: https://help.aliyun.com/api/oos/listexecutionlogs.html
+func (client *Client) ListExecutionLogs(request *ListExecutionLogsRequest) (response *ListExecutionLogsResponse, err error) {
+	response = CreateListExecutionLogsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListExecutionLogsWithChan invokes the oos.ListExecutionLogs API asynchronously
+// api document: https://help.aliyun.com/api/oos/listexecutionlogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListExecutionLogsWithChan(request *ListExecutionLogsRequest) (<-chan *ListExecutionLogsResponse, <-chan error) {
+	responseChan := make(chan *ListExecutionLogsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListExecutionLogs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListExecutionLogsWithCallback invokes the oos.ListExecutionLogs API asynchronously
+// api document: https://help.aliyun.com/api/oos/listexecutionlogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListExecutionLogsWithCallback(request *ListExecutionLogsRequest, callback func(response *ListExecutionLogsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListExecutionLogsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListExecutionLogs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListExecutionLogsRequest is the request struct for api ListExecutionLogs
+type ListExecutionLogsRequest struct {
+	*requests.RpcRequest
+	ExecutionId string           `position:"Query" name:"ExecutionId"`
+	NextToken   string           `position:"Query" name:"NextToken"`
+	MaxResults  requests.Integer `position:"Query" name:"MaxResults"`
+}
+
+// ListExecutionLogsResponse is the response struct for api ListExecutionLogs
+type ListExecutionLogsResponse struct {
+	*responses.BaseResponse
+	RequestId     string         `json:"RequestId" xml:"RequestId"`
+	MaxResults    int            `json:"MaxResults" xml:"MaxResults"`
+	NextToken     string         `json:"NextToken" xml:"NextToken"`
+	ExecutionLogs []ExecutionLog `json:"ExecutionLogs" xml:"ExecutionLogs"`
+}
+
+// CreateListExecutionLogsRequest creates a request to invoke ListExecutionLogs API
+func CreateListExecutionLogsRequest() (request *ListExecutionLogsRequest) {
+	request = &ListExecutionLogsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "ListExecutionLogs", "oos", "openAPI")
+	return
+}
+
+// CreateListExecutionLogsResponse creates a response to parse from ListExecutionLogs response
+func CreateListExecutionLogsResponse() (response *ListExecutionLogsResponse) {
+	response = &ListExecutionLogsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 121 - 0
services/oos/list_executions.go

@@ -0,0 +1,121 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListExecutions invokes the oos.ListExecutions API synchronously
+// api document: https://help.aliyun.com/api/oos/listexecutions.html
+func (client *Client) ListExecutions(request *ListExecutionsRequest) (response *ListExecutionsResponse, err error) {
+	response = CreateListExecutionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListExecutionsWithChan invokes the oos.ListExecutions API asynchronously
+// api document: https://help.aliyun.com/api/oos/listexecutions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListExecutionsWithChan(request *ListExecutionsRequest) (<-chan *ListExecutionsResponse, <-chan error) {
+	responseChan := make(chan *ListExecutionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListExecutions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListExecutionsWithCallback invokes the oos.ListExecutions API asynchronously
+// api document: https://help.aliyun.com/api/oos/listexecutions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListExecutionsWithCallback(request *ListExecutionsRequest, callback func(response *ListExecutionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListExecutionsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListExecutions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListExecutionsRequest is the request struct for api ListExecutions
+type ListExecutionsRequest struct {
+	*requests.RpcRequest
+	ExecutedBy            string           `position:"Query" name:"ExecutedBy"`
+	IncludeChildExecution requests.Boolean `position:"Query" name:"IncludeChildExecution"`
+	StartDateAfter        string           `position:"Query" name:"StartDateAfter"`
+	StartDateBefore       string           `position:"Query" name:"StartDateBefore"`
+	Mode                  string           `position:"Query" name:"Mode"`
+	ExecutionId           string           `position:"Query" name:"ExecutionId"`
+	ParentExecutionId     string           `position:"Query" name:"ParentExecutionId"`
+	RamRole               string           `position:"Query" name:"RamRole"`
+	NextToken             string           `position:"Query" name:"NextToken"`
+	EndDateAfter          string           `position:"Query" name:"EndDateAfter"`
+	MaxResults            requests.Integer `position:"Query" name:"MaxResults"`
+	TemplateName          string           `position:"Query" name:"TemplateName"`
+	EndDateBefore         string           `position:"Query" name:"EndDateBefore"`
+	SortOrder             string           `position:"Query" name:"SortOrder"`
+	SortField             string           `position:"Query" name:"SortField"`
+	Status                string           `position:"Query" name:"Status"`
+}
+
+// ListExecutionsResponse is the response struct for api ListExecutions
+type ListExecutionsResponse struct {
+	*responses.BaseResponse
+	RequestId  string      `json:"RequestId" xml:"RequestId"`
+	MaxResults int         `json:"MaxResults" xml:"MaxResults"`
+	NextToken  string      `json:"NextToken" xml:"NextToken"`
+	Executions []Execution `json:"Executions" xml:"Executions"`
+}
+
+// CreateListExecutionsRequest creates a request to invoke ListExecutions API
+func CreateListExecutionsRequest() (request *ListExecutionsRequest) {
+	request = &ListExecutionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "ListExecutions", "oos", "openAPI")
+	return
+}
+
+// CreateListExecutionsResponse creates a response to parse from ListExecutions response
+func CreateListExecutionsResponse() (response *ListExecutionsResponse) {
+	response = &ListExecutionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 120 - 0
services/oos/list_task_executions.go

@@ -0,0 +1,120 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListTaskExecutions invokes the oos.ListTaskExecutions API synchronously
+// api document: https://help.aliyun.com/api/oos/listtaskexecutions.html
+func (client *Client) ListTaskExecutions(request *ListTaskExecutionsRequest) (response *ListTaskExecutionsResponse, err error) {
+	response = CreateListTaskExecutionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTaskExecutionsWithChan invokes the oos.ListTaskExecutions API asynchronously
+// api document: https://help.aliyun.com/api/oos/listtaskexecutions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTaskExecutionsWithChan(request *ListTaskExecutionsRequest) (<-chan *ListTaskExecutionsResponse, <-chan error) {
+	responseChan := make(chan *ListTaskExecutionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTaskExecutions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTaskExecutionsWithCallback invokes the oos.ListTaskExecutions API asynchronously
+// api document: https://help.aliyun.com/api/oos/listtaskexecutions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTaskExecutionsWithCallback(request *ListTaskExecutionsRequest, callback func(response *ListTaskExecutionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTaskExecutionsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTaskExecutions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTaskExecutionsRequest is the request struct for api ListTaskExecutions
+type ListTaskExecutionsRequest struct {
+	*requests.RpcRequest
+	StartDateAfter            string           `position:"Query" name:"StartDateAfter"`
+	StartDateBefore           string           `position:"Query" name:"StartDateBefore"`
+	TaskName                  string           `position:"Query" name:"TaskName"`
+	IncludeChildTaskExecution requests.Boolean `position:"Query" name:"IncludeChildTaskExecution"`
+	ExecutionId               string           `position:"Query" name:"ExecutionId"`
+	ParentTaskExecutionId     string           `position:"Query" name:"ParentTaskExecutionId"`
+	NextToken                 string           `position:"Query" name:"NextToken"`
+	EndDateAfter              string           `position:"Query" name:"EndDateAfter"`
+	MaxResults                requests.Integer `position:"Query" name:"MaxResults"`
+	EndDateBefore             string           `position:"Query" name:"EndDateBefore"`
+	TaskExecutionId           string           `position:"Query" name:"TaskExecutionId"`
+	SortOrder                 string           `position:"Query" name:"SortOrder"`
+	SortField                 string           `position:"Query" name:"SortField"`
+	TaskAction                string           `position:"Query" name:"TaskAction"`
+	Status                    string           `position:"Query" name:"Status"`
+}
+
+// ListTaskExecutionsResponse is the response struct for api ListTaskExecutions
+type ListTaskExecutionsResponse struct {
+	*responses.BaseResponse
+	RequestId      string          `json:"RequestId" xml:"RequestId"`
+	MaxResults     int             `json:"MaxResults" xml:"MaxResults"`
+	NextToken      string          `json:"NextToken" xml:"NextToken"`
+	TaskExecutions []TaskExecution `json:"TaskExecutions" xml:"TaskExecutions"`
+}
+
+// CreateListTaskExecutionsRequest creates a request to invoke ListTaskExecutions API
+func CreateListTaskExecutionsRequest() (request *ListTaskExecutionsRequest) {
+	request = &ListTaskExecutionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "ListTaskExecutions", "oos", "openAPI")
+	return
+}
+
+// CreateListTaskExecutionsResponse creates a response to parse from ListTaskExecutions response
+func CreateListTaskExecutionsResponse() (response *ListTaskExecutionsResponse) {
+	response = &ListTaskExecutionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/oos/list_templates.go

@@ -0,0 +1,115 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ListTemplates invokes the oos.ListTemplates API synchronously
+// api document: https://help.aliyun.com/api/oos/listtemplates.html
+func (client *Client) ListTemplates(request *ListTemplatesRequest) (response *ListTemplatesResponse, err error) {
+	response = CreateListTemplatesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTemplatesWithChan invokes the oos.ListTemplates API asynchronously
+// api document: https://help.aliyun.com/api/oos/listtemplates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTemplatesWithChan(request *ListTemplatesRequest) (<-chan *ListTemplatesResponse, <-chan error) {
+	responseChan := make(chan *ListTemplatesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTemplates(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTemplatesWithCallback invokes the oos.ListTemplates API asynchronously
+// api document: https://help.aliyun.com/api/oos/listtemplates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTemplatesWithCallback(request *ListTemplatesRequest, callback func(response *ListTemplatesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTemplatesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTemplates(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTemplatesRequest is the request struct for api ListTemplates
+type ListTemplatesRequest struct {
+	*requests.RpcRequest
+	CreatedDateBefore string           `position:"Query" name:"CreatedDateBefore"`
+	CreatedBy         string           `position:"Query" name:"CreatedBy"`
+	NextToken         string           `position:"Query" name:"NextToken"`
+	CreatedDateAfter  string           `position:"Query" name:"CreatedDateAfter"`
+	MaxResults        requests.Integer `position:"Query" name:"MaxResults"`
+	TemplateName      string           `position:"Query" name:"TemplateName"`
+	SortOrder         string           `position:"Query" name:"SortOrder"`
+	TemplateFormat    string           `position:"Query" name:"TemplateFormat"`
+	ShareType         string           `position:"Query" name:"ShareType"`
+	SortField         string           `position:"Query" name:"SortField"`
+}
+
+// ListTemplatesResponse is the response struct for api ListTemplates
+type ListTemplatesResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	MaxResults int        `json:"MaxResults" xml:"MaxResults"`
+	NextToken  string     `json:"NextToken" xml:"NextToken"`
+	Templates  []Template `json:"Templates" xml:"Templates"`
+}
+
+// CreateListTemplatesRequest creates a request to invoke ListTemplates API
+func CreateListTemplatesRequest() (request *ListTemplatesRequest) {
+	request = &ListTemplatesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "ListTemplates", "oos", "openAPI")
+	return
+}
+
+// CreateListTemplatesResponse creates a response to parse from ListTemplates response
+func CreateListTemplatesResponse() (response *ListTemplatesResponse) {
+	response = &ListTemplatesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/oos/notify_execution.go

@@ -0,0 +1,108 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// NotifyExecution invokes the oos.NotifyExecution API synchronously
+// api document: https://help.aliyun.com/api/oos/notifyexecution.html
+func (client *Client) NotifyExecution(request *NotifyExecutionRequest) (response *NotifyExecutionResponse, err error) {
+	response = CreateNotifyExecutionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// NotifyExecutionWithChan invokes the oos.NotifyExecution API asynchronously
+// api document: https://help.aliyun.com/api/oos/notifyexecution.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) NotifyExecutionWithChan(request *NotifyExecutionRequest) (<-chan *NotifyExecutionResponse, <-chan error) {
+	responseChan := make(chan *NotifyExecutionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.NotifyExecution(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// NotifyExecutionWithCallback invokes the oos.NotifyExecution API asynchronously
+// api document: https://help.aliyun.com/api/oos/notifyexecution.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) NotifyExecutionWithCallback(request *NotifyExecutionRequest, callback func(response *NotifyExecutionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *NotifyExecutionResponse
+		var err error
+		defer close(result)
+		response, err = client.NotifyExecution(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// NotifyExecutionRequest is the request struct for api NotifyExecution
+type NotifyExecutionRequest struct {
+	*requests.RpcRequest
+	ExecutionId     string `position:"Query" name:"ExecutionId"`
+	ExecutionStatus string `position:"Query" name:"ExecutionStatus"`
+	NotifyNote      string `position:"Query" name:"NotifyNote"`
+	TaskName        string `position:"Query" name:"TaskName"`
+	NotifyType      string `position:"Query" name:"NotifyType"`
+	Parameters      string `position:"Query" name:"Parameters"`
+}
+
+// NotifyExecutionResponse is the response struct for api NotifyExecution
+type NotifyExecutionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateNotifyExecutionRequest creates a request to invoke NotifyExecution API
+func CreateNotifyExecutionRequest() (request *NotifyExecutionRequest) {
+	request = &NotifyExecutionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "NotifyExecution", "oos", "openAPI")
+	return
+}
+
+// CreateNotifyExecutionResponse creates a response to parse from NotifyExecution response
+func CreateNotifyExecutionResponse() (response *NotifyExecutionResponse) {
+	response = &NotifyExecutionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/oos/start_execution.go

@@ -0,0 +1,109 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// StartExecution invokes the oos.StartExecution API synchronously
+// api document: https://help.aliyun.com/api/oos/startexecution.html
+func (client *Client) StartExecution(request *StartExecutionRequest) (response *StartExecutionResponse, err error) {
+	response = CreateStartExecutionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartExecutionWithChan invokes the oos.StartExecution API asynchronously
+// api document: https://help.aliyun.com/api/oos/startexecution.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartExecutionWithChan(request *StartExecutionRequest) (<-chan *StartExecutionResponse, <-chan error) {
+	responseChan := make(chan *StartExecutionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartExecution(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartExecutionWithCallback invokes the oos.StartExecution API asynchronously
+// api document: https://help.aliyun.com/api/oos/startexecution.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartExecutionWithCallback(request *StartExecutionRequest, callback func(response *StartExecutionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartExecutionResponse
+		var err error
+		defer close(result)
+		response, err = client.StartExecution(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartExecutionRequest is the request struct for api StartExecution
+type StartExecutionRequest struct {
+	*requests.RpcRequest
+	Mode              string `position:"Query" name:"Mode"`
+	TemplateVersion   string `position:"Query" name:"TemplateVersion"`
+	ParentExecutionId string `position:"Query" name:"ParentExecutionId"`
+	TemplateName      string `position:"Query" name:"TemplateName"`
+	SafetyCheck       string `position:"Query" name:"SafetyCheck"`
+	Parameters        string `position:"Query" name:"Parameters"`
+}
+
+// StartExecutionResponse is the response struct for api StartExecution
+type StartExecutionResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	Execution Execution `json:"Execution" xml:"Execution"`
+}
+
+// CreateStartExecutionRequest creates a request to invoke StartExecution API
+func CreateStartExecutionRequest() (request *StartExecutionRequest) {
+	request = &StartExecutionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "StartExecution", "oos", "openAPI")
+	return
+}
+
+// CreateStartExecutionResponse creates a response to parse from StartExecution response
+func CreateStartExecutionResponse() (response *StartExecutionResponse) {
+	response = &StartExecutionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 26 - 0
services/oos/struct_action.go

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

+ 21 - 0
services/oos/struct_actions.go

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

+ 23 - 0
services/oos/struct_current_task.go

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

+ 21 - 0
services/oos/struct_current_tasks_in_list_executions.go

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

+ 21 - 0
services/oos/struct_current_tasks_in_start_execution.go

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

+ 40 - 0
services/oos/struct_execution.go

@@ -0,0 +1,40 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Execution is a nested struct in oos response
+type Execution struct {
+	TemplateId        string        `json:"TemplateId" xml:"TemplateId"`
+	ExecutedBy        string        `json:"ExecutedBy" xml:"ExecutedBy"`
+	EndDate           string        `json:"EndDate" xml:"EndDate"`
+	TemplateName      string        `json:"TemplateName" xml:"TemplateName"`
+	RamRole           string        `json:"RamRole" xml:"RamRole"`
+	IsParent          bool          `json:"IsParent" xml:"IsParent"`
+	StatusMessage     string        `json:"StatusMessage" xml:"StatusMessage"`
+	Mode              string        `json:"Mode" xml:"Mode"`
+	StartDate         string        `json:"StartDate" xml:"StartDate"`
+	SafetyCheck       string        `json:"SafetyCheck" xml:"SafetyCheck"`
+	TemplateVersion   string        `json:"TemplateVersion" xml:"TemplateVersion"`
+	CreateDate        string        `json:"CreateDate" xml:"CreateDate"`
+	Parameters        string        `json:"Parameters" xml:"Parameters"`
+	Counters          string        `json:"Counters" xml:"Counters"`
+	UpdateDate        string        `json:"UpdateDate" xml:"UpdateDate"`
+	ParentExecutionId string        `json:"ParentExecutionId" xml:"ParentExecutionId"`
+	Outputs           string        `json:"Outputs" xml:"Outputs"`
+	ExecutionId       string        `json:"ExecutionId" xml:"ExecutionId"`
+	Status            string        `json:"Status" xml:"Status"`
+	CurrentTasks      []CurrentTask `json:"CurrentTasks" xml:"CurrentTasks"`
+}

+ 22 - 0
services/oos/struct_execution_log.go

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

+ 21 - 0
services/oos/struct_execution_logs.go

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

+ 21 - 0
services/oos/struct_executions.go

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

+ 25 - 0
services/oos/struct_task.go

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

+ 38 - 0
services/oos/struct_task_execution.go

@@ -0,0 +1,38 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// TaskExecution is a nested struct in oos response
+type TaskExecution struct {
+	ExecutionId           string `json:"ExecutionId" xml:"ExecutionId"`
+	TaskExecutionId       string `json:"TaskExecutionId" xml:"TaskExecutionId"`
+	TemplateId            string `json:"TemplateId" xml:"TemplateId"`
+	StartDate             string `json:"StartDate" xml:"StartDate"`
+	EndDate               string `json:"EndDate" xml:"EndDate"`
+	CreateDate            string `json:"CreateDate" xml:"CreateDate"`
+	UpdateDate            string `json:"UpdateDate" xml:"UpdateDate"`
+	Status                string `json:"Status" xml:"Status"`
+	Properties            string `json:"Properties" xml:"Properties"`
+	Outputs               string `json:"Outputs" xml:"Outputs"`
+	TaskAction            string `json:"TaskAction" xml:"TaskAction"`
+	TaskName              string `json:"TaskName" xml:"TaskName"`
+	StatusMessage         string `json:"StatusMessage" xml:"StatusMessage"`
+	ChildExecutionId      string `json:"ChildExecutionId" xml:"ChildExecutionId"`
+	ParentTaskExecutionId string `json:"ParentTaskExecutionId" xml:"ParentTaskExecutionId"`
+	LoopItem              string `json:"LoopItem" xml:"LoopItem"`
+	Loop                  string `json:"Loop" xml:"Loop"`
+	ExtraData             string `json:"ExtraData" xml:"ExtraData"`
+}

+ 21 - 0
services/oos/struct_task_executions.go

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

+ 21 - 0
services/oos/struct_tasks.go

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

+ 33 - 0
services/oos/struct_template.go

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

+ 21 - 0
services/oos/struct_templates.go

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

+ 105 - 0
services/oos/update_template.go

@@ -0,0 +1,105 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// UpdateTemplate invokes the oos.UpdateTemplate API synchronously
+// api document: https://help.aliyun.com/api/oos/updatetemplate.html
+func (client *Client) UpdateTemplate(request *UpdateTemplateRequest) (response *UpdateTemplateResponse, err error) {
+	response = CreateUpdateTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateTemplateWithChan invokes the oos.UpdateTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/updatetemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateTemplateWithChan(request *UpdateTemplateRequest) (<-chan *UpdateTemplateResponse, <-chan error) {
+	responseChan := make(chan *UpdateTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateTemplateWithCallback invokes the oos.UpdateTemplate API asynchronously
+// api document: https://help.aliyun.com/api/oos/updatetemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateTemplateWithCallback(request *UpdateTemplateRequest, callback func(response *UpdateTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateTemplateRequest is the request struct for api UpdateTemplate
+type UpdateTemplateRequest struct {
+	*requests.RpcRequest
+	TemplateName string `position:"Query" name:"TemplateName"`
+	Content      string `position:"Query" name:"Content"`
+}
+
+// UpdateTemplateResponse is the response struct for api UpdateTemplate
+type UpdateTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Template  Template `json:"Template" xml:"Template"`
+}
+
+// CreateUpdateTemplateRequest creates a request to invoke UpdateTemplate API
+func CreateUpdateTemplateRequest() (request *UpdateTemplateRequest) {
+	request = &UpdateTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "UpdateTemplate", "oos", "openAPI")
+	return
+}
+
+// CreateUpdateTemplateResponse creates a response to parse from UpdateTemplate response
+func CreateUpdateTemplateResponse() (response *UpdateTemplateResponse) {
+	response = &UpdateTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/oos/validate_template_content.go

@@ -0,0 +1,107 @@
+package oos
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under 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"
+)
+
+// ValidateTemplateContent invokes the oos.ValidateTemplateContent API synchronously
+// api document: https://help.aliyun.com/api/oos/validatetemplatecontent.html
+func (client *Client) ValidateTemplateContent(request *ValidateTemplateContentRequest) (response *ValidateTemplateContentResponse, err error) {
+	response = CreateValidateTemplateContentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ValidateTemplateContentWithChan invokes the oos.ValidateTemplateContent API asynchronously
+// api document: https://help.aliyun.com/api/oos/validatetemplatecontent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateTemplateContentWithChan(request *ValidateTemplateContentRequest) (<-chan *ValidateTemplateContentResponse, <-chan error) {
+	responseChan := make(chan *ValidateTemplateContentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ValidateTemplateContent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ValidateTemplateContentWithCallback invokes the oos.ValidateTemplateContent API asynchronously
+// api document: https://help.aliyun.com/api/oos/validatetemplatecontent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ValidateTemplateContentWithCallback(request *ValidateTemplateContentRequest, callback func(response *ValidateTemplateContentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ValidateTemplateContentResponse
+		var err error
+		defer close(result)
+		response, err = client.ValidateTemplateContent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ValidateTemplateContentRequest is the request struct for api ValidateTemplateContent
+type ValidateTemplateContentRequest struct {
+	*requests.RpcRequest
+	Content string `position:"Query" name:"Content"`
+}
+
+// ValidateTemplateContentResponse is the response struct for api ValidateTemplateContent
+type ValidateTemplateContentResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	Parameters string `json:"Parameters" xml:"Parameters"`
+	RamRole    string `json:"RamRole" xml:"RamRole"`
+	Outputs    string `json:"Outputs" xml:"Outputs"`
+	Tasks      []Task `json:"Tasks" xml:"Tasks"`
+}
+
+// CreateValidateTemplateContentRequest creates a request to invoke ValidateTemplateContent API
+func CreateValidateTemplateContentRequest() (request *ValidateTemplateContentRequest) {
+	request = &ValidateTemplateContentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("oos", "2019-06-01", "ValidateTemplateContent", "oos", "openAPI")
+	return
+}
+
+// CreateValidateTemplateContentResponse creates a response to parse from ValidateTemplateContent response
+func CreateValidateTemplateContentResponse() (response *ValidateTemplateContentResponse) {
+	response = &ValidateTemplateContentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}