소스 검색

MOPEN SDK Auto Released By everettli.ll,Version:1.23.5

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 7 년 전
부모
커밋
e7217c035d

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2018-08-01 Version: 1.23.5
+1, Add api: MoPenQueryCanvas, MoPenDoRecognize, MoPenSendMqttMessage, MoPenFindGroup
+
 2018-08-01 Version: 1.23.4
 1, Support describePrice for market image, add return detailInfo in interface describePrice
 

+ 81 - 0
services/mopen/client.go

@@ -0,0 +1,81 @@
+package mopen
+
+//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
+}

+ 107 - 0
services/mopen/mo_pen_add_group_member.go

@@ -0,0 +1,107 @@
+package mopen
+
+//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"
+)
+
+// MoPenAddGroupMember invokes the mopen.MoPenAddGroupMember API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopenaddgroupmember.html
+func (client *Client) MoPenAddGroupMember(request *MoPenAddGroupMemberRequest) (response *MoPenAddGroupMemberResponse, err error) {
+	response = CreateMoPenAddGroupMemberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenAddGroupMemberWithChan invokes the mopen.MoPenAddGroupMember API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenaddgroupmember.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenAddGroupMemberWithChan(request *MoPenAddGroupMemberRequest) (<-chan *MoPenAddGroupMemberResponse, <-chan error) {
+	responseChan := make(chan *MoPenAddGroupMemberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenAddGroupMember(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenAddGroupMemberWithCallback invokes the mopen.MoPenAddGroupMember API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenaddgroupmember.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenAddGroupMemberWithCallback(request *MoPenAddGroupMemberRequest, callback func(response *MoPenAddGroupMemberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenAddGroupMemberResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenAddGroupMember(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenAddGroupMemberRequest is the request struct for api MoPenAddGroupMember
+type MoPenAddGroupMemberRequest struct {
+	*requests.RpcRequest
+	GroupId    string `position:"Body" name:"GroupId"`
+	DeviceName string `position:"Body" name:"DeviceName"`
+}
+
+// MoPenAddGroupMemberResponse is the response struct for api MoPenAddGroupMember
+type MoPenAddGroupMemberResponse struct {
+	*responses.BaseResponse
+	Success     bool   `json:"Success" xml:"Success"`
+	Code        string `json:"Code" xml:"Code"`
+	Description string `json:"Description" xml:"Description"`
+	Message     string `json:"Message" xml:"Message"`
+}
+
+// CreateMoPenAddGroupMemberRequest creates a request to invoke MoPenAddGroupMember API
+func CreateMoPenAddGroupMemberRequest() (request *MoPenAddGroupMemberRequest) {
+	request = &MoPenAddGroupMemberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenAddGroupMember", "", "")
+	return
+}
+
+// CreateMoPenAddGroupMemberResponse creates a response to parse from MoPenAddGroupMember response
+func CreateMoPenAddGroupMemberResponse() (response *MoPenAddGroupMemberResponse) {
+	response = &MoPenAddGroupMemberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/mopen/mo_pen_bind_isv.go

@@ -0,0 +1,107 @@
+package mopen
+
+//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"
+)
+
+// MoPenBindIsv invokes the mopen.MoPenBindIsv API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopenbindisv.html
+func (client *Client) MoPenBindIsv(request *MoPenBindIsvRequest) (response *MoPenBindIsvResponse, err error) {
+	response = CreateMoPenBindIsvResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenBindIsvWithChan invokes the mopen.MoPenBindIsv API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenbindisv.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenBindIsvWithChan(request *MoPenBindIsvRequest) (<-chan *MoPenBindIsvResponse, <-chan error) {
+	responseChan := make(chan *MoPenBindIsvResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenBindIsv(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenBindIsvWithCallback invokes the mopen.MoPenBindIsv API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenbindisv.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenBindIsvWithCallback(request *MoPenBindIsvRequest, callback func(response *MoPenBindIsvResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenBindIsvResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenBindIsv(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenBindIsvRequest is the request struct for api MoPenBindIsv
+type MoPenBindIsvRequest struct {
+	*requests.RpcRequest
+	OrderKey   string `position:"Body" name:"OrderKey"`
+	DeviceName string `position:"Body" name:"DeviceName"`
+}
+
+// MoPenBindIsvResponse is the response struct for api MoPenBindIsv
+type MoPenBindIsvResponse struct {
+	*responses.BaseResponse
+	Code        bool   `json:"Code" xml:"Code"`
+	Message     string `json:"Message" xml:"Message"`
+	Success     bool   `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+}
+
+// CreateMoPenBindIsvRequest creates a request to invoke MoPenBindIsv API
+func CreateMoPenBindIsvRequest() (request *MoPenBindIsvRequest) {
+	request = &MoPenBindIsvRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenBindIsv", "", "")
+	return
+}
+
+// CreateMoPenBindIsvResponse creates a response to parse from MoPenBindIsv response
+func CreateMoPenBindIsvResponse() (response *MoPenBindIsvResponse) {
+	response = &MoPenBindIsvResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/mopen/mo_pen_create_device.go

@@ -0,0 +1,108 @@
+package mopen
+
+//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"
+)
+
+// MoPenCreateDevice invokes the mopen.MoPenCreateDevice API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopencreatedevice.html
+func (client *Client) MoPenCreateDevice(request *MoPenCreateDeviceRequest) (response *MoPenCreateDeviceResponse, err error) {
+	response = CreateMoPenCreateDeviceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenCreateDeviceWithChan invokes the mopen.MoPenCreateDevice API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopencreatedevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenCreateDeviceWithChan(request *MoPenCreateDeviceRequest) (<-chan *MoPenCreateDeviceResponse, <-chan error) {
+	responseChan := make(chan *MoPenCreateDeviceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenCreateDevice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenCreateDeviceWithCallback invokes the mopen.MoPenCreateDevice API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopencreatedevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenCreateDeviceWithCallback(request *MoPenCreateDeviceRequest, callback func(response *MoPenCreateDeviceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenCreateDeviceResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenCreateDevice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenCreateDeviceRequest is the request struct for api MoPenCreateDevice
+type MoPenCreateDeviceRequest struct {
+	*requests.RpcRequest
+	DeviceName string           `position:"Body" name:"DeviceName"`
+	DeviceType requests.Integer `position:"Body" name:"DeviceType"`
+}
+
+// MoPenCreateDeviceResponse is the response struct for api MoPenCreateDevice
+type MoPenCreateDeviceResponse struct {
+	*responses.BaseResponse
+	Code        bool   `json:"Code" xml:"Code"`
+	Message     string `json:"Message" xml:"Message"`
+	Success     bool   `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+	Data        Data   `json:"Data" xml:"Data"`
+}
+
+// CreateMoPenCreateDeviceRequest creates a request to invoke MoPenCreateDevice API
+func CreateMoPenCreateDeviceRequest() (request *MoPenCreateDeviceRequest) {
+	request = &MoPenCreateDeviceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenCreateDevice", "", "")
+	return
+}
+
+// CreateMoPenCreateDeviceResponse creates a response to parse from MoPenCreateDevice response
+func CreateMoPenCreateDeviceResponse() (response *MoPenCreateDeviceResponse) {
+	response = &MoPenCreateDeviceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/mopen/mo_pen_delete_group.go

@@ -0,0 +1,106 @@
+package mopen
+
+//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"
+)
+
+// MoPenDeleteGroup invokes the mopen.MoPenDeleteGroup API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopendeletegroup.html
+func (client *Client) MoPenDeleteGroup(request *MoPenDeleteGroupRequest) (response *MoPenDeleteGroupResponse, err error) {
+	response = CreateMoPenDeleteGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenDeleteGroupWithChan invokes the mopen.MoPenDeleteGroup API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopendeletegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenDeleteGroupWithChan(request *MoPenDeleteGroupRequest) (<-chan *MoPenDeleteGroupResponse, <-chan error) {
+	responseChan := make(chan *MoPenDeleteGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenDeleteGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenDeleteGroupWithCallback invokes the mopen.MoPenDeleteGroup API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopendeletegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenDeleteGroupWithCallback(request *MoPenDeleteGroupRequest, callback func(response *MoPenDeleteGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenDeleteGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenDeleteGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenDeleteGroupRequest is the request struct for api MoPenDeleteGroup
+type MoPenDeleteGroupRequest struct {
+	*requests.RpcRequest
+	GroupId string `position:"Body" name:"GroupId"`
+}
+
+// MoPenDeleteGroupResponse is the response struct for api MoPenDeleteGroup
+type MoPenDeleteGroupResponse struct {
+	*responses.BaseResponse
+	Success     bool   `json:"Success" xml:"Success"`
+	Code        string `json:"Code" xml:"Code"`
+	Message     string `json:"Message" xml:"Message"`
+	Description string `json:"Description" xml:"Description"`
+}
+
+// CreateMoPenDeleteGroupRequest creates a request to invoke MoPenDeleteGroup API
+func CreateMoPenDeleteGroupRequest() (request *MoPenDeleteGroupRequest) {
+	request = &MoPenDeleteGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenDeleteGroup", "", "")
+	return
+}
+
+// CreateMoPenDeleteGroupResponse creates a response to parse from MoPenDeleteGroup response
+func CreateMoPenDeleteGroupResponse() (response *MoPenDeleteGroupResponse) {
+	response = &MoPenDeleteGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/mopen/mo_pen_delete_group_member.go

@@ -0,0 +1,107 @@
+package mopen
+
+//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"
+)
+
+// MoPenDeleteGroupMember invokes the mopen.MoPenDeleteGroupMember API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopendeletegroupmember.html
+func (client *Client) MoPenDeleteGroupMember(request *MoPenDeleteGroupMemberRequest) (response *MoPenDeleteGroupMemberResponse, err error) {
+	response = CreateMoPenDeleteGroupMemberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenDeleteGroupMemberWithChan invokes the mopen.MoPenDeleteGroupMember API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopendeletegroupmember.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenDeleteGroupMemberWithChan(request *MoPenDeleteGroupMemberRequest) (<-chan *MoPenDeleteGroupMemberResponse, <-chan error) {
+	responseChan := make(chan *MoPenDeleteGroupMemberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenDeleteGroupMember(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenDeleteGroupMemberWithCallback invokes the mopen.MoPenDeleteGroupMember API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopendeletegroupmember.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenDeleteGroupMemberWithCallback(request *MoPenDeleteGroupMemberRequest, callback func(response *MoPenDeleteGroupMemberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenDeleteGroupMemberResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenDeleteGroupMember(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenDeleteGroupMemberRequest is the request struct for api MoPenDeleteGroupMember
+type MoPenDeleteGroupMemberRequest struct {
+	*requests.RpcRequest
+	GroupId    requests.Integer `position:"Body" name:"GroupId"`
+	DeviceName string           `position:"Body" name:"DeviceName"`
+}
+
+// MoPenDeleteGroupMemberResponse is the response struct for api MoPenDeleteGroupMember
+type MoPenDeleteGroupMemberResponse struct {
+	*responses.BaseResponse
+	Code        string `json:"Code" xml:"Code"`
+	Success     bool   `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+	Message     string `json:"Message" xml:"Message"`
+}
+
+// CreateMoPenDeleteGroupMemberRequest creates a request to invoke MoPenDeleteGroupMember API
+func CreateMoPenDeleteGroupMemberRequest() (request *MoPenDeleteGroupMemberRequest) {
+	request = &MoPenDeleteGroupMemberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenDeleteGroupMember", "", "")
+	return
+}
+
+// CreateMoPenDeleteGroupMemberResponse creates a response to parse from MoPenDeleteGroupMember response
+func CreateMoPenDeleteGroupMemberResponse() (response *MoPenDeleteGroupMemberResponse) {
+	response = &MoPenDeleteGroupMemberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/mopen/mo_pen_do_recognize.go

@@ -0,0 +1,114 @@
+package mopen
+
+//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"
+)
+
+// MoPenDoRecognize invokes the mopen.MoPenDoRecognize API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopendorecognize.html
+func (client *Client) MoPenDoRecognize(request *MoPenDoRecognizeRequest) (response *MoPenDoRecognizeResponse, err error) {
+	response = CreateMoPenDoRecognizeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenDoRecognizeWithChan invokes the mopen.MoPenDoRecognize API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopendorecognize.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenDoRecognizeWithChan(request *MoPenDoRecognizeRequest) (<-chan *MoPenDoRecognizeResponse, <-chan error) {
+	responseChan := make(chan *MoPenDoRecognizeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenDoRecognize(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenDoRecognizeWithCallback invokes the mopen.MoPenDoRecognize API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopendorecognize.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenDoRecognizeWithCallback(request *MoPenDoRecognizeRequest, callback func(response *MoPenDoRecognizeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenDoRecognizeResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenDoRecognize(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenDoRecognizeRequest is the request struct for api MoPenDoRecognize
+type MoPenDoRecognizeRequest struct {
+	*requests.RpcRequest
+	CanvasId   requests.Integer `position:"Body" name:"CanvasId"`
+	EndY       requests.Integer `position:"Body" name:"EndY"`
+	EndX       requests.Integer `position:"Body" name:"EndX"`
+	JsonConf   string           `position:"Body" name:"JsonConf"`
+	ExportType string           `position:"Body" name:"ExportType"`
+	StartY     requests.Integer `position:"Body" name:"StartY"`
+	StartX     requests.Integer `position:"Body" name:"StartX"`
+}
+
+// MoPenDoRecognizeResponse is the response struct for api MoPenDoRecognize
+type MoPenDoRecognizeResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	Code        string `json:"Code" xml:"Code"`
+	Message     string `json:"Message" xml:"Message"`
+	Success     bool   `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+	Data        Data   `json:"Data" xml:"Data"`
+}
+
+// CreateMoPenDoRecognizeRequest creates a request to invoke MoPenDoRecognize API
+func CreateMoPenDoRecognizeRequest() (request *MoPenDoRecognizeRequest) {
+	request = &MoPenDoRecognizeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenDoRecognize", "", "")
+	return
+}
+
+// CreateMoPenDoRecognizeResponse creates a response to parse from MoPenDoRecognize response
+func CreateMoPenDoRecognizeResponse() (response *MoPenDoRecognizeResponse) {
+	response = &MoPenDoRecognizeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/mopen/mo_pen_find_group.go

@@ -0,0 +1,108 @@
+package mopen
+
+//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"
+)
+
+// MoPenFindGroup invokes the mopen.MoPenFindGroup API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopenfindgroup.html
+func (client *Client) MoPenFindGroup(request *MoPenFindGroupRequest) (response *MoPenFindGroupResponse, err error) {
+	response = CreateMoPenFindGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenFindGroupWithChan invokes the mopen.MoPenFindGroup API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenfindgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenFindGroupWithChan(request *MoPenFindGroupRequest) (<-chan *MoPenFindGroupResponse, <-chan error) {
+	responseChan := make(chan *MoPenFindGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenFindGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenFindGroupWithCallback invokes the mopen.MoPenFindGroup API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenfindgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenFindGroupWithCallback(request *MoPenFindGroupRequest, callback func(response *MoPenFindGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenFindGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenFindGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenFindGroupRequest is the request struct for api MoPenFindGroup
+type MoPenFindGroupRequest struct {
+	*requests.RpcRequest
+	Creator string `position:"Body" name:"Creator"`
+}
+
+// MoPenFindGroupResponse is the response struct for api MoPenFindGroup
+type MoPenFindGroupResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	Code        int    `json:"Code" xml:"Code"`
+	Success     string `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+	Message     string `json:"Message" xml:"Message"`
+	Data        Data   `json:"Data" xml:"Data"`
+}
+
+// CreateMoPenFindGroupRequest creates a request to invoke MoPenFindGroup API
+func CreateMoPenFindGroupRequest() (request *MoPenFindGroupRequest) {
+	request = &MoPenFindGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenFindGroup", "", "")
+	return
+}
+
+// CreateMoPenFindGroupResponse creates a response to parse from MoPenFindGroup response
+func CreateMoPenFindGroupResponse() (response *MoPenFindGroupResponse) {
+	response = &MoPenFindGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/mopen/mo_pen_query_canvas.go

@@ -0,0 +1,111 @@
+package mopen
+
+//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"
+)
+
+// MoPenQueryCanvas invokes the mopen.MoPenQueryCanvas API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopenquerycanvas.html
+func (client *Client) MoPenQueryCanvas(request *MoPenQueryCanvasRequest) (response *MoPenQueryCanvasResponse, err error) {
+	response = CreateMoPenQueryCanvasResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenQueryCanvasWithChan invokes the mopen.MoPenQueryCanvas API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenquerycanvas.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenQueryCanvasWithChan(request *MoPenQueryCanvasRequest) (<-chan *MoPenQueryCanvasResponse, <-chan error) {
+	responseChan := make(chan *MoPenQueryCanvasResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenQueryCanvas(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenQueryCanvasWithCallback invokes the mopen.MoPenQueryCanvas API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopenquerycanvas.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenQueryCanvasWithCallback(request *MoPenQueryCanvasRequest, callback func(response *MoPenQueryCanvasResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenQueryCanvasResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenQueryCanvas(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenQueryCanvasRequest is the request struct for api MoPenQueryCanvas
+type MoPenQueryCanvasRequest struct {
+	*requests.RpcRequest
+	DeviceName string           `position:"Body" name:"DeviceName"`
+	SessionId  string           `position:"Body" name:"SessionId"`
+	PageId     requests.Integer `position:"Body" name:"PageId"`
+	Status     requests.Integer `position:"Body" name:"Status"`
+}
+
+// MoPenQueryCanvasResponse is the response struct for api MoPenQueryCanvas
+type MoPenQueryCanvasResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	Code        string `json:"Code" xml:"Code"`
+	Message     string `json:"Message" xml:"Message"`
+	Success     bool   `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+	Data        Data   `json:"Data" xml:"Data"`
+}
+
+// CreateMoPenQueryCanvasRequest creates a request to invoke MoPenQueryCanvas API
+func CreateMoPenQueryCanvasRequest() (request *MoPenQueryCanvasRequest) {
+	request = &MoPenQueryCanvasRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenQueryCanvas", "", "")
+	return
+}
+
+// CreateMoPenQueryCanvasResponse creates a response to parse from MoPenQueryCanvas response
+func CreateMoPenQueryCanvasResponse() (response *MoPenQueryCanvasResponse) {
+	response = &MoPenQueryCanvasResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/mopen/mo_pen_send_mqtt_message.go

@@ -0,0 +1,108 @@
+package mopen
+
+//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"
+)
+
+// MoPenSendMqttMessage invokes the mopen.MoPenSendMqttMessage API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopensendmqttmessage.html
+func (client *Client) MoPenSendMqttMessage(request *MoPenSendMqttMessageRequest) (response *MoPenSendMqttMessageResponse, err error) {
+	response = CreateMoPenSendMqttMessageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MoPenSendMqttMessageWithChan invokes the mopen.MoPenSendMqttMessage API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopensendmqttmessage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenSendMqttMessageWithChan(request *MoPenSendMqttMessageRequest) (<-chan *MoPenSendMqttMessageResponse, <-chan error) {
+	responseChan := make(chan *MoPenSendMqttMessageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MoPenSendMqttMessage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MoPenSendMqttMessageWithCallback invokes the mopen.MoPenSendMqttMessage API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopensendmqttmessage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MoPenSendMqttMessageWithCallback(request *MoPenSendMqttMessageRequest, callback func(response *MoPenSendMqttMessageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MoPenSendMqttMessageResponse
+		var err error
+		defer close(result)
+		response, err = client.MoPenSendMqttMessage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MoPenSendMqttMessageRequest is the request struct for api MoPenSendMqttMessage
+type MoPenSendMqttMessageRequest struct {
+	*requests.RpcRequest
+	Payload    string `position:"Body" name:"Payload"`
+	DeviceName string `position:"Body" name:"DeviceName"`
+}
+
+// MoPenSendMqttMessageResponse is the response struct for api MoPenSendMqttMessage
+type MoPenSendMqttMessageResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	Code        string `json:"Code" xml:"Code"`
+	Message     string `json:"Message" xml:"Message"`
+	Success     bool   `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+}
+
+// CreateMoPenSendMqttMessageRequest creates a request to invoke MoPenSendMqttMessage API
+func CreateMoPenSendMqttMessageRequest() (request *MoPenSendMqttMessageRequest) {
+	request = &MoPenSendMqttMessageRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MoPenSendMqttMessage", "", "")
+	return
+}
+
+// CreateMoPenSendMqttMessageResponse creates a response to parse from MoPenSendMqttMessage response
+func CreateMoPenSendMqttMessageResponse() (response *MoPenSendMqttMessageResponse) {
+	response = &MoPenSendMqttMessageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/mopen/mopen_create_group.go

@@ -0,0 +1,108 @@
+package mopen
+
+//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"
+)
+
+// MopenCreateGroup invokes the mopen.MopenCreateGroup API synchronously
+// api document: https://help.aliyun.com/api/mopen/mopencreategroup.html
+func (client *Client) MopenCreateGroup(request *MopenCreateGroupRequest) (response *MopenCreateGroupResponse, err error) {
+	response = CreateMopenCreateGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// MopenCreateGroupWithChan invokes the mopen.MopenCreateGroup API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopencreategroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MopenCreateGroupWithChan(request *MopenCreateGroupRequest) (<-chan *MopenCreateGroupResponse, <-chan error) {
+	responseChan := make(chan *MopenCreateGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.MopenCreateGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// MopenCreateGroupWithCallback invokes the mopen.MopenCreateGroup API asynchronously
+// api document: https://help.aliyun.com/api/mopen/mopencreategroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) MopenCreateGroupWithCallback(request *MopenCreateGroupRequest, callback func(response *MopenCreateGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *MopenCreateGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.MopenCreateGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// MopenCreateGroupRequest is the request struct for api MopenCreateGroup
+type MopenCreateGroupRequest struct {
+	*requests.RpcRequest
+	Creator string `position:"Body" name:"Creator"`
+}
+
+// MopenCreateGroupResponse is the response struct for api MopenCreateGroup
+type MopenCreateGroupResponse struct {
+	*responses.BaseResponse
+	Code        int    `json:"Code" xml:"Code"`
+	Success     string `json:"Success" xml:"Success"`
+	Description string `json:"Description" xml:"Description"`
+	Message     string `json:"Message" xml:"Message"`
+	ResqusetId  string `json:"ResqusetId" xml:"ResqusetId"`
+	Data        Data   `json:"Data" xml:"Data"`
+}
+
+// CreateMopenCreateGroupRequest creates a request to invoke MopenCreateGroup API
+func CreateMopenCreateGroupRequest() (request *MopenCreateGroupRequest) {
+	request = &MopenCreateGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("MoPen", "2018-02-11", "MopenCreateGroup", "", "")
+	return
+}
+
+// CreateMopenCreateGroupResponse creates a response to parse from MopenCreateGroup response
+func CreateMopenCreateGroupResponse() (response *MopenCreateGroupResponse) {
+	response = &MopenCreateGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 29 - 0
services/mopen/struct_canvas.go

@@ -0,0 +1,29 @@
+package mopen
+
+//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.
+
+// Canvas is a nested struct in mopen response
+type Canvas struct {
+	Id           int    `json:"Id" xml:"Id"`
+	DeviceName   string `json:"DeviceName" xml:"DeviceName"`
+	Url          string `json:"Url" xml:"Url"`
+	PageId       int    `json:"PageId" xml:"PageId"`
+	SessionId    string `json:"SessionId" xml:"SessionId"`
+	CreateTime   string `json:"CreateTime" xml:"CreateTime"`
+	LastModified string `json:"LastModified" xml:"LastModified"`
+	Status       int    `json:"Status" xml:"Status"`
+	Attribute    string `json:"Attribute" xml:"Attribute"`
+}

+ 21 - 0
services/mopen/struct_canvas_list.go

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

+ 29 - 0
services/mopen/struct_data.go

@@ -0,0 +1,29 @@
+package mopen
+
+//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.
+
+// Data is a nested struct in mopen response
+type Data struct {
+	DeviceName   string   `json:"DeviceName" xml:"DeviceName"`
+	Product      string   `json:"Product" xml:"Product"`
+	Result       string   `json:"Result" xml:"Result"`
+	DeviceSecret string   `json:"DeviceSecret" xml:"DeviceSecret"`
+	CanvasId     int      `json:"CanvasId" xml:"CanvasId"`
+	Creator      string   `json:"Creator" xml:"Creator"`
+	GroupId      string   `json:"GroupId" xml:"GroupId"`
+	ResultType   string   `json:"ResultType" xml:"ResultType"`
+	CanvasList   []Canvas `json:"CanvasList" xml:"CanvasList"`
+}