Browse Source

SMARTAG SDK Auto Released By jijun.jj,Version:1.24.7

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 7 years ago
parent
commit
b438b87a7d
31 changed files with 2596 additions and 0 deletions
  1. 4 0
      ChangeLog.txt
  2. 107 0
      services/smartag/activate_smart_access_gateway.go
  3. 108 0
      services/smartag/bind_smart_access_gateway.go
  4. 81 0
      services/smartag/client.go
  5. 113 0
      services/smartag/create_cloud_connect_network.go
  6. 109 0
      services/smartag/create_dedicated_line_backup.go
  7. 130 0
      services/smartag/create_smart_access_gateway.go
  8. 107 0
      services/smartag/delete_cloud_connect_network.go
  9. 107 0
      services/smartag/delete_dedicated_line_backup.go
  10. 114 0
      services/smartag/describe_cloud_connect_networks.go
  11. 108 0
      services/smartag/describe_regions.go
  12. 116 0
      services/smartag/describe_smart_access_gateway_ha.go
  13. 107 0
      services/smartag/describe_smart_access_gateway_versions.go
  14. 116 0
      services/smartag/describe_smart_access_gateways.go
  15. 108 0
      services/smartag/get_cloud_connect_network_use_limit.go
  16. 108 0
      services/smartag/get_smart_access_gateway_use_limit.go
  17. 109 0
      services/smartag/modify_cloud_connect_network.go
  18. 112 0
      services/smartag/modify_smart_access_gateway.go
  19. 108 0
      services/smartag/reboot_smart_access_gateway.go
  20. 29 0
      services/smartag/struct_cloud_connect_network.go
  21. 21 0
      services/smartag/struct_cloud_connect_networks.go
  22. 23 0
      services/smartag/struct_region.go
  23. 21 0
      services/smartag/struct_regions.go
  24. 35 0
      services/smartag/struct_smart_access_gateway.go
  25. 21 0
      services/smartag/struct_smart_access_gateways.go
  26. 23 0
      services/smartag/struct_smart_ag_version.go
  27. 21 0
      services/smartag/struct_smart_ag_versions.go
  28. 107 0
      services/smartag/switch_cloud_box_ha_state.go
  29. 108 0
      services/smartag/unbind_smart_access_gateway.go
  30. 107 0
      services/smartag/unlock_smart_access_gateway.go
  31. 108 0
      services/smartag/update_smart_access_gateway_version.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-08-13 Version: 1.24.7
+1, Add cross domain support.
+2, Add parameter SerialNumber to interface RebootSmartAccessGateway.
+
 2018-08-08 Version: 1.24.6
 1, The official release 4.0.0
 

+ 107 - 0
services/smartag/activate_smart_access_gateway.go

@@ -0,0 +1,107 @@
+package smartag
+
+//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"
+)
+
+// ActivateSmartAccessGateway invokes the smartag.ActivateSmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/activatesmartaccessgateway.html
+func (client *Client) ActivateSmartAccessGateway(request *ActivateSmartAccessGatewayRequest) (response *ActivateSmartAccessGatewayResponse, err error) {
+	response = CreateActivateSmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ActivateSmartAccessGatewayWithChan invokes the smartag.ActivateSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/activatesmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ActivateSmartAccessGatewayWithChan(request *ActivateSmartAccessGatewayRequest) (<-chan *ActivateSmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *ActivateSmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ActivateSmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ActivateSmartAccessGatewayWithCallback invokes the smartag.ActivateSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/activatesmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ActivateSmartAccessGatewayWithCallback(request *ActivateSmartAccessGatewayRequest, callback func(response *ActivateSmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ActivateSmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.ActivateSmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ActivateSmartAccessGatewayRequest is the request struct for api ActivateSmartAccessGateway
+type ActivateSmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ActivateSmartAccessGatewayResponse is the response struct for api ActivateSmartAccessGateway
+type ActivateSmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateActivateSmartAccessGatewayRequest creates a request to invoke ActivateSmartAccessGateway API
+func CreateActivateSmartAccessGatewayRequest() (request *ActivateSmartAccessGatewayRequest) {
+	request = &ActivateSmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "ActivateSmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateActivateSmartAccessGatewayResponse creates a response to parse from ActivateSmartAccessGateway response
+func CreateActivateSmartAccessGatewayResponse() (response *ActivateSmartAccessGatewayResponse) {
+	response = &ActivateSmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/bind_smart_access_gateway.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// BindSmartAccessGateway invokes the smartag.BindSmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/bindsmartaccessgateway.html
+func (client *Client) BindSmartAccessGateway(request *BindSmartAccessGatewayRequest) (response *BindSmartAccessGatewayResponse, err error) {
+	response = CreateBindSmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BindSmartAccessGatewayWithChan invokes the smartag.BindSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/bindsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindSmartAccessGatewayWithChan(request *BindSmartAccessGatewayRequest) (<-chan *BindSmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *BindSmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BindSmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BindSmartAccessGatewayWithCallback invokes the smartag.BindSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/bindsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindSmartAccessGatewayWithCallback(request *BindSmartAccessGatewayRequest, callback func(response *BindSmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BindSmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.BindSmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BindSmartAccessGatewayRequest is the request struct for api BindSmartAccessGateway
+type BindSmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	CcnId                string           `position:"Query" name:"CcnId"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// BindSmartAccessGatewayResponse is the response struct for api BindSmartAccessGateway
+type BindSmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBindSmartAccessGatewayRequest creates a request to invoke BindSmartAccessGateway API
+func CreateBindSmartAccessGatewayRequest() (request *BindSmartAccessGatewayRequest) {
+	request = &BindSmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "BindSmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateBindSmartAccessGatewayResponse creates a response to parse from BindSmartAccessGateway response
+func CreateBindSmartAccessGatewayResponse() (response *BindSmartAccessGatewayResponse) {
+	response = &BindSmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/smartag/client.go

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

+ 113 - 0
services/smartag/create_cloud_connect_network.go

@@ -0,0 +1,113 @@
+package smartag
+
+//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"
+)
+
+// CreateCloudConnectNetwork invokes the smartag.CreateCloudConnectNetwork API synchronously
+// api document: https://help.aliyun.com/api/smartag/createcloudconnectnetwork.html
+func (client *Client) CreateCloudConnectNetwork(request *CreateCloudConnectNetworkRequest) (response *CreateCloudConnectNetworkResponse, err error) {
+	response = CreateCreateCloudConnectNetworkResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCloudConnectNetworkWithChan invokes the smartag.CreateCloudConnectNetwork API asynchronously
+// api document: https://help.aliyun.com/api/smartag/createcloudconnectnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCloudConnectNetworkWithChan(request *CreateCloudConnectNetworkRequest) (<-chan *CreateCloudConnectNetworkResponse, <-chan error) {
+	responseChan := make(chan *CreateCloudConnectNetworkResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCloudConnectNetwork(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCloudConnectNetworkWithCallback invokes the smartag.CreateCloudConnectNetwork API asynchronously
+// api document: https://help.aliyun.com/api/smartag/createcloudconnectnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCloudConnectNetworkWithCallback(request *CreateCloudConnectNetworkRequest, callback func(response *CreateCloudConnectNetworkResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCloudConnectNetworkResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCloudConnectNetwork(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCloudConnectNetworkRequest is the request struct for api CreateCloudConnectNetwork
+type CreateCloudConnectNetworkRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Name                 string           `position:"Query" name:"Name"`
+	Description          string           `position:"Query" name:"Description"`
+	IsDefault            requests.Boolean `position:"Query" name:"IsDefault"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CreateCloudConnectNetworkResponse is the response struct for api CreateCloudConnectNetwork
+type CreateCloudConnectNetworkResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	CcnId       string `json:"CcnId" xml:"CcnId"`
+	Name        string `json:"Name" xml:"Name"`
+	Status      string `json:"Status" xml:"Status"`
+	Description string `json:"Description" xml:"Description"`
+}
+
+// CreateCreateCloudConnectNetworkRequest creates a request to invoke CreateCloudConnectNetwork API
+func CreateCreateCloudConnectNetworkRequest() (request *CreateCloudConnectNetworkRequest) {
+	request = &CreateCloudConnectNetworkRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "CreateCloudConnectNetwork", "smartag", "openAPI")
+	return
+}
+
+// CreateCreateCloudConnectNetworkResponse creates a response to parse from CreateCloudConnectNetwork response
+func CreateCreateCloudConnectNetworkResponse() (response *CreateCloudConnectNetworkResponse) {
+	response = &CreateCloudConnectNetworkResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/smartag/create_dedicated_line_backup.go

@@ -0,0 +1,109 @@
+package smartag
+
+//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"
+)
+
+// CreateDedicatedLineBackup invokes the smartag.CreateDedicatedLineBackup API synchronously
+// api document: https://help.aliyun.com/api/smartag/creatededicatedlinebackup.html
+func (client *Client) CreateDedicatedLineBackup(request *CreateDedicatedLineBackupRequest) (response *CreateDedicatedLineBackupResponse, err error) {
+	response = CreateCreateDedicatedLineBackupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateDedicatedLineBackupWithChan invokes the smartag.CreateDedicatedLineBackup API asynchronously
+// api document: https://help.aliyun.com/api/smartag/creatededicatedlinebackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDedicatedLineBackupWithChan(request *CreateDedicatedLineBackupRequest) (<-chan *CreateDedicatedLineBackupResponse, <-chan error) {
+	responseChan := make(chan *CreateDedicatedLineBackupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDedicatedLineBackup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDedicatedLineBackupWithCallback invokes the smartag.CreateDedicatedLineBackup API asynchronously
+// api document: https://help.aliyun.com/api/smartag/creatededicatedlinebackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDedicatedLineBackupWithCallback(request *CreateDedicatedLineBackupRequest, callback func(response *CreateDedicatedLineBackupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDedicatedLineBackupResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDedicatedLineBackup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDedicatedLineBackupRequest is the request struct for api CreateDedicatedLineBackup
+type CreateDedicatedLineBackupRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	VbrId                string           `position:"Query" name:"VbrId"`
+	VbrRegionId          string           `position:"Query" name:"VbrRegionId"`
+}
+
+// CreateDedicatedLineBackupResponse is the response struct for api CreateDedicatedLineBackup
+type CreateDedicatedLineBackupResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateDedicatedLineBackupRequest creates a request to invoke CreateDedicatedLineBackup API
+func CreateCreateDedicatedLineBackupRequest() (request *CreateDedicatedLineBackupRequest) {
+	request = &CreateDedicatedLineBackupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "CreateDedicatedLineBackup", "smartag", "openAPI")
+	return
+}
+
+// CreateCreateDedicatedLineBackupResponse creates a response to parse from CreateDedicatedLineBackup response
+func CreateCreateDedicatedLineBackupResponse() (response *CreateDedicatedLineBackupResponse) {
+	response = &CreateDedicatedLineBackupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 130 - 0
services/smartag/create_smart_access_gateway.go

@@ -0,0 +1,130 @@
+package smartag
+
+//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"
+)
+
+// CreateSmartAccessGateway invokes the smartag.CreateSmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/createsmartaccessgateway.html
+func (client *Client) CreateSmartAccessGateway(request *CreateSmartAccessGatewayRequest) (response *CreateSmartAccessGatewayResponse, err error) {
+	response = CreateCreateSmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSmartAccessGatewayWithChan invokes the smartag.CreateSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/createsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSmartAccessGatewayWithChan(request *CreateSmartAccessGatewayRequest) (<-chan *CreateSmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *CreateSmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSmartAccessGatewayWithCallback invokes the smartag.CreateSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/createsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSmartAccessGatewayWithCallback(request *CreateSmartAccessGatewayRequest, callback func(response *CreateSmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSmartAccessGatewayRequest is the request struct for api CreateSmartAccessGateway
+type CreateSmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	MaxBandWidth         requests.Integer `position:"Query" name:"MaxBandWidth"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Description          string           `position:"Query" name:"Description"`
+	ReceiverTown         string           `position:"Query" name:"ReceiverTown"`
+	ReceiverDistrict     string           `position:"Query" name:"ReceiverDistrict"`
+	ReceiverAddress      string           `position:"Query" name:"ReceiverAddress"`
+	BuyerMessage         string           `position:"Query" name:"BuyerMessage"`
+	HardWareSpec         string           `position:"Query" name:"HardWareSpec"`
+	ReceiverEmail        string           `position:"Query" name:"ReceiverEmail"`
+	ReceiverState        string           `position:"Query" name:"ReceiverState"`
+	ReceiverCity         string           `position:"Query" name:"ReceiverCity"`
+	Period               requests.Integer `position:"Query" name:"Period"`
+	AutoPay              requests.Boolean `position:"Query" name:"AutoPay"`
+	ReceiverMobile       string           `position:"Query" name:"ReceiverMobile"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ReceiverPhone        string           `position:"Query" name:"ReceiverPhone"`
+	ReceiverName         string           `position:"Query" name:"ReceiverName"`
+	HaType               string           `position:"Query" name:"HaType"`
+	Name                 string           `position:"Query" name:"Name"`
+	ReceiverCountry      string           `position:"Query" name:"ReceiverCountry"`
+	ChargeType           string           `position:"Query" name:"ChargeType"`
+	ReceiverZip          string           `position:"Query" name:"ReceiverZip"`
+}
+
+// CreateSmartAccessGatewayResponse is the response struct for api CreateSmartAccessGateway
+type CreateSmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	SmartAGId   string `json:"SmartAGId" xml:"SmartAGId"`
+	Name        string `json:"Name" xml:"Name"`
+	OrderId     string `json:"OrderId" xml:"OrderId"`
+	Description string `json:"Description" xml:"Description"`
+}
+
+// CreateCreateSmartAccessGatewayRequest creates a request to invoke CreateSmartAccessGateway API
+func CreateCreateSmartAccessGatewayRequest() (request *CreateSmartAccessGatewayRequest) {
+	request = &CreateSmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "CreateSmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateCreateSmartAccessGatewayResponse creates a response to parse from CreateSmartAccessGateway response
+func CreateCreateSmartAccessGatewayResponse() (response *CreateSmartAccessGatewayResponse) {
+	response = &CreateSmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/smartag/delete_cloud_connect_network.go

@@ -0,0 +1,107 @@
+package smartag
+
+//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"
+)
+
+// DeleteCloudConnectNetwork invokes the smartag.DeleteCloudConnectNetwork API synchronously
+// api document: https://help.aliyun.com/api/smartag/deletecloudconnectnetwork.html
+func (client *Client) DeleteCloudConnectNetwork(request *DeleteCloudConnectNetworkRequest) (response *DeleteCloudConnectNetworkResponse, err error) {
+	response = CreateDeleteCloudConnectNetworkResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteCloudConnectNetworkWithChan invokes the smartag.DeleteCloudConnectNetwork API asynchronously
+// api document: https://help.aliyun.com/api/smartag/deletecloudconnectnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCloudConnectNetworkWithChan(request *DeleteCloudConnectNetworkRequest) (<-chan *DeleteCloudConnectNetworkResponse, <-chan error) {
+	responseChan := make(chan *DeleteCloudConnectNetworkResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteCloudConnectNetwork(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteCloudConnectNetworkWithCallback invokes the smartag.DeleteCloudConnectNetwork API asynchronously
+// api document: https://help.aliyun.com/api/smartag/deletecloudconnectnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCloudConnectNetworkWithCallback(request *DeleteCloudConnectNetworkRequest, callback func(response *DeleteCloudConnectNetworkResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteCloudConnectNetworkResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteCloudConnectNetwork(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteCloudConnectNetworkRequest is the request struct for api DeleteCloudConnectNetwork
+type DeleteCloudConnectNetworkRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	CcnId                string           `position:"Query" name:"CcnId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteCloudConnectNetworkResponse is the response struct for api DeleteCloudConnectNetwork
+type DeleteCloudConnectNetworkResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteCloudConnectNetworkRequest creates a request to invoke DeleteCloudConnectNetwork API
+func CreateDeleteCloudConnectNetworkRequest() (request *DeleteCloudConnectNetworkRequest) {
+	request = &DeleteCloudConnectNetworkRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DeleteCloudConnectNetwork", "smartag", "openAPI")
+	return
+}
+
+// CreateDeleteCloudConnectNetworkResponse creates a response to parse from DeleteCloudConnectNetwork response
+func CreateDeleteCloudConnectNetworkResponse() (response *DeleteCloudConnectNetworkResponse) {
+	response = &DeleteCloudConnectNetworkResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/smartag/delete_dedicated_line_backup.go

@@ -0,0 +1,107 @@
+package smartag
+
+//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"
+)
+
+// DeleteDedicatedLineBackup invokes the smartag.DeleteDedicatedLineBackup API synchronously
+// api document: https://help.aliyun.com/api/smartag/deletededicatedlinebackup.html
+func (client *Client) DeleteDedicatedLineBackup(request *DeleteDedicatedLineBackupRequest) (response *DeleteDedicatedLineBackupResponse, err error) {
+	response = CreateDeleteDedicatedLineBackupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteDedicatedLineBackupWithChan invokes the smartag.DeleteDedicatedLineBackup API asynchronously
+// api document: https://help.aliyun.com/api/smartag/deletededicatedlinebackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDedicatedLineBackupWithChan(request *DeleteDedicatedLineBackupRequest) (<-chan *DeleteDedicatedLineBackupResponse, <-chan error) {
+	responseChan := make(chan *DeleteDedicatedLineBackupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteDedicatedLineBackup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteDedicatedLineBackupWithCallback invokes the smartag.DeleteDedicatedLineBackup API asynchronously
+// api document: https://help.aliyun.com/api/smartag/deletededicatedlinebackup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDedicatedLineBackupWithCallback(request *DeleteDedicatedLineBackupRequest, callback func(response *DeleteDedicatedLineBackupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteDedicatedLineBackupResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteDedicatedLineBackup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteDedicatedLineBackupRequest is the request struct for api DeleteDedicatedLineBackup
+type DeleteDedicatedLineBackupRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteDedicatedLineBackupResponse is the response struct for api DeleteDedicatedLineBackup
+type DeleteDedicatedLineBackupResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteDedicatedLineBackupRequest creates a request to invoke DeleteDedicatedLineBackup API
+func CreateDeleteDedicatedLineBackupRequest() (request *DeleteDedicatedLineBackupRequest) {
+	request = &DeleteDedicatedLineBackupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DeleteDedicatedLineBackup", "smartag", "openAPI")
+	return
+}
+
+// CreateDeleteDedicatedLineBackupResponse creates a response to parse from DeleteDedicatedLineBackup response
+func CreateDeleteDedicatedLineBackupResponse() (response *DeleteDedicatedLineBackupResponse) {
+	response = &DeleteDedicatedLineBackupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/smartag/describe_cloud_connect_networks.go

@@ -0,0 +1,114 @@
+package smartag
+
+//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"
+)
+
+// DescribeCloudConnectNetworks invokes the smartag.DescribeCloudConnectNetworks API synchronously
+// api document: https://help.aliyun.com/api/smartag/describecloudconnectnetworks.html
+func (client *Client) DescribeCloudConnectNetworks(request *DescribeCloudConnectNetworksRequest) (response *DescribeCloudConnectNetworksResponse, err error) {
+	response = CreateDescribeCloudConnectNetworksResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCloudConnectNetworksWithChan invokes the smartag.DescribeCloudConnectNetworks API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describecloudconnectnetworks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCloudConnectNetworksWithChan(request *DescribeCloudConnectNetworksRequest) (<-chan *DescribeCloudConnectNetworksResponse, <-chan error) {
+	responseChan := make(chan *DescribeCloudConnectNetworksResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCloudConnectNetworks(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCloudConnectNetworksWithCallback invokes the smartag.DescribeCloudConnectNetworks API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describecloudconnectnetworks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCloudConnectNetworksWithCallback(request *DescribeCloudConnectNetworksRequest, callback func(response *DescribeCloudConnectNetworksResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCloudConnectNetworksResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCloudConnectNetworks(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCloudConnectNetworksRequest is the request struct for api DescribeCloudConnectNetworks
+type DescribeCloudConnectNetworksRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Name                 string           `position:"Query" name:"Name"`
+	CcnId                string           `position:"Query" name:"CcnId"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           string           `position:"Query" name:"PageNumber"`
+}
+
+// DescribeCloudConnectNetworksResponse is the response struct for api DescribeCloudConnectNetworks
+type DescribeCloudConnectNetworksResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	TotalCount           int                  `json:"TotalCount" xml:"TotalCount"`
+	PageNumber           int                  `json:"PageNumber" xml:"PageNumber"`
+	PageSize             int                  `json:"PageSize" xml:"PageSize"`
+	CloudConnectNetworks CloudConnectNetworks `json:"CloudConnectNetworks" xml:"CloudConnectNetworks"`
+}
+
+// CreateDescribeCloudConnectNetworksRequest creates a request to invoke DescribeCloudConnectNetworks API
+func CreateDescribeCloudConnectNetworksRequest() (request *DescribeCloudConnectNetworksRequest) {
+	request = &DescribeCloudConnectNetworksRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DescribeCloudConnectNetworks", "smartag", "openAPI")
+	return
+}
+
+// CreateDescribeCloudConnectNetworksResponse creates a response to parse from DescribeCloudConnectNetworks response
+func CreateDescribeCloudConnectNetworksResponse() (response *DescribeCloudConnectNetworksResponse) {
+	response = &DescribeCloudConnectNetworksResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/describe_regions.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// DescribeRegions invokes the smartag.DescribeRegions API synchronously
+// api document: https://help.aliyun.com/api/smartag/describeregions.html
+func (client *Client) DescribeRegions(request *DescribeRegionsRequest) (response *DescribeRegionsResponse, err error) {
+	response = CreateDescribeRegionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRegionsWithChan invokes the smartag.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithChan(request *DescribeRegionsRequest) (<-chan *DescribeRegionsResponse, <-chan error) {
+	responseChan := make(chan *DescribeRegionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRegions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRegionsWithCallback invokes the smartag.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithCallback(request *DescribeRegionsRequest, callback func(response *DescribeRegionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRegionsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRegions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRegionsRequest is the request struct for api DescribeRegions
+type DescribeRegionsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	AcceptLanguage       string           `position:"Query" name:"AcceptLanguage"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeRegionsResponse is the response struct for api DescribeRegions
+type DescribeRegionsResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Regions   Regions `json:"Regions" xml:"Regions"`
+}
+
+// CreateDescribeRegionsRequest creates a request to invoke DescribeRegions API
+func CreateDescribeRegionsRequest() (request *DescribeRegionsRequest) {
+	request = &DescribeRegionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DescribeRegions", "smartag", "openAPI")
+	return
+}
+
+// CreateDescribeRegionsResponse creates a response to parse from DescribeRegions response
+func CreateDescribeRegionsResponse() (response *DescribeRegionsResponse) {
+	response = &DescribeRegionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/smartag/describe_smart_access_gateway_ha.go

@@ -0,0 +1,116 @@
+package smartag
+
+//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"
+)
+
+// DescribeSmartAccessGatewayHa invokes the smartag.DescribeSmartAccessGatewayHa API synchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgatewayha.html
+func (client *Client) DescribeSmartAccessGatewayHa(request *DescribeSmartAccessGatewayHaRequest) (response *DescribeSmartAccessGatewayHaResponse, err error) {
+	response = CreateDescribeSmartAccessGatewayHaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSmartAccessGatewayHaWithChan invokes the smartag.DescribeSmartAccessGatewayHa API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgatewayha.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSmartAccessGatewayHaWithChan(request *DescribeSmartAccessGatewayHaRequest) (<-chan *DescribeSmartAccessGatewayHaResponse, <-chan error) {
+	responseChan := make(chan *DescribeSmartAccessGatewayHaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSmartAccessGatewayHa(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSmartAccessGatewayHaWithCallback invokes the smartag.DescribeSmartAccessGatewayHa API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgatewayha.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSmartAccessGatewayHaWithCallback(request *DescribeSmartAccessGatewayHaRequest, callback func(response *DescribeSmartAccessGatewayHaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSmartAccessGatewayHaResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSmartAccessGatewayHa(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSmartAccessGatewayHaRequest is the request struct for api DescribeSmartAccessGatewayHa
+type DescribeSmartAccessGatewayHaRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSmartAccessGatewayHaResponse is the response struct for api DescribeSmartAccessGatewayHa
+type DescribeSmartAccessGatewayHaResponse struct {
+	*responses.BaseResponse
+	RequestId              string `json:"RequestId" xml:"RequestId"`
+	DeviceLevelBackupState string `json:"DeviceLevelBackupState" xml:"DeviceLevelBackupState"`
+	DeviceLevelBackupType  string `json:"DeviceLevelBackupType" xml:"DeviceLevelBackupType"`
+	MainDeviceId           string `json:"MainDeviceId" xml:"MainDeviceId"`
+	BackupDeviceId         string `json:"BackupDeviceId" xml:"BackupDeviceId"`
+	LinkLevelBackupState   string `json:"LinkLevelBackupState" xml:"LinkLevelBackupState"`
+	LinkLevelBackupType    string `json:"LinkLevelBackupType" xml:"LinkLevelBackupType"`
+	MainLinkId             string `json:"MainLinkId" xml:"MainLinkId"`
+	BackupLinkId           string `json:"BackupLinkId" xml:"BackupLinkId"`
+	SmartAGId              string `json:"SmartAGId" xml:"SmartAGId"`
+}
+
+// CreateDescribeSmartAccessGatewayHaRequest creates a request to invoke DescribeSmartAccessGatewayHa API
+func CreateDescribeSmartAccessGatewayHaRequest() (request *DescribeSmartAccessGatewayHaRequest) {
+	request = &DescribeSmartAccessGatewayHaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DescribeSmartAccessGatewayHa", "smartag", "openAPI")
+	return
+}
+
+// CreateDescribeSmartAccessGatewayHaResponse creates a response to parse from DescribeSmartAccessGatewayHa response
+func CreateDescribeSmartAccessGatewayHaResponse() (response *DescribeSmartAccessGatewayHaResponse) {
+	response = &DescribeSmartAccessGatewayHaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/smartag/describe_smart_access_gateway_versions.go

@@ -0,0 +1,107 @@
+package smartag
+
+//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"
+)
+
+// DescribeSmartAccessGatewayVersions invokes the smartag.DescribeSmartAccessGatewayVersions API synchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgatewayversions.html
+func (client *Client) DescribeSmartAccessGatewayVersions(request *DescribeSmartAccessGatewayVersionsRequest) (response *DescribeSmartAccessGatewayVersionsResponse, err error) {
+	response = CreateDescribeSmartAccessGatewayVersionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSmartAccessGatewayVersionsWithChan invokes the smartag.DescribeSmartAccessGatewayVersions API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgatewayversions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSmartAccessGatewayVersionsWithChan(request *DescribeSmartAccessGatewayVersionsRequest) (<-chan *DescribeSmartAccessGatewayVersionsResponse, <-chan error) {
+	responseChan := make(chan *DescribeSmartAccessGatewayVersionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSmartAccessGatewayVersions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSmartAccessGatewayVersionsWithCallback invokes the smartag.DescribeSmartAccessGatewayVersions API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgatewayversions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSmartAccessGatewayVersionsWithCallback(request *DescribeSmartAccessGatewayVersionsRequest, callback func(response *DescribeSmartAccessGatewayVersionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSmartAccessGatewayVersionsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSmartAccessGatewayVersions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSmartAccessGatewayVersionsRequest is the request struct for api DescribeSmartAccessGatewayVersions
+type DescribeSmartAccessGatewayVersionsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeSmartAccessGatewayVersionsResponse is the response struct for api DescribeSmartAccessGatewayVersions
+type DescribeSmartAccessGatewayVersionsResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	SmartAGVersions SmartAGVersions `json:"SmartAGVersions" xml:"SmartAGVersions"`
+}
+
+// CreateDescribeSmartAccessGatewayVersionsRequest creates a request to invoke DescribeSmartAccessGatewayVersions API
+func CreateDescribeSmartAccessGatewayVersionsRequest() (request *DescribeSmartAccessGatewayVersionsRequest) {
+	request = &DescribeSmartAccessGatewayVersionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DescribeSmartAccessGatewayVersions", "smartag", "openAPI")
+	return
+}
+
+// CreateDescribeSmartAccessGatewayVersionsResponse creates a response to parse from DescribeSmartAccessGatewayVersions response
+func CreateDescribeSmartAccessGatewayVersionsResponse() (response *DescribeSmartAccessGatewayVersionsResponse) {
+	response = &DescribeSmartAccessGatewayVersionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/smartag/describe_smart_access_gateways.go

@@ -0,0 +1,116 @@
+package smartag
+
+//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"
+)
+
+// DescribeSmartAccessGateways invokes the smartag.DescribeSmartAccessGateways API synchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgateways.html
+func (client *Client) DescribeSmartAccessGateways(request *DescribeSmartAccessGatewaysRequest) (response *DescribeSmartAccessGatewaysResponse, err error) {
+	response = CreateDescribeSmartAccessGatewaysResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeSmartAccessGatewaysWithChan invokes the smartag.DescribeSmartAccessGateways API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgateways.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSmartAccessGatewaysWithChan(request *DescribeSmartAccessGatewaysRequest) (<-chan *DescribeSmartAccessGatewaysResponse, <-chan error) {
+	responseChan := make(chan *DescribeSmartAccessGatewaysResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeSmartAccessGateways(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeSmartAccessGatewaysWithCallback invokes the smartag.DescribeSmartAccessGateways API asynchronously
+// api document: https://help.aliyun.com/api/smartag/describesmartaccessgateways.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeSmartAccessGatewaysWithCallback(request *DescribeSmartAccessGatewaysRequest, callback func(response *DescribeSmartAccessGatewaysResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeSmartAccessGatewaysResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeSmartAccessGateways(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeSmartAccessGatewaysRequest is the request struct for api DescribeSmartAccessGateways
+type DescribeSmartAccessGatewaysRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Name                 string           `position:"Query" name:"Name"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+	AssociatedCcnId      string           `position:"Query" name:"AssociatedCcnId"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           string           `position:"Query" name:"PageNumber"`
+	Status               string           `position:"Query" name:"Status"`
+}
+
+// DescribeSmartAccessGatewaysResponse is the response struct for api DescribeSmartAccessGateways
+type DescribeSmartAccessGatewaysResponse struct {
+	*responses.BaseResponse
+	RequestId           string              `json:"RequestId" xml:"RequestId"`
+	TotalCount          int                 `json:"TotalCount" xml:"TotalCount"`
+	PageNumber          int                 `json:"PageNumber" xml:"PageNumber"`
+	PageSize            int                 `json:"PageSize" xml:"PageSize"`
+	SmartAccessGateways SmartAccessGateways `json:"SmartAccessGateways" xml:"SmartAccessGateways"`
+}
+
+// CreateDescribeSmartAccessGatewaysRequest creates a request to invoke DescribeSmartAccessGateways API
+func CreateDescribeSmartAccessGatewaysRequest() (request *DescribeSmartAccessGatewaysRequest) {
+	request = &DescribeSmartAccessGatewaysRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "DescribeSmartAccessGateways", "smartag", "openAPI")
+	return
+}
+
+// CreateDescribeSmartAccessGatewaysResponse creates a response to parse from DescribeSmartAccessGateways response
+func CreateDescribeSmartAccessGatewaysResponse() (response *DescribeSmartAccessGatewaysResponse) {
+	response = &DescribeSmartAccessGatewaysResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/get_cloud_connect_network_use_limit.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// GetCloudConnectNetworkUseLimit invokes the smartag.GetCloudConnectNetworkUseLimit API synchronously
+// api document: https://help.aliyun.com/api/smartag/getcloudconnectnetworkuselimit.html
+func (client *Client) GetCloudConnectNetworkUseLimit(request *GetCloudConnectNetworkUseLimitRequest) (response *GetCloudConnectNetworkUseLimitResponse, err error) {
+	response = CreateGetCloudConnectNetworkUseLimitResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetCloudConnectNetworkUseLimitWithChan invokes the smartag.GetCloudConnectNetworkUseLimit API asynchronously
+// api document: https://help.aliyun.com/api/smartag/getcloudconnectnetworkuselimit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCloudConnectNetworkUseLimitWithChan(request *GetCloudConnectNetworkUseLimitRequest) (<-chan *GetCloudConnectNetworkUseLimitResponse, <-chan error) {
+	responseChan := make(chan *GetCloudConnectNetworkUseLimitResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetCloudConnectNetworkUseLimit(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetCloudConnectNetworkUseLimitWithCallback invokes the smartag.GetCloudConnectNetworkUseLimit API asynchronously
+// api document: https://help.aliyun.com/api/smartag/getcloudconnectnetworkuselimit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCloudConnectNetworkUseLimitWithCallback(request *GetCloudConnectNetworkUseLimitRequest, callback func(response *GetCloudConnectNetworkUseLimitResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetCloudConnectNetworkUseLimitResponse
+		var err error
+		defer close(result)
+		response, err = client.GetCloudConnectNetworkUseLimit(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetCloudConnectNetworkUseLimitRequest is the request struct for api GetCloudConnectNetworkUseLimit
+type GetCloudConnectNetworkUseLimitRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// GetCloudConnectNetworkUseLimitResponse is the response struct for api GetCloudConnectNetworkUseLimit
+type GetCloudConnectNetworkUseLimitResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	TotalAmount int    `json:"TotalAmount" xml:"TotalAmount"`
+	UsedAmount  int    `json:"UsedAmount" xml:"UsedAmount"`
+}
+
+// CreateGetCloudConnectNetworkUseLimitRequest creates a request to invoke GetCloudConnectNetworkUseLimit API
+func CreateGetCloudConnectNetworkUseLimitRequest() (request *GetCloudConnectNetworkUseLimitRequest) {
+	request = &GetCloudConnectNetworkUseLimitRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "GetCloudConnectNetworkUseLimit", "smartag", "openAPI")
+	return
+}
+
+// CreateGetCloudConnectNetworkUseLimitResponse creates a response to parse from GetCloudConnectNetworkUseLimit response
+func CreateGetCloudConnectNetworkUseLimitResponse() (response *GetCloudConnectNetworkUseLimitResponse) {
+	response = &GetCloudConnectNetworkUseLimitResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/get_smart_access_gateway_use_limit.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// GetSmartAccessGatewayUseLimit invokes the smartag.GetSmartAccessGatewayUseLimit API synchronously
+// api document: https://help.aliyun.com/api/smartag/getsmartaccessgatewayuselimit.html
+func (client *Client) GetSmartAccessGatewayUseLimit(request *GetSmartAccessGatewayUseLimitRequest) (response *GetSmartAccessGatewayUseLimitResponse, err error) {
+	response = CreateGetSmartAccessGatewayUseLimitResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSmartAccessGatewayUseLimitWithChan invokes the smartag.GetSmartAccessGatewayUseLimit API asynchronously
+// api document: https://help.aliyun.com/api/smartag/getsmartaccessgatewayuselimit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSmartAccessGatewayUseLimitWithChan(request *GetSmartAccessGatewayUseLimitRequest) (<-chan *GetSmartAccessGatewayUseLimitResponse, <-chan error) {
+	responseChan := make(chan *GetSmartAccessGatewayUseLimitResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSmartAccessGatewayUseLimit(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSmartAccessGatewayUseLimitWithCallback invokes the smartag.GetSmartAccessGatewayUseLimit API asynchronously
+// api document: https://help.aliyun.com/api/smartag/getsmartaccessgatewayuselimit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSmartAccessGatewayUseLimitWithCallback(request *GetSmartAccessGatewayUseLimitRequest, callback func(response *GetSmartAccessGatewayUseLimitResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSmartAccessGatewayUseLimitResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSmartAccessGatewayUseLimit(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSmartAccessGatewayUseLimitRequest is the request struct for api GetSmartAccessGatewayUseLimit
+type GetSmartAccessGatewayUseLimitRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// GetSmartAccessGatewayUseLimitResponse is the response struct for api GetSmartAccessGatewayUseLimit
+type GetSmartAccessGatewayUseLimitResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	TotalAmount int    `json:"TotalAmount" xml:"TotalAmount"`
+	UsedAmount  int    `json:"UsedAmount" xml:"UsedAmount"`
+}
+
+// CreateGetSmartAccessGatewayUseLimitRequest creates a request to invoke GetSmartAccessGatewayUseLimit API
+func CreateGetSmartAccessGatewayUseLimitRequest() (request *GetSmartAccessGatewayUseLimitRequest) {
+	request = &GetSmartAccessGatewayUseLimitRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "GetSmartAccessGatewayUseLimit", "smartag", "openAPI")
+	return
+}
+
+// CreateGetSmartAccessGatewayUseLimitResponse creates a response to parse from GetSmartAccessGatewayUseLimit response
+func CreateGetSmartAccessGatewayUseLimitResponse() (response *GetSmartAccessGatewayUseLimitResponse) {
+	response = &GetSmartAccessGatewayUseLimitResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/smartag/modify_cloud_connect_network.go

@@ -0,0 +1,109 @@
+package smartag
+
+//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"
+)
+
+// ModifyCloudConnectNetwork invokes the smartag.ModifyCloudConnectNetwork API synchronously
+// api document: https://help.aliyun.com/api/smartag/modifycloudconnectnetwork.html
+func (client *Client) ModifyCloudConnectNetwork(request *ModifyCloudConnectNetworkRequest) (response *ModifyCloudConnectNetworkResponse, err error) {
+	response = CreateModifyCloudConnectNetworkResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyCloudConnectNetworkWithChan invokes the smartag.ModifyCloudConnectNetwork API asynchronously
+// api document: https://help.aliyun.com/api/smartag/modifycloudconnectnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCloudConnectNetworkWithChan(request *ModifyCloudConnectNetworkRequest) (<-chan *ModifyCloudConnectNetworkResponse, <-chan error) {
+	responseChan := make(chan *ModifyCloudConnectNetworkResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCloudConnectNetwork(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyCloudConnectNetworkWithCallback invokes the smartag.ModifyCloudConnectNetwork API asynchronously
+// api document: https://help.aliyun.com/api/smartag/modifycloudconnectnetwork.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCloudConnectNetworkWithCallback(request *ModifyCloudConnectNetworkRequest, callback func(response *ModifyCloudConnectNetworkResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCloudConnectNetworkResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCloudConnectNetwork(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyCloudConnectNetworkRequest is the request struct for api ModifyCloudConnectNetwork
+type ModifyCloudConnectNetworkRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	CcnId                string           `position:"Query" name:"CcnId"`
+	Name                 string           `position:"Query" name:"Name"`
+	Description          string           `position:"Query" name:"Description"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// ModifyCloudConnectNetworkResponse is the response struct for api ModifyCloudConnectNetwork
+type ModifyCloudConnectNetworkResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyCloudConnectNetworkRequest creates a request to invoke ModifyCloudConnectNetwork API
+func CreateModifyCloudConnectNetworkRequest() (request *ModifyCloudConnectNetworkRequest) {
+	request = &ModifyCloudConnectNetworkRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "ModifyCloudConnectNetwork", "smartag", "openAPI")
+	return
+}
+
+// CreateModifyCloudConnectNetworkResponse creates a response to parse from ModifyCloudConnectNetwork response
+func CreateModifyCloudConnectNetworkResponse() (response *ModifyCloudConnectNetworkResponse) {
+	response = &ModifyCloudConnectNetworkResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/smartag/modify_smart_access_gateway.go

@@ -0,0 +1,112 @@
+package smartag
+
+//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"
+)
+
+// ModifySmartAccessGateway invokes the smartag.ModifySmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/modifysmartaccessgateway.html
+func (client *Client) ModifySmartAccessGateway(request *ModifySmartAccessGatewayRequest) (response *ModifySmartAccessGatewayResponse, err error) {
+	response = CreateModifySmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifySmartAccessGatewayWithChan invokes the smartag.ModifySmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/modifysmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySmartAccessGatewayWithChan(request *ModifySmartAccessGatewayRequest) (<-chan *ModifySmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *ModifySmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifySmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifySmartAccessGatewayWithCallback invokes the smartag.ModifySmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/modifysmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifySmartAccessGatewayWithCallback(request *ModifySmartAccessGatewayRequest, callback func(response *ModifySmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifySmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifySmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifySmartAccessGatewayRequest is the request struct for api ModifySmartAccessGateway
+type ModifySmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	City                  string           `position:"Query" name:"City"`
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	Name                  string           `position:"Query" name:"Name"`
+	CidrBlock             string           `position:"Query" name:"CidrBlock"`
+	SmartAGId             string           `position:"Query" name:"SmartAGId"`
+	Description           string           `position:"Query" name:"Description"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	SecurityLockThreshold requests.Integer `position:"Query" name:"SecurityLockThreshold"`
+}
+
+// ModifySmartAccessGatewayResponse is the response struct for api ModifySmartAccessGateway
+type ModifySmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifySmartAccessGatewayRequest creates a request to invoke ModifySmartAccessGateway API
+func CreateModifySmartAccessGatewayRequest() (request *ModifySmartAccessGatewayRequest) {
+	request = &ModifySmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "ModifySmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateModifySmartAccessGatewayResponse creates a response to parse from ModifySmartAccessGateway response
+func CreateModifySmartAccessGatewayResponse() (response *ModifySmartAccessGatewayResponse) {
+	response = &ModifySmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/reboot_smart_access_gateway.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// RebootSmartAccessGateway invokes the smartag.RebootSmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/rebootsmartaccessgateway.html
+func (client *Client) RebootSmartAccessGateway(request *RebootSmartAccessGatewayRequest) (response *RebootSmartAccessGatewayResponse, err error) {
+	response = CreateRebootSmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RebootSmartAccessGatewayWithChan invokes the smartag.RebootSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/rebootsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RebootSmartAccessGatewayWithChan(request *RebootSmartAccessGatewayRequest) (<-chan *RebootSmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *RebootSmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RebootSmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RebootSmartAccessGatewayWithCallback invokes the smartag.RebootSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/rebootsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RebootSmartAccessGatewayWithCallback(request *RebootSmartAccessGatewayRequest, callback func(response *RebootSmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RebootSmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.RebootSmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RebootSmartAccessGatewayRequest is the request struct for api RebootSmartAccessGateway
+type RebootSmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SerialNumber         string           `position:"Query" name:"SerialNumber"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// RebootSmartAccessGatewayResponse is the response struct for api RebootSmartAccessGateway
+type RebootSmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateRebootSmartAccessGatewayRequest creates a request to invoke RebootSmartAccessGateway API
+func CreateRebootSmartAccessGatewayRequest() (request *RebootSmartAccessGatewayRequest) {
+	request = &RebootSmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "RebootSmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateRebootSmartAccessGatewayResponse creates a response to parse from RebootSmartAccessGateway response
+func CreateRebootSmartAccessGatewayResponse() (response *RebootSmartAccessGatewayResponse) {
+	response = &RebootSmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 29 - 0
services/smartag/struct_cloud_connect_network.go

@@ -0,0 +1,29 @@
+package smartag
+
+//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.
+
+// CloudConnectNetwork is a nested struct in smartag response
+type CloudConnectNetwork struct {
+	CcnId                   string `json:"CcnId" xml:"CcnId"`
+	Name                    string `json:"Name" xml:"Name"`
+	AssociatedCloudBoxCount string `json:"AssociatedCloudBoxCount" xml:"AssociatedCloudBoxCount"`
+	AvailableCloudBoxCount  string `json:"AvailableCloudBoxCount" xml:"AvailableCloudBoxCount"`
+	AssociatedCenId         string `json:"AssociatedCenId" xml:"AssociatedCenId"`
+	AssociatedCenOwnerId    string `json:"AssociatedCenOwnerId" xml:"AssociatedCenOwnerId"`
+	Description             string `json:"Description" xml:"Description"`
+	CreateTime              int    `json:"CreateTime" xml:"CreateTime"`
+	IsDefault               bool   `json:"IsDefault" xml:"IsDefault"`
+}

+ 21 - 0
services/smartag/struct_cloud_connect_networks.go

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

+ 23 - 0
services/smartag/struct_region.go

@@ -0,0 +1,23 @@
+package smartag
+
+//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.
+
+// Region is a nested struct in smartag response
+type Region struct {
+	RegionId       string `json:"RegionId" xml:"RegionId"`
+	LocalName      string `json:"LocalName" xml:"LocalName"`
+	RegionEndpoint string `json:"RegionEndpoint" xml:"RegionEndpoint"`
+}

+ 21 - 0
services/smartag/struct_regions.go

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

+ 35 - 0
services/smartag/struct_smart_access_gateway.go

@@ -0,0 +1,35 @@
+package smartag
+
+//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.
+
+// SmartAccessGateway is a nested struct in smartag response
+type SmartAccessGateway struct {
+	SmartAGId             string `json:"SmartAGId" xml:"SmartAGId"`
+	Name                  string `json:"Name" xml:"Name"`
+	City                  string `json:"City" xml:"City"`
+	MaxBandwidth          string `json:"MaxBandwidth" xml:"MaxBandwidth"`
+	Status                string `json:"Status" xml:"Status"`
+	CidrBlock             string `json:"CidrBlock" xml:"CidrBlock"`
+	AssociatedCcnId       string `json:"AssociatedCcnId" xml:"AssociatedCcnId"`
+	AssociatedCcnName     string `json:"AssociatedCcnName" xml:"AssociatedCcnName"`
+	Description           string `json:"Description" xml:"Description"`
+	CreateTime            int    `json:"CreateTime" xml:"CreateTime"`
+	EndTime               int    `json:"EndTime" xml:"EndTime"`
+	SoftwareVersion       string `json:"SoftwareVersion" xml:"SoftwareVersion"`
+	HardwareVersion       string `json:"HardwareVersion" xml:"HardwareVersion"`
+	SerialNumber          string `json:"SerialNumber" xml:"SerialNumber"`
+	SecurityLockThreshold int    `json:"SecurityLockThreshold" xml:"SecurityLockThreshold"`
+}

+ 21 - 0
services/smartag/struct_smart_access_gateways.go

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

+ 23 - 0
services/smartag/struct_smart_ag_version.go

@@ -0,0 +1,23 @@
+package smartag
+
+//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.
+
+// SmartAGVersion is a nested struct in smartag response
+type SmartAGVersion struct {
+	VersionCode string `json:"VersionCode" xml:"VersionCode"`
+	VersionName string `json:"VersionName" xml:"VersionName"`
+	CreateTime  int    `json:"CreateTime" xml:"CreateTime"`
+}

+ 21 - 0
services/smartag/struct_smart_ag_versions.go

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

+ 107 - 0
services/smartag/switch_cloud_box_ha_state.go

@@ -0,0 +1,107 @@
+package smartag
+
+//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"
+)
+
+// SwitchCloudBoxHaState invokes the smartag.SwitchCloudBoxHaState API synchronously
+// api document: https://help.aliyun.com/api/smartag/switchcloudboxhastate.html
+func (client *Client) SwitchCloudBoxHaState(request *SwitchCloudBoxHaStateRequest) (response *SwitchCloudBoxHaStateResponse, err error) {
+	response = CreateSwitchCloudBoxHaStateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SwitchCloudBoxHaStateWithChan invokes the smartag.SwitchCloudBoxHaState API asynchronously
+// api document: https://help.aliyun.com/api/smartag/switchcloudboxhastate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SwitchCloudBoxHaStateWithChan(request *SwitchCloudBoxHaStateRequest) (<-chan *SwitchCloudBoxHaStateResponse, <-chan error) {
+	responseChan := make(chan *SwitchCloudBoxHaStateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SwitchCloudBoxHaState(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SwitchCloudBoxHaStateWithCallback invokes the smartag.SwitchCloudBoxHaState API asynchronously
+// api document: https://help.aliyun.com/api/smartag/switchcloudboxhastate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SwitchCloudBoxHaStateWithCallback(request *SwitchCloudBoxHaStateRequest, callback func(response *SwitchCloudBoxHaStateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SwitchCloudBoxHaStateResponse
+		var err error
+		defer close(result)
+		response, err = client.SwitchCloudBoxHaState(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SwitchCloudBoxHaStateRequest is the request struct for api SwitchCloudBoxHaState
+type SwitchCloudBoxHaStateRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// SwitchCloudBoxHaStateResponse is the response struct for api SwitchCloudBoxHaState
+type SwitchCloudBoxHaStateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSwitchCloudBoxHaStateRequest creates a request to invoke SwitchCloudBoxHaState API
+func CreateSwitchCloudBoxHaStateRequest() (request *SwitchCloudBoxHaStateRequest) {
+	request = &SwitchCloudBoxHaStateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "SwitchCloudBoxHaState", "smartag", "openAPI")
+	return
+}
+
+// CreateSwitchCloudBoxHaStateResponse creates a response to parse from SwitchCloudBoxHaState response
+func CreateSwitchCloudBoxHaStateResponse() (response *SwitchCloudBoxHaStateResponse) {
+	response = &SwitchCloudBoxHaStateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/unbind_smart_access_gateway.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// UnbindSmartAccessGateway invokes the smartag.UnbindSmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/unbindsmartaccessgateway.html
+func (client *Client) UnbindSmartAccessGateway(request *UnbindSmartAccessGatewayRequest) (response *UnbindSmartAccessGatewayResponse, err error) {
+	response = CreateUnbindSmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UnbindSmartAccessGatewayWithChan invokes the smartag.UnbindSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/unbindsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnbindSmartAccessGatewayWithChan(request *UnbindSmartAccessGatewayRequest) (<-chan *UnbindSmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *UnbindSmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UnbindSmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UnbindSmartAccessGatewayWithCallback invokes the smartag.UnbindSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/unbindsmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnbindSmartAccessGatewayWithCallback(request *UnbindSmartAccessGatewayRequest, callback func(response *UnbindSmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UnbindSmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.UnbindSmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UnbindSmartAccessGatewayRequest is the request struct for api UnbindSmartAccessGateway
+type UnbindSmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	CcnId                string           `position:"Query" name:"CcnId"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// UnbindSmartAccessGatewayResponse is the response struct for api UnbindSmartAccessGateway
+type UnbindSmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUnbindSmartAccessGatewayRequest creates a request to invoke UnbindSmartAccessGateway API
+func CreateUnbindSmartAccessGatewayRequest() (request *UnbindSmartAccessGatewayRequest) {
+	request = &UnbindSmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "UnbindSmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateUnbindSmartAccessGatewayResponse creates a response to parse from UnbindSmartAccessGateway response
+func CreateUnbindSmartAccessGatewayResponse() (response *UnbindSmartAccessGatewayResponse) {
+	response = &UnbindSmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/smartag/unlock_smart_access_gateway.go

@@ -0,0 +1,107 @@
+package smartag
+
+//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"
+)
+
+// UnlockSmartAccessGateway invokes the smartag.UnlockSmartAccessGateway API synchronously
+// api document: https://help.aliyun.com/api/smartag/unlocksmartaccessgateway.html
+func (client *Client) UnlockSmartAccessGateway(request *UnlockSmartAccessGatewayRequest) (response *UnlockSmartAccessGatewayResponse, err error) {
+	response = CreateUnlockSmartAccessGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UnlockSmartAccessGatewayWithChan invokes the smartag.UnlockSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/unlocksmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnlockSmartAccessGatewayWithChan(request *UnlockSmartAccessGatewayRequest) (<-chan *UnlockSmartAccessGatewayResponse, <-chan error) {
+	responseChan := make(chan *UnlockSmartAccessGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UnlockSmartAccessGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UnlockSmartAccessGatewayWithCallback invokes the smartag.UnlockSmartAccessGateway API asynchronously
+// api document: https://help.aliyun.com/api/smartag/unlocksmartaccessgateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnlockSmartAccessGatewayWithCallback(request *UnlockSmartAccessGatewayRequest, callback func(response *UnlockSmartAccessGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UnlockSmartAccessGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.UnlockSmartAccessGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UnlockSmartAccessGatewayRequest is the request struct for api UnlockSmartAccessGateway
+type UnlockSmartAccessGatewayRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// UnlockSmartAccessGatewayResponse is the response struct for api UnlockSmartAccessGateway
+type UnlockSmartAccessGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUnlockSmartAccessGatewayRequest creates a request to invoke UnlockSmartAccessGateway API
+func CreateUnlockSmartAccessGatewayRequest() (request *UnlockSmartAccessGatewayRequest) {
+	request = &UnlockSmartAccessGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "UnlockSmartAccessGateway", "smartag", "openAPI")
+	return
+}
+
+// CreateUnlockSmartAccessGatewayResponse creates a response to parse from UnlockSmartAccessGateway response
+func CreateUnlockSmartAccessGatewayResponse() (response *UnlockSmartAccessGatewayResponse) {
+	response = &UnlockSmartAccessGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/smartag/update_smart_access_gateway_version.go

@@ -0,0 +1,108 @@
+package smartag
+
+//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"
+)
+
+// UpdateSmartAccessGatewayVersion invokes the smartag.UpdateSmartAccessGatewayVersion API synchronously
+// api document: https://help.aliyun.com/api/smartag/updatesmartaccessgatewayversion.html
+func (client *Client) UpdateSmartAccessGatewayVersion(request *UpdateSmartAccessGatewayVersionRequest) (response *UpdateSmartAccessGatewayVersionResponse, err error) {
+	response = CreateUpdateSmartAccessGatewayVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateSmartAccessGatewayVersionWithChan invokes the smartag.UpdateSmartAccessGatewayVersion API asynchronously
+// api document: https://help.aliyun.com/api/smartag/updatesmartaccessgatewayversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateSmartAccessGatewayVersionWithChan(request *UpdateSmartAccessGatewayVersionRequest) (<-chan *UpdateSmartAccessGatewayVersionResponse, <-chan error) {
+	responseChan := make(chan *UpdateSmartAccessGatewayVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateSmartAccessGatewayVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateSmartAccessGatewayVersionWithCallback invokes the smartag.UpdateSmartAccessGatewayVersion API asynchronously
+// api document: https://help.aliyun.com/api/smartag/updatesmartaccessgatewayversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateSmartAccessGatewayVersionWithCallback(request *UpdateSmartAccessGatewayVersionRequest, callback func(response *UpdateSmartAccessGatewayVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateSmartAccessGatewayVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateSmartAccessGatewayVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateSmartAccessGatewayVersionRequest is the request struct for api UpdateSmartAccessGatewayVersion
+type UpdateSmartAccessGatewayVersionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	SmartAGId            string           `position:"Query" name:"SmartAGId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	VersionCode          string           `position:"Query" name:"VersionCode"`
+}
+
+// UpdateSmartAccessGatewayVersionResponse is the response struct for api UpdateSmartAccessGatewayVersion
+type UpdateSmartAccessGatewayVersionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateSmartAccessGatewayVersionRequest creates a request to invoke UpdateSmartAccessGatewayVersion API
+func CreateUpdateSmartAccessGatewayVersionRequest() (request *UpdateSmartAccessGatewayVersionRequest) {
+	request = &UpdateSmartAccessGatewayVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Smartag", "2018-03-13", "UpdateSmartAccessGatewayVersion", "smartag", "openAPI")
+	return
+}
+
+// CreateUpdateSmartAccessGatewayVersionResponse creates a response to parse from UpdateSmartAccessGatewayVersion response
+func CreateUpdateSmartAccessGatewayVersionResponse() (response *UpdateSmartAccessGatewayVersionResponse) {
+	response = &UpdateSmartAccessGatewayVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}