Browse Source

由尛宏发起的GREEN SDK自动发布, 版本号:1.7.0

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 7 năm trước cách đây
mục cha
commit
99ed631f0c

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2018-04-08 Version: 1.7.0
+1, Add voice asynchronous scan interface.
+
 2018-04-04 Version: 1.6.1
 1, add tablestore trigger pop api and sample code
 

+ 103 - 0
services/green/add_faces.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// AddFaces invokes the green.AddFaces API synchronously
+// api document: https://help.aliyun.com/api/green/addfaces.html
+func (client *Client) AddFaces(request *AddFacesRequest) (response *AddFacesResponse, err error) {
+	response = CreateAddFacesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddFacesWithChan invokes the green.AddFaces API asynchronously
+// api document: https://help.aliyun.com/api/green/addfaces.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddFacesWithChan(request *AddFacesRequest) (<-chan *AddFacesResponse, <-chan error) {
+	responseChan := make(chan *AddFacesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddFaces(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddFacesWithCallback invokes the green.AddFaces API asynchronously
+// api document: https://help.aliyun.com/api/green/addfaces.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddFacesWithCallback(request *AddFacesRequest, callback func(response *AddFacesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddFacesResponse
+		var err error
+		defer close(result)
+		response, err = client.AddFaces(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddFacesRequest is the request struct for api AddFaces
+type AddFacesRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// AddFacesResponse is the response struct for api AddFaces
+type AddFacesResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateAddFacesRequest creates a request to invoke AddFaces API
+func CreateAddFacesRequest() (request *AddFacesRequest) {
+	request = &AddFacesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "AddFaces", "/green/sface/addFaces", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateAddFacesResponse creates a response to parse from AddFaces response
+func CreateAddFacesResponse() (response *AddFacesResponse) {
+	response = &AddFacesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/add_groups.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// AddGroups invokes the green.AddGroups API synchronously
+// api document: https://help.aliyun.com/api/green/addgroups.html
+func (client *Client) AddGroups(request *AddGroupsRequest) (response *AddGroupsResponse, err error) {
+	response = CreateAddGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddGroupsWithChan invokes the green.AddGroups API asynchronously
+// api document: https://help.aliyun.com/api/green/addgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddGroupsWithChan(request *AddGroupsRequest) (<-chan *AddGroupsResponse, <-chan error) {
+	responseChan := make(chan *AddGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddGroupsWithCallback invokes the green.AddGroups API asynchronously
+// api document: https://help.aliyun.com/api/green/addgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddGroupsWithCallback(request *AddGroupsRequest, callback func(response *AddGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.AddGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddGroupsRequest is the request struct for api AddGroups
+type AddGroupsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// AddGroupsResponse is the response struct for api AddGroups
+type AddGroupsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateAddGroupsRequest creates a request to invoke AddGroups API
+func CreateAddGroupsRequest() (request *AddGroupsRequest) {
+	request = &AddGroupsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "AddGroups", "/green/sface/addGroupsOfPerson", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateAddGroupsResponse creates a response to parse from AddGroups response
+func CreateAddGroupsResponse() (response *AddGroupsResponse) {
+	response = &AddGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/add_person.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// AddPerson invokes the green.AddPerson API synchronously
+// api document: https://help.aliyun.com/api/green/addperson.html
+func (client *Client) AddPerson(request *AddPersonRequest) (response *AddPersonResponse, err error) {
+	response = CreateAddPersonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddPersonWithChan invokes the green.AddPerson API asynchronously
+// api document: https://help.aliyun.com/api/green/addperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddPersonWithChan(request *AddPersonRequest) (<-chan *AddPersonResponse, <-chan error) {
+	responseChan := make(chan *AddPersonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddPerson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddPersonWithCallback invokes the green.AddPerson API asynchronously
+// api document: https://help.aliyun.com/api/green/addperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddPersonWithCallback(request *AddPersonRequest, callback func(response *AddPersonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddPersonResponse
+		var err error
+		defer close(result)
+		response, err = client.AddPerson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddPersonRequest is the request struct for api AddPerson
+type AddPersonRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// AddPersonResponse is the response struct for api AddPerson
+type AddPersonResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateAddPersonRequest creates a request to invoke AddPerson API
+func CreateAddPersonRequest() (request *AddPersonRequest) {
+	request = &AddPersonRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "AddPerson", "/green/sface/addPerson", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateAddPersonResponse creates a response to parse from AddPerson response
+func CreateAddPersonResponse() (response *AddPersonResponse) {
+	response = &AddPersonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/green/client.go

@@ -0,0 +1,81 @@
+package green
+
+//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"
+)
+
+// 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
+}
+
+// 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://help.aliyun.com/document_detail/66217.html
+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://help.aliyun.com/document_detail/66222.html
+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://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+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
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 103 - 0
services/green/delete_faces.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// DeleteFaces invokes the green.DeleteFaces API synchronously
+// api document: https://help.aliyun.com/api/green/deletefaces.html
+func (client *Client) DeleteFaces(request *DeleteFacesRequest) (response *DeleteFacesResponse, err error) {
+	response = CreateDeleteFacesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteFacesWithChan invokes the green.DeleteFaces API asynchronously
+// api document: https://help.aliyun.com/api/green/deletefaces.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFacesWithChan(request *DeleteFacesRequest) (<-chan *DeleteFacesResponse, <-chan error) {
+	responseChan := make(chan *DeleteFacesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteFaces(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteFacesWithCallback invokes the green.DeleteFaces API asynchronously
+// api document: https://help.aliyun.com/api/green/deletefaces.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFacesWithCallback(request *DeleteFacesRequest, callback func(response *DeleteFacesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteFacesResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteFaces(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteFacesRequest is the request struct for api DeleteFaces
+type DeleteFacesRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// DeleteFacesResponse is the response struct for api DeleteFaces
+type DeleteFacesResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteFacesRequest creates a request to invoke DeleteFaces API
+func CreateDeleteFacesRequest() (request *DeleteFacesRequest) {
+	request = &DeleteFacesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "DeleteFaces", "/green/sface/deleteFaces", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateDeleteFacesResponse creates a response to parse from DeleteFaces response
+func CreateDeleteFacesResponse() (response *DeleteFacesResponse) {
+	response = &DeleteFacesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/delete_groups.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// DeleteGroups invokes the green.DeleteGroups API synchronously
+// api document: https://help.aliyun.com/api/green/deletegroups.html
+func (client *Client) DeleteGroups(request *DeleteGroupsRequest) (response *DeleteGroupsResponse, err error) {
+	response = CreateDeleteGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteGroupsWithChan invokes the green.DeleteGroups API asynchronously
+// api document: https://help.aliyun.com/api/green/deletegroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteGroupsWithChan(request *DeleteGroupsRequest) (<-chan *DeleteGroupsResponse, <-chan error) {
+	responseChan := make(chan *DeleteGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteGroupsWithCallback invokes the green.DeleteGroups API asynchronously
+// api document: https://help.aliyun.com/api/green/deletegroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteGroupsWithCallback(request *DeleteGroupsRequest, callback func(response *DeleteGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteGroupsRequest is the request struct for api DeleteGroups
+type DeleteGroupsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// DeleteGroupsResponse is the response struct for api DeleteGroups
+type DeleteGroupsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteGroupsRequest creates a request to invoke DeleteGroups API
+func CreateDeleteGroupsRequest() (request *DeleteGroupsRequest) {
+	request = &DeleteGroupsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "DeleteGroups", "/green/sface/deleteGroupsOfPerson", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateDeleteGroupsResponse creates a response to parse from DeleteGroups response
+func CreateDeleteGroupsResponse() (response *DeleteGroupsResponse) {
+	response = &DeleteGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/delete_person.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// DeletePerson invokes the green.DeletePerson API synchronously
+// api document: https://help.aliyun.com/api/green/deleteperson.html
+func (client *Client) DeletePerson(request *DeletePersonRequest) (response *DeletePersonResponse, err error) {
+	response = CreateDeletePersonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeletePersonWithChan invokes the green.DeletePerson API asynchronously
+// api document: https://help.aliyun.com/api/green/deleteperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePersonWithChan(request *DeletePersonRequest) (<-chan *DeletePersonResponse, <-chan error) {
+	responseChan := make(chan *DeletePersonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeletePerson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeletePersonWithCallback invokes the green.DeletePerson API asynchronously
+// api document: https://help.aliyun.com/api/green/deleteperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePersonWithCallback(request *DeletePersonRequest, callback func(response *DeletePersonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeletePersonResponse
+		var err error
+		defer close(result)
+		response, err = client.DeletePerson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeletePersonRequest is the request struct for api DeletePerson
+type DeletePersonRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// DeletePersonResponse is the response struct for api DeletePerson
+type DeletePersonResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeletePersonRequest creates a request to invoke DeletePerson API
+func CreateDeletePersonRequest() (request *DeletePersonRequest) {
+	request = &DeletePersonRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "DeletePerson", "/green/sface/deletePerson", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateDeletePersonResponse creates a response to parse from DeletePerson response
+func CreateDeletePersonResponse() (response *DeletePersonResponse) {
+	response = &DeletePersonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/file_async_scan.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// FileAsyncScan invokes the green.FileAsyncScan API synchronously
+// api document: https://help.aliyun.com/api/green/fileasyncscan.html
+func (client *Client) FileAsyncScan(request *FileAsyncScanRequest) (response *FileAsyncScanResponse, err error) {
+	response = CreateFileAsyncScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FileAsyncScanWithChan invokes the green.FileAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/fileasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FileAsyncScanWithChan(request *FileAsyncScanRequest) (<-chan *FileAsyncScanResponse, <-chan error) {
+	responseChan := make(chan *FileAsyncScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FileAsyncScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FileAsyncScanWithCallback invokes the green.FileAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/fileasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FileAsyncScanWithCallback(request *FileAsyncScanRequest, callback func(response *FileAsyncScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FileAsyncScanResponse
+		var err error
+		defer close(result)
+		response, err = client.FileAsyncScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FileAsyncScanRequest is the request struct for api FileAsyncScan
+type FileAsyncScanRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// FileAsyncScanResponse is the response struct for api FileAsyncScan
+type FileAsyncScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateFileAsyncScanRequest creates a request to invoke FileAsyncScan API
+func CreateFileAsyncScanRequest() (request *FileAsyncScanRequest) {
+	request = &FileAsyncScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "FileAsyncScan", "/green/file/asyncscan", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateFileAsyncScanResponse creates a response to parse from FileAsyncScan response
+func CreateFileAsyncScanResponse() (response *FileAsyncScanResponse) {
+	response = &FileAsyncScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/file_async_scan_results.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// FileAsyncScanResults invokes the green.FileAsyncScanResults API synchronously
+// api document: https://help.aliyun.com/api/green/fileasyncscanresults.html
+func (client *Client) FileAsyncScanResults(request *FileAsyncScanResultsRequest) (response *FileAsyncScanResultsResponse, err error) {
+	response = CreateFileAsyncScanResultsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FileAsyncScanResultsWithChan invokes the green.FileAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/fileasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FileAsyncScanResultsWithChan(request *FileAsyncScanResultsRequest) (<-chan *FileAsyncScanResultsResponse, <-chan error) {
+	responseChan := make(chan *FileAsyncScanResultsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FileAsyncScanResults(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FileAsyncScanResultsWithCallback invokes the green.FileAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/fileasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FileAsyncScanResultsWithCallback(request *FileAsyncScanResultsRequest, callback func(response *FileAsyncScanResultsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FileAsyncScanResultsResponse
+		var err error
+		defer close(result)
+		response, err = client.FileAsyncScanResults(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FileAsyncScanResultsRequest is the request struct for api FileAsyncScanResults
+type FileAsyncScanResultsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// FileAsyncScanResultsResponse is the response struct for api FileAsyncScanResults
+type FileAsyncScanResultsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateFileAsyncScanResultsRequest creates a request to invoke FileAsyncScanResults API
+func CreateFileAsyncScanResultsRequest() (request *FileAsyncScanResultsRequest) {
+	request = &FileAsyncScanResultsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "FileAsyncScanResults", "/green/file/results", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateFileAsyncScanResultsResponse creates a response to parse from FileAsyncScanResults response
+func CreateFileAsyncScanResultsResponse() (response *FileAsyncScanResultsResponse) {
+	response = &FileAsyncScanResultsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/get_faces.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// GetFaces invokes the green.GetFaces API synchronously
+// api document: https://help.aliyun.com/api/green/getfaces.html
+func (client *Client) GetFaces(request *GetFacesRequest) (response *GetFacesResponse, err error) {
+	response = CreateGetFacesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetFacesWithChan invokes the green.GetFaces API asynchronously
+// api document: https://help.aliyun.com/api/green/getfaces.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetFacesWithChan(request *GetFacesRequest) (<-chan *GetFacesResponse, <-chan error) {
+	responseChan := make(chan *GetFacesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetFaces(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetFacesWithCallback invokes the green.GetFaces API asynchronously
+// api document: https://help.aliyun.com/api/green/getfaces.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetFacesWithCallback(request *GetFacesRequest, callback func(response *GetFacesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetFacesResponse
+		var err error
+		defer close(result)
+		response, err = client.GetFaces(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetFacesRequest is the request struct for api GetFaces
+type GetFacesRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// GetFacesResponse is the response struct for api GetFaces
+type GetFacesResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetFacesRequest creates a request to invoke GetFaces API
+func CreateGetFacesRequest() (request *GetFacesRequest) {
+	request = &GetFacesRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "GetFaces", "/green/sface/getFaces", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateGetFacesResponse creates a response to parse from GetFaces response
+func CreateGetFacesResponse() (response *GetFacesResponse) {
+	response = &GetFacesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/get_groups.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// GetGroups invokes the green.GetGroups API synchronously
+// api document: https://help.aliyun.com/api/green/getgroups.html
+func (client *Client) GetGroups(request *GetGroupsRequest) (response *GetGroupsResponse, err error) {
+	response = CreateGetGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetGroupsWithChan invokes the green.GetGroups API asynchronously
+// api document: https://help.aliyun.com/api/green/getgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupsWithChan(request *GetGroupsRequest) (<-chan *GetGroupsResponse, <-chan error) {
+	responseChan := make(chan *GetGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetGroupsWithCallback invokes the green.GetGroups API asynchronously
+// api document: https://help.aliyun.com/api/green/getgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupsWithCallback(request *GetGroupsRequest, callback func(response *GetGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetGroupsRequest is the request struct for api GetGroups
+type GetGroupsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// GetGroupsResponse is the response struct for api GetGroups
+type GetGroupsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetGroupsRequest creates a request to invoke GetGroups API
+func CreateGetGroupsRequest() (request *GetGroupsRequest) {
+	request = &GetGroupsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "GetGroups", "/green/sface/getGroups", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateGetGroupsResponse creates a response to parse from GetGroups response
+func CreateGetGroupsResponse() (response *GetGroupsResponse) {
+	response = &GetGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/get_person.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// GetPerson invokes the green.GetPerson API synchronously
+// api document: https://help.aliyun.com/api/green/getperson.html
+func (client *Client) GetPerson(request *GetPersonRequest) (response *GetPersonResponse, err error) {
+	response = CreateGetPersonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPersonWithChan invokes the green.GetPerson API asynchronously
+// api document: https://help.aliyun.com/api/green/getperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPersonWithChan(request *GetPersonRequest) (<-chan *GetPersonResponse, <-chan error) {
+	responseChan := make(chan *GetPersonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPerson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPersonWithCallback invokes the green.GetPerson API asynchronously
+// api document: https://help.aliyun.com/api/green/getperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPersonWithCallback(request *GetPersonRequest, callback func(response *GetPersonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPersonResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPerson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPersonRequest is the request struct for api GetPerson
+type GetPersonRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// GetPersonResponse is the response struct for api GetPerson
+type GetPersonResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetPersonRequest creates a request to invoke GetPerson API
+func CreateGetPersonRequest() (request *GetPersonRequest) {
+	request = &GetPersonRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "GetPerson", "/green/sface/getPerson", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateGetPersonResponse creates a response to parse from GetPerson response
+func CreateGetPersonResponse() (response *GetPersonResponse) {
+	response = &GetPersonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/get_persons.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// GetPersons invokes the green.GetPersons API synchronously
+// api document: https://help.aliyun.com/api/green/getpersons.html
+func (client *Client) GetPersons(request *GetPersonsRequest) (response *GetPersonsResponse, err error) {
+	response = CreateGetPersonsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPersonsWithChan invokes the green.GetPersons API asynchronously
+// api document: https://help.aliyun.com/api/green/getpersons.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPersonsWithChan(request *GetPersonsRequest) (<-chan *GetPersonsResponse, <-chan error) {
+	responseChan := make(chan *GetPersonsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPersons(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPersonsWithCallback invokes the green.GetPersons API asynchronously
+// api document: https://help.aliyun.com/api/green/getpersons.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPersonsWithCallback(request *GetPersonsRequest, callback func(response *GetPersonsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPersonsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPersons(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPersonsRequest is the request struct for api GetPersons
+type GetPersonsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// GetPersonsResponse is the response struct for api GetPersons
+type GetPersonsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetPersonsRequest creates a request to invoke GetPersons API
+func CreateGetPersonsRequest() (request *GetPersonsRequest) {
+	request = &GetPersonsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "GetPersons", "/green/sface/getPersons", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateGetPersonsResponse creates a response to parse from GetPersons response
+func CreateGetPersonsResponse() (response *GetPersonsResponse) {
+	response = &GetPersonsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/image_async_scan.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// ImageAsyncScan invokes the green.ImageAsyncScan API synchronously
+// api document: https://help.aliyun.com/api/green/imageasyncscan.html
+func (client *Client) ImageAsyncScan(request *ImageAsyncScanRequest) (response *ImageAsyncScanResponse, err error) {
+	response = CreateImageAsyncScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ImageAsyncScanWithChan invokes the green.ImageAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/imageasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageAsyncScanWithChan(request *ImageAsyncScanRequest) (<-chan *ImageAsyncScanResponse, <-chan error) {
+	responseChan := make(chan *ImageAsyncScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ImageAsyncScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ImageAsyncScanWithCallback invokes the green.ImageAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/imageasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageAsyncScanWithCallback(request *ImageAsyncScanRequest, callback func(response *ImageAsyncScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ImageAsyncScanResponse
+		var err error
+		defer close(result)
+		response, err = client.ImageAsyncScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ImageAsyncScanRequest is the request struct for api ImageAsyncScan
+type ImageAsyncScanRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// ImageAsyncScanResponse is the response struct for api ImageAsyncScan
+type ImageAsyncScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateImageAsyncScanRequest creates a request to invoke ImageAsyncScan API
+func CreateImageAsyncScanRequest() (request *ImageAsyncScanRequest) {
+	request = &ImageAsyncScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "ImageAsyncScan", "/green/image/asyncscan", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateImageAsyncScanResponse creates a response to parse from ImageAsyncScan response
+func CreateImageAsyncScanResponse() (response *ImageAsyncScanResponse) {
+	response = &ImageAsyncScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/image_async_scan_results.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// ImageAsyncScanResults invokes the green.ImageAsyncScanResults API synchronously
+// api document: https://help.aliyun.com/api/green/imageasyncscanresults.html
+func (client *Client) ImageAsyncScanResults(request *ImageAsyncScanResultsRequest) (response *ImageAsyncScanResultsResponse, err error) {
+	response = CreateImageAsyncScanResultsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ImageAsyncScanResultsWithChan invokes the green.ImageAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/imageasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageAsyncScanResultsWithChan(request *ImageAsyncScanResultsRequest) (<-chan *ImageAsyncScanResultsResponse, <-chan error) {
+	responseChan := make(chan *ImageAsyncScanResultsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ImageAsyncScanResults(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ImageAsyncScanResultsWithCallback invokes the green.ImageAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/imageasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageAsyncScanResultsWithCallback(request *ImageAsyncScanResultsRequest, callback func(response *ImageAsyncScanResultsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ImageAsyncScanResultsResponse
+		var err error
+		defer close(result)
+		response, err = client.ImageAsyncScanResults(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ImageAsyncScanResultsRequest is the request struct for api ImageAsyncScanResults
+type ImageAsyncScanResultsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// ImageAsyncScanResultsResponse is the response struct for api ImageAsyncScanResults
+type ImageAsyncScanResultsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateImageAsyncScanResultsRequest creates a request to invoke ImageAsyncScanResults API
+func CreateImageAsyncScanResultsRequest() (request *ImageAsyncScanResultsRequest) {
+	request = &ImageAsyncScanResultsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "ImageAsyncScanResults", "/green/image/results", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateImageAsyncScanResultsResponse creates a response to parse from ImageAsyncScanResults response
+func CreateImageAsyncScanResultsResponse() (response *ImageAsyncScanResultsResponse) {
+	response = &ImageAsyncScanResultsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/image_scan_feedback.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// ImageScanFeedback invokes the green.ImageScanFeedback API synchronously
+// api document: https://help.aliyun.com/api/green/imagescanfeedback.html
+func (client *Client) ImageScanFeedback(request *ImageScanFeedbackRequest) (response *ImageScanFeedbackResponse, err error) {
+	response = CreateImageScanFeedbackResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ImageScanFeedbackWithChan invokes the green.ImageScanFeedback API asynchronously
+// api document: https://help.aliyun.com/api/green/imagescanfeedback.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageScanFeedbackWithChan(request *ImageScanFeedbackRequest) (<-chan *ImageScanFeedbackResponse, <-chan error) {
+	responseChan := make(chan *ImageScanFeedbackResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ImageScanFeedback(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ImageScanFeedbackWithCallback invokes the green.ImageScanFeedback API asynchronously
+// api document: https://help.aliyun.com/api/green/imagescanfeedback.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageScanFeedbackWithCallback(request *ImageScanFeedbackRequest, callback func(response *ImageScanFeedbackResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ImageScanFeedbackResponse
+		var err error
+		defer close(result)
+		response, err = client.ImageScanFeedback(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ImageScanFeedbackRequest is the request struct for api ImageScanFeedback
+type ImageScanFeedbackRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// ImageScanFeedbackResponse is the response struct for api ImageScanFeedback
+type ImageScanFeedbackResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateImageScanFeedbackRequest creates a request to invoke ImageScanFeedback API
+func CreateImageScanFeedbackRequest() (request *ImageScanFeedbackRequest) {
+	request = &ImageScanFeedbackRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "ImageScanFeedback", "/green/image/feedback", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateImageScanFeedbackResponse creates a response to parse from ImageScanFeedback response
+func CreateImageScanFeedbackResponse() (response *ImageScanFeedbackResponse) {
+	response = &ImageScanFeedbackResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/image_sync_scan.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// ImageSyncScan invokes the green.ImageSyncScan API synchronously
+// api document: https://help.aliyun.com/api/green/imagesyncscan.html
+func (client *Client) ImageSyncScan(request *ImageSyncScanRequest) (response *ImageSyncScanResponse, err error) {
+	response = CreateImageSyncScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ImageSyncScanWithChan invokes the green.ImageSyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/imagesyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageSyncScanWithChan(request *ImageSyncScanRequest) (<-chan *ImageSyncScanResponse, <-chan error) {
+	responseChan := make(chan *ImageSyncScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ImageSyncScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ImageSyncScanWithCallback invokes the green.ImageSyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/imagesyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImageSyncScanWithCallback(request *ImageSyncScanRequest, callback func(response *ImageSyncScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ImageSyncScanResponse
+		var err error
+		defer close(result)
+		response, err = client.ImageSyncScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ImageSyncScanRequest is the request struct for api ImageSyncScan
+type ImageSyncScanRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// ImageSyncScanResponse is the response struct for api ImageSyncScan
+type ImageSyncScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateImageSyncScanRequest creates a request to invoke ImageSyncScan API
+func CreateImageSyncScanRequest() (request *ImageSyncScanRequest) {
+	request = &ImageSyncScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "ImageSyncScan", "/green/image/scan", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateImageSyncScanResponse creates a response to parse from ImageSyncScan response
+func CreateImageSyncScanResponse() (response *ImageSyncScanResponse) {
+	response = &ImageSyncScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/search.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// Search invokes the green.Search API synchronously
+// api document: https://help.aliyun.com/api/green/search.html
+func (client *Client) Search(request *SearchRequest) (response *SearchResponse, err error) {
+	response = CreateSearchResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SearchWithChan invokes the green.Search API asynchronously
+// api document: https://help.aliyun.com/api/green/search.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SearchWithChan(request *SearchRequest) (<-chan *SearchResponse, <-chan error) {
+	responseChan := make(chan *SearchResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.Search(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SearchWithCallback invokes the green.Search API asynchronously
+// api document: https://help.aliyun.com/api/green/search.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SearchWithCallback(request *SearchRequest, callback func(response *SearchResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SearchResponse
+		var err error
+		defer close(result)
+		response, err = client.Search(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SearchRequest is the request struct for api Search
+type SearchRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// SearchResponse is the response struct for api Search
+type SearchResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateSearchRequest creates a request to invoke Search API
+func CreateSearchRequest() (request *SearchRequest) {
+	request = &SearchRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "Search", "/green/sface/search", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateSearchResponse creates a response to parse from Search response
+func CreateSearchResponse() (response *SearchResponse) {
+	response = &SearchResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/set_person.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// SetPerson invokes the green.SetPerson API synchronously
+// api document: https://help.aliyun.com/api/green/setperson.html
+func (client *Client) SetPerson(request *SetPersonRequest) (response *SetPersonResponse, err error) {
+	response = CreateSetPersonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetPersonWithChan invokes the green.SetPerson API asynchronously
+// api document: https://help.aliyun.com/api/green/setperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetPersonWithChan(request *SetPersonRequest) (<-chan *SetPersonResponse, <-chan error) {
+	responseChan := make(chan *SetPersonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetPerson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetPersonWithCallback invokes the green.SetPerson API asynchronously
+// api document: https://help.aliyun.com/api/green/setperson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetPersonWithCallback(request *SetPersonRequest, callback func(response *SetPersonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetPersonResponse
+		var err error
+		defer close(result)
+		response, err = client.SetPerson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetPersonRequest is the request struct for api SetPerson
+type SetPersonRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// SetPersonResponse is the response struct for api SetPerson
+type SetPersonResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateSetPersonRequest creates a request to invoke SetPerson API
+func CreateSetPersonRequest() (request *SetPersonRequest) {
+	request = &SetPersonRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "SetPerson", "/green/sface/setPerson", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateSetPersonResponse creates a response to parse from SetPerson response
+func CreateSetPersonResponse() (response *SetPersonResponse) {
+	response = &SetPersonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/text_feedback.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// TextFeedback invokes the green.TextFeedback API synchronously
+// api document: https://help.aliyun.com/api/green/textfeedback.html
+func (client *Client) TextFeedback(request *TextFeedbackRequest) (response *TextFeedbackResponse, err error) {
+	response = CreateTextFeedbackResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// TextFeedbackWithChan invokes the green.TextFeedback API asynchronously
+// api document: https://help.aliyun.com/api/green/textfeedback.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TextFeedbackWithChan(request *TextFeedbackRequest) (<-chan *TextFeedbackResponse, <-chan error) {
+	responseChan := make(chan *TextFeedbackResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.TextFeedback(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// TextFeedbackWithCallback invokes the green.TextFeedback API asynchronously
+// api document: https://help.aliyun.com/api/green/textfeedback.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TextFeedbackWithCallback(request *TextFeedbackRequest, callback func(response *TextFeedbackResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *TextFeedbackResponse
+		var err error
+		defer close(result)
+		response, err = client.TextFeedback(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// TextFeedbackRequest is the request struct for api TextFeedback
+type TextFeedbackRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// TextFeedbackResponse is the response struct for api TextFeedback
+type TextFeedbackResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateTextFeedbackRequest creates a request to invoke TextFeedback API
+func CreateTextFeedbackRequest() (request *TextFeedbackRequest) {
+	request = &TextFeedbackRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "TextFeedback", "/green/text/feedback", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateTextFeedbackResponse creates a response to parse from TextFeedback response
+func CreateTextFeedbackResponse() (response *TextFeedbackResponse) {
+	response = &TextFeedbackResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/text_scan.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// TextScan invokes the green.TextScan API synchronously
+// api document: https://help.aliyun.com/api/green/textscan.html
+func (client *Client) TextScan(request *TextScanRequest) (response *TextScanResponse, err error) {
+	response = CreateTextScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// TextScanWithChan invokes the green.TextScan API asynchronously
+// api document: https://help.aliyun.com/api/green/textscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TextScanWithChan(request *TextScanRequest) (<-chan *TextScanResponse, <-chan error) {
+	responseChan := make(chan *TextScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.TextScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// TextScanWithCallback invokes the green.TextScan API asynchronously
+// api document: https://help.aliyun.com/api/green/textscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TextScanWithCallback(request *TextScanRequest, callback func(response *TextScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *TextScanResponse
+		var err error
+		defer close(result)
+		response, err = client.TextScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// TextScanRequest is the request struct for api TextScan
+type TextScanRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// TextScanResponse is the response struct for api TextScan
+type TextScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateTextScanRequest creates a request to invoke TextScan API
+func CreateTextScanRequest() (request *TextScanRequest) {
+	request = &TextScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "TextScan", "/green/text/scan", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateTextScanResponse creates a response to parse from TextScan response
+func CreateTextScanResponse() (response *TextScanResponse) {
+	response = &TextScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/video_async_scan.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// VideoAsyncScan invokes the green.VideoAsyncScan API synchronously
+// api document: https://help.aliyun.com/api/green/videoasyncscan.html
+func (client *Client) VideoAsyncScan(request *VideoAsyncScanRequest) (response *VideoAsyncScanResponse, err error) {
+	response = CreateVideoAsyncScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// VideoAsyncScanWithChan invokes the green.VideoAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/videoasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VideoAsyncScanWithChan(request *VideoAsyncScanRequest) (<-chan *VideoAsyncScanResponse, <-chan error) {
+	responseChan := make(chan *VideoAsyncScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.VideoAsyncScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// VideoAsyncScanWithCallback invokes the green.VideoAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/videoasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VideoAsyncScanWithCallback(request *VideoAsyncScanRequest, callback func(response *VideoAsyncScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *VideoAsyncScanResponse
+		var err error
+		defer close(result)
+		response, err = client.VideoAsyncScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// VideoAsyncScanRequest is the request struct for api VideoAsyncScan
+type VideoAsyncScanRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// VideoAsyncScanResponse is the response struct for api VideoAsyncScan
+type VideoAsyncScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateVideoAsyncScanRequest creates a request to invoke VideoAsyncScan API
+func CreateVideoAsyncScanRequest() (request *VideoAsyncScanRequest) {
+	request = &VideoAsyncScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "VideoAsyncScan", "/green/video/asyncscan", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateVideoAsyncScanResponse creates a response to parse from VideoAsyncScan response
+func CreateVideoAsyncScanResponse() (response *VideoAsyncScanResponse) {
+	response = &VideoAsyncScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/video_async_scan_results.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// VideoAsyncScanResults invokes the green.VideoAsyncScanResults API synchronously
+// api document: https://help.aliyun.com/api/green/videoasyncscanresults.html
+func (client *Client) VideoAsyncScanResults(request *VideoAsyncScanResultsRequest) (response *VideoAsyncScanResultsResponse, err error) {
+	response = CreateVideoAsyncScanResultsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// VideoAsyncScanResultsWithChan invokes the green.VideoAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/videoasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VideoAsyncScanResultsWithChan(request *VideoAsyncScanResultsRequest) (<-chan *VideoAsyncScanResultsResponse, <-chan error) {
+	responseChan := make(chan *VideoAsyncScanResultsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.VideoAsyncScanResults(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// VideoAsyncScanResultsWithCallback invokes the green.VideoAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/videoasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VideoAsyncScanResultsWithCallback(request *VideoAsyncScanResultsRequest, callback func(response *VideoAsyncScanResultsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *VideoAsyncScanResultsResponse
+		var err error
+		defer close(result)
+		response, err = client.VideoAsyncScanResults(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// VideoAsyncScanResultsRequest is the request struct for api VideoAsyncScanResults
+type VideoAsyncScanResultsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// VideoAsyncScanResultsResponse is the response struct for api VideoAsyncScanResults
+type VideoAsyncScanResultsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateVideoAsyncScanResultsRequest creates a request to invoke VideoAsyncScanResults API
+func CreateVideoAsyncScanResultsRequest() (request *VideoAsyncScanResultsRequest) {
+	request = &VideoAsyncScanResultsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "VideoAsyncScanResults", "/green/video/results", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateVideoAsyncScanResultsResponse creates a response to parse from VideoAsyncScanResults response
+func CreateVideoAsyncScanResultsResponse() (response *VideoAsyncScanResultsResponse) {
+	response = &VideoAsyncScanResultsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/video_feedback.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// VideoFeedback invokes the green.VideoFeedback API synchronously
+// api document: https://help.aliyun.com/api/green/videofeedback.html
+func (client *Client) VideoFeedback(request *VideoFeedbackRequest) (response *VideoFeedbackResponse, err error) {
+	response = CreateVideoFeedbackResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// VideoFeedbackWithChan invokes the green.VideoFeedback API asynchronously
+// api document: https://help.aliyun.com/api/green/videofeedback.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VideoFeedbackWithChan(request *VideoFeedbackRequest) (<-chan *VideoFeedbackResponse, <-chan error) {
+	responseChan := make(chan *VideoFeedbackResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.VideoFeedback(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// VideoFeedbackWithCallback invokes the green.VideoFeedback API asynchronously
+// api document: https://help.aliyun.com/api/green/videofeedback.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VideoFeedbackWithCallback(request *VideoFeedbackRequest, callback func(response *VideoFeedbackResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *VideoFeedbackResponse
+		var err error
+		defer close(result)
+		response, err = client.VideoFeedback(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// VideoFeedbackRequest is the request struct for api VideoFeedback
+type VideoFeedbackRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// VideoFeedbackResponse is the response struct for api VideoFeedback
+type VideoFeedbackResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateVideoFeedbackRequest creates a request to invoke VideoFeedback API
+func CreateVideoFeedbackRequest() (request *VideoFeedbackRequest) {
+	request = &VideoFeedbackRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "VideoFeedback", "/green/video/feedback", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateVideoFeedbackResponse creates a response to parse from VideoFeedback response
+func CreateVideoFeedbackResponse() (response *VideoFeedbackResponse) {
+	response = &VideoFeedbackResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/voice_async_scan.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// VoiceAsyncScan invokes the green.VoiceAsyncScan API synchronously
+// api document: https://help.aliyun.com/api/green/voiceasyncscan.html
+func (client *Client) VoiceAsyncScan(request *VoiceAsyncScanRequest) (response *VoiceAsyncScanResponse, err error) {
+	response = CreateVoiceAsyncScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// VoiceAsyncScanWithChan invokes the green.VoiceAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/voiceasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VoiceAsyncScanWithChan(request *VoiceAsyncScanRequest) (<-chan *VoiceAsyncScanResponse, <-chan error) {
+	responseChan := make(chan *VoiceAsyncScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.VoiceAsyncScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// VoiceAsyncScanWithCallback invokes the green.VoiceAsyncScan API asynchronously
+// api document: https://help.aliyun.com/api/green/voiceasyncscan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VoiceAsyncScanWithCallback(request *VoiceAsyncScanRequest, callback func(response *VoiceAsyncScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *VoiceAsyncScanResponse
+		var err error
+		defer close(result)
+		response, err = client.VoiceAsyncScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// VoiceAsyncScanRequest is the request struct for api VoiceAsyncScan
+type VoiceAsyncScanRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// VoiceAsyncScanResponse is the response struct for api VoiceAsyncScan
+type VoiceAsyncScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateVoiceAsyncScanRequest creates a request to invoke VoiceAsyncScan API
+func CreateVoiceAsyncScanRequest() (request *VoiceAsyncScanRequest) {
+	request = &VoiceAsyncScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "VoiceAsyncScan", "/green/voice/asyncscan", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateVoiceAsyncScanResponse creates a response to parse from VoiceAsyncScan response
+func CreateVoiceAsyncScanResponse() (response *VoiceAsyncScanResponse) {
+	response = &VoiceAsyncScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/green/voice_async_scan_results.go

@@ -0,0 +1,103 @@
+package green
+
+//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"
+)
+
+// VoiceAsyncScanResults invokes the green.VoiceAsyncScanResults API synchronously
+// api document: https://help.aliyun.com/api/green/voiceasyncscanresults.html
+func (client *Client) VoiceAsyncScanResults(request *VoiceAsyncScanResultsRequest) (response *VoiceAsyncScanResultsResponse, err error) {
+	response = CreateVoiceAsyncScanResultsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// VoiceAsyncScanResultsWithChan invokes the green.VoiceAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/voiceasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VoiceAsyncScanResultsWithChan(request *VoiceAsyncScanResultsRequest) (<-chan *VoiceAsyncScanResultsResponse, <-chan error) {
+	responseChan := make(chan *VoiceAsyncScanResultsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.VoiceAsyncScanResults(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// VoiceAsyncScanResultsWithCallback invokes the green.VoiceAsyncScanResults API asynchronously
+// api document: https://help.aliyun.com/api/green/voiceasyncscanresults.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) VoiceAsyncScanResultsWithCallback(request *VoiceAsyncScanResultsRequest, callback func(response *VoiceAsyncScanResultsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *VoiceAsyncScanResultsResponse
+		var err error
+		defer close(result)
+		response, err = client.VoiceAsyncScanResults(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// VoiceAsyncScanResultsRequest is the request struct for api VoiceAsyncScanResults
+type VoiceAsyncScanResultsRequest struct {
+	*requests.RoaRequest
+	ClientInfo string `position:"Query" name:"ClientInfo"`
+}
+
+// VoiceAsyncScanResultsResponse is the response struct for api VoiceAsyncScanResults
+type VoiceAsyncScanResultsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateVoiceAsyncScanResultsRequest creates a request to invoke VoiceAsyncScanResults API
+func CreateVoiceAsyncScanResultsRequest() (request *VoiceAsyncScanResultsRequest) {
+	request = &VoiceAsyncScanResultsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("Green", "2017-08-25", "VoiceAsyncScanResults", "/green/voice/results", "green", "openAPI")
+	request.Method = requests.POST
+	return
+}
+
+// CreateVoiceAsyncScanResultsResponse creates a response to parse from VoiceAsyncScanResults response
+func CreateVoiceAsyncScanResultsResponse() (response *VoiceAsyncScanResultsResponse) {
+	response = &VoiceAsyncScanResultsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}