瀏覽代碼

CLOUDWF SDK Auto Released By shenshi,Version:1.53.62

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 6 年之前
父節點
當前提交
c09e31c0d4
共有 100 個文件被更改,包括 10689 次插入0 次删除
  1. 3 0
      ChangeLog.txt
  2. 110 0
      services/cloudwf/add_apgroup_config.go
  3. 110 0
      services/cloudwf/aliyun_register_ap_asset.go
  4. 109 0
      services/cloudwf/apgroup_batch_add_ap.go
  5. 108 0
      services/cloudwf/apgroup_batch_delete_ap.go
  6. 108 0
      services/cloudwf/area_create.go
  7. 107 0
      services/cloudwf/area_delete.go
  8. 107 0
      services/cloudwf/area_info.go
  9. 108 0
      services/cloudwf/area_show_list.go
  10. 109 0
      services/cloudwf/area_update.go
  11. 108 0
      services/cloudwf/batch_change_group_ap_name.go
  12. 108 0
      services/cloudwf/batch_register_ap_asset.go
  13. 108 0
      services/cloudwf/batch_save_ap_position.go
  14. 117 0
      services/cloudwf/business_create.go
  15. 106 0
      services/cloudwf/business_info.go
  16. 107 0
      services/cloudwf/business_show_list.go
  17. 112 0
      services/cloudwf/business_update.go
  18. 107 0
      services/cloudwf/cease_instance.go
  19. 107 0
      services/cloudwf/check_root_permission.go
  20. 107 0
      services/cloudwf/check_umeng_data_analysis_permission.go
  21. 81 0
      services/cloudwf/client.go
  22. 110 0
      services/cloudwf/config_auto_renew.go
  23. 108 0
      services/cloudwf/create_renew_order.go
  24. 112 0
      services/cloudwf/create_sub_account_permission.go
  25. 109 0
      services/cloudwf/del_ap_position.go
  26. 107 0
      services/cloudwf/del_page_config_template.go
  27. 107 0
      services/cloudwf/del_portal_temp.go
  28. 107 0
      services/cloudwf/del_sub_account_permission.go
  29. 107 0
      services/cloudwf/del_umeng_page_permission4_root.go
  30. 109 0
      services/cloudwf/delete_ap_radio_ssid_config.go
  31. 108 0
      services/cloudwf/delete_apgroup_config.go
  32. 109 0
      services/cloudwf/delete_apgroup_ssid_config.go
  33. 108 0
      services/cloudwf/delete_position_map.go
  34. 107 0
      services/cloudwf/device_batch_create.go
  35. 110 0
      services/cloudwf/device_create.go
  36. 107 0
      services/cloudwf/device_delete.go
  37. 110 0
      services/cloudwf/device_show_list.go
  38. 108 0
      services/cloudwf/device_update.go
  39. 108 0
      services/cloudwf/excel_to_json.go
  40. 108 0
      services/cloudwf/find_ap.go
  41. 106 0
      services/cloudwf/frequency_analyse.go
  42. 108 0
      services/cloudwf/get_account_config.go
  43. 108 0
      services/cloudwf/get_add_aps_progress.go
  44. 109 0
      services/cloudwf/get_all_active_shop_by_group.go
  45. 107 0
      services/cloudwf/get_all_ap_model.go
  46. 108 0
      services/cloudwf/get_ap_detailed_config.go
  47. 108 0
      services/cloudwf/get_ap_detailed_status.go
  48. 109 0
      services/cloudwf/get_ap_portal_bind.go
  49. 110 0
      services/cloudwf/get_ap_run_history_time_ser.go
  50. 108 0
      services/cloudwf/get_ap_sta_misc_agg.go
  51. 108 0
      services/cloudwf/get_ap_top.go
  52. 108 0
      services/cloudwf/get_apgroup_config_progress.go
  53. 108 0
      services/cloudwf/get_apgroup_detailed_config.go
  54. 108 0
      services/cloudwf/get_apgroup_portal_config_progress.go
  55. 108 0
      services/cloudwf/get_apgroup_scan_config_save_progress.go
  56. 108 0
      services/cloudwf/get_apgroup_ssid_config_progress.go
  57. 107 0
      services/cloudwf/get_batch_save_ap_asset_progress.go
  58. 109 0
      services/cloudwf/get_bid.go
  59. 108 0
      services/cloudwf/get_bids4_uid4_root.go
  60. 107 0
      services/cloudwf/get_bind_ap4_umeng.go
  61. 113 0
      services/cloudwf/get_crowd_list.go
  62. 108 0
      services/cloudwf/get_daily_statistic.go
  63. 108 0
      services/cloudwf/get_device_info_by_mac.go
  64. 107 0
      services/cloudwf/get_group_ap_change_name_template.go
  65. 108 0
      services/cloudwf/get_group_ap_radio_config_progress.go
  66. 107 0
      services/cloudwf/get_group_ap_radio_config_template.go
  67. 108 0
      services/cloudwf/get_group_ap_radio_onoff_progress.go
  68. 108 0
      services/cloudwf/get_group_ap_repair_progress.go
  69. 108 0
      services/cloudwf/get_instance_by_shop.go
  70. 108 0
      services/cloudwf/get_latest_ap_statistic.go
  71. 108 0
      services/cloudwf/get_latest_sta_statistic.go
  72. 108 0
      services/cloudwf/get_map_url.go
  73. 113 0
      services/cloudwf/get_online_ap_time_ser.go
  74. 113 0
      services/cloudwf/get_online_sta_time_ser.go
  75. 108 0
      services/cloudwf/get_oss_server_sign.go
  76. 108 0
      services/cloudwf/get_page_config_template.go
  77. 107 0
      services/cloudwf/get_page_properties.go
  78. 109 0
      services/cloudwf/get_portal_temp_detail.go
  79. 108 0
      services/cloudwf/get_probe_data_subscriber_config.go
  80. 108 0
      services/cloudwf/get_radio_run_history_time_ser.go
  81. 108 0
      services/cloudwf/get_scan_mode.go
  82. 113 0
      services/cloudwf/get_scan_probe_time_ser.go
  83. 107 0
      services/cloudwf/get_send_command_by_mac_progress.go
  84. 109 0
      services/cloudwf/get_sids_and_gids4_bid.go
  85. 108 0
      services/cloudwf/get_sta_detailed_status.go
  86. 108 0
      services/cloudwf/get_sta_run_history_time_ser.go
  87. 108 0
      services/cloudwf/get_sta_top.go
  88. 108 0
      services/cloudwf/get_sub_account_permission.go
  89. 107 0
      services/cloudwf/get_sub_account_status.go
  90. 108 0
      services/cloudwf/get_umeng_page_permission4_root.go
  91. 107 0
      services/cloudwf/get_upgrade_ap_group_progress.go
  92. 107 0
      services/cloudwf/get_upgrade_ap_progress.go
  93. 108 0
      services/cloudwf/get_upgrade_img.go
  94. 108 0
      services/cloudwf/get_user_umeng_page_permission.go
  95. 106 0
      services/cloudwf/group_details.go
  96. 106 0
      services/cloudwf/group_intime.go
  97. 106 0
      services/cloudwf/group_overview.go
  98. 106 0
      services/cloudwf/group_trend.go
  99. 106 0
      services/cloudwf/headquarters_overview.go
  100. 106 0
      services/cloudwf/headquarters_ranking.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-03-19 Version: 1.53.62
+1, Update Dependency
+
 2019-03-19 Version: 1.53.61
 1, This is an example of release-log.
 2, Please strictly follow this format to edit in English.

+ 110 - 0
services/cloudwf/add_apgroup_config.go

@@ -0,0 +1,110 @@
+package cloudwf
+
+//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"
+)
+
+// AddApgroupConfig invokes the cloudwf.AddApgroupConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/addapgroupconfig.html
+func (client *Client) AddApgroupConfig(request *AddApgroupConfigRequest) (response *AddApgroupConfigResponse, err error) {
+	response = CreateAddApgroupConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddApgroupConfigWithChan invokes the cloudwf.AddApgroupConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/addapgroupconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddApgroupConfigWithChan(request *AddApgroupConfigRequest) (<-chan *AddApgroupConfigResponse, <-chan error) {
+	responseChan := make(chan *AddApgroupConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddApgroupConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddApgroupConfigWithCallback invokes the cloudwf.AddApgroupConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/addapgroupconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddApgroupConfigWithCallback(request *AddApgroupConfigRequest, callback func(response *AddApgroupConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddApgroupConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.AddApgroupConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddApgroupConfigRequest is the request struct for api AddApgroupConfig
+type AddApgroupConfigRequest struct {
+	*requests.RpcRequest
+	ParentApgroupId requests.Integer `position:"Query" name:"ParentApgroupId"`
+	Name            string           `position:"Query" name:"Name"`
+	Description     string           `position:"Query" name:"Description"`
+}
+
+// AddApgroupConfigResponse is the response struct for api AddApgroupConfig
+type AddApgroupConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAddApgroupConfigRequest creates a request to invoke AddApgroupConfig API
+func CreateAddApgroupConfigRequest() (request *AddApgroupConfigRequest) {
+	request = &AddApgroupConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AddApgroupConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAddApgroupConfigResponse creates a response to parse from AddApgroupConfig response
+func CreateAddApgroupConfigResponse() (response *AddApgroupConfigResponse) {
+	response = &AddApgroupConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cloudwf/aliyun_register_ap_asset.go

@@ -0,0 +1,110 @@
+package cloudwf
+
+//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"
+)
+
+// AliyunRegisterApAsset invokes the cloudwf.AliyunRegisterApAsset API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/aliyunregisterapasset.html
+func (client *Client) AliyunRegisterApAsset(request *AliyunRegisterApAssetRequest) (response *AliyunRegisterApAssetResponse, err error) {
+	response = CreateAliyunRegisterApAssetResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AliyunRegisterApAssetWithChan invokes the cloudwf.AliyunRegisterApAsset API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/aliyunregisterapasset.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AliyunRegisterApAssetWithChan(request *AliyunRegisterApAssetRequest) (<-chan *AliyunRegisterApAssetResponse, <-chan error) {
+	responseChan := make(chan *AliyunRegisterApAssetResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AliyunRegisterApAsset(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AliyunRegisterApAssetWithCallback invokes the cloudwf.AliyunRegisterApAsset API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/aliyunregisterapasset.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AliyunRegisterApAssetWithCallback(request *AliyunRegisterApAssetRequest, callback func(response *AliyunRegisterApAssetResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AliyunRegisterApAssetResponse
+		var err error
+		defer close(result)
+		response, err = client.AliyunRegisterApAsset(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AliyunRegisterApAssetRequest is the request struct for api AliyunRegisterApAsset
+type AliyunRegisterApAssetRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+	Mac       string           `position:"Query" name:"Mac"`
+	SerialNo  string           `position:"Query" name:"SerialNo"`
+}
+
+// AliyunRegisterApAssetResponse is the response struct for api AliyunRegisterApAsset
+type AliyunRegisterApAssetResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAliyunRegisterApAssetRequest creates a request to invoke AliyunRegisterApAsset API
+func CreateAliyunRegisterApAssetRequest() (request *AliyunRegisterApAssetRequest) {
+	request = &AliyunRegisterApAssetRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AliyunRegisterApAsset", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAliyunRegisterApAssetResponse creates a response to parse from AliyunRegisterApAsset response
+func CreateAliyunRegisterApAssetResponse() (response *AliyunRegisterApAssetResponse) {
+	response = &AliyunRegisterApAssetResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/apgroup_batch_add_ap.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// ApgroupBatchAddAp invokes the cloudwf.ApgroupBatchAddAp API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/apgroupbatchaddap.html
+func (client *Client) ApgroupBatchAddAp(request *ApgroupBatchAddApRequest) (response *ApgroupBatchAddApResponse, err error) {
+	response = CreateApgroupBatchAddApResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ApgroupBatchAddApWithChan invokes the cloudwf.ApgroupBatchAddAp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/apgroupbatchaddap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApgroupBatchAddApWithChan(request *ApgroupBatchAddApRequest) (<-chan *ApgroupBatchAddApResponse, <-chan error) {
+	responseChan := make(chan *ApgroupBatchAddApResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ApgroupBatchAddAp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ApgroupBatchAddApWithCallback invokes the cloudwf.ApgroupBatchAddAp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/apgroupbatchaddap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApgroupBatchAddApWithCallback(request *ApgroupBatchAddApRequest, callback func(response *ApgroupBatchAddApResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ApgroupBatchAddApResponse
+		var err error
+		defer close(result)
+		response, err = client.ApgroupBatchAddAp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ApgroupBatchAddApRequest is the request struct for api ApgroupBatchAddAp
+type ApgroupBatchAddApRequest struct {
+	*requests.RpcRequest
+	ApAssetIds string           `position:"Query" name:"ApAssetIds"`
+	ApgroupId  requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// ApgroupBatchAddApResponse is the response struct for api ApgroupBatchAddAp
+type ApgroupBatchAddApResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateApgroupBatchAddApRequest creates a request to invoke ApgroupBatchAddAp API
+func CreateApgroupBatchAddApRequest() (request *ApgroupBatchAddApRequest) {
+	request = &ApgroupBatchAddApRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "ApgroupBatchAddAp", "cloudwf", "openAPI")
+	return
+}
+
+// CreateApgroupBatchAddApResponse creates a response to parse from ApgroupBatchAddAp response
+func CreateApgroupBatchAddApResponse() (response *ApgroupBatchAddApResponse) {
+	response = &ApgroupBatchAddApResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/apgroup_batch_delete_ap.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// ApgroupBatchDeleteAp invokes the cloudwf.ApgroupBatchDeleteAp API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/apgroupbatchdeleteap.html
+func (client *Client) ApgroupBatchDeleteAp(request *ApgroupBatchDeleteApRequest) (response *ApgroupBatchDeleteApResponse, err error) {
+	response = CreateApgroupBatchDeleteApResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ApgroupBatchDeleteApWithChan invokes the cloudwf.ApgroupBatchDeleteAp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/apgroupbatchdeleteap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApgroupBatchDeleteApWithChan(request *ApgroupBatchDeleteApRequest) (<-chan *ApgroupBatchDeleteApResponse, <-chan error) {
+	responseChan := make(chan *ApgroupBatchDeleteApResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ApgroupBatchDeleteAp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ApgroupBatchDeleteApWithCallback invokes the cloudwf.ApgroupBatchDeleteAp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/apgroupbatchdeleteap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApgroupBatchDeleteApWithCallback(request *ApgroupBatchDeleteApRequest, callback func(response *ApgroupBatchDeleteApResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ApgroupBatchDeleteApResponse
+		var err error
+		defer close(result)
+		response, err = client.ApgroupBatchDeleteAp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ApgroupBatchDeleteApRequest is the request struct for api ApgroupBatchDeleteAp
+type ApgroupBatchDeleteApRequest struct {
+	*requests.RpcRequest
+	ApAssetIds string `position:"Query" name:"ApAssetIds"`
+}
+
+// ApgroupBatchDeleteApResponse is the response struct for api ApgroupBatchDeleteAp
+type ApgroupBatchDeleteApResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateApgroupBatchDeleteApRequest creates a request to invoke ApgroupBatchDeleteAp API
+func CreateApgroupBatchDeleteApRequest() (request *ApgroupBatchDeleteApRequest) {
+	request = &ApgroupBatchDeleteApRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "ApgroupBatchDeleteAp", "cloudwf", "openAPI")
+	return
+}
+
+// CreateApgroupBatchDeleteApResponse creates a response to parse from ApgroupBatchDeleteAp response
+func CreateApgroupBatchDeleteApResponse() (response *ApgroupBatchDeleteApResponse) {
+	response = &ApgroupBatchDeleteApResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/area_create.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// AreaCreate invokes the cloudwf.AreaCreate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/areacreate.html
+func (client *Client) AreaCreate(request *AreaCreateRequest) (response *AreaCreateResponse, err error) {
+	response = CreateAreaCreateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AreaCreateWithChan invokes the cloudwf.AreaCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areacreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaCreateWithChan(request *AreaCreateRequest) (<-chan *AreaCreateResponse, <-chan error) {
+	responseChan := make(chan *AreaCreateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AreaCreate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AreaCreateWithCallback invokes the cloudwf.AreaCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areacreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaCreateWithCallback(request *AreaCreateRequest, callback func(response *AreaCreateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AreaCreateResponse
+		var err error
+		defer close(result)
+		response, err = client.AreaCreate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AreaCreateRequest is the request struct for api AreaCreate
+type AreaCreateRequest struct {
+	*requests.RpcRequest
+	Name string           `position:"Query" name:"Name"`
+	Dids string           `position:"Query" name:"Dids"`
+	Sid  requests.Integer `position:"Query" name:"Sid"`
+}
+
+// AreaCreateResponse is the response struct for api AreaCreate
+type AreaCreateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAreaCreateRequest creates a request to invoke AreaCreate API
+func CreateAreaCreateRequest() (request *AreaCreateRequest) {
+	request = &AreaCreateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AreaCreate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAreaCreateResponse creates a response to parse from AreaCreate response
+func CreateAreaCreateResponse() (response *AreaCreateResponse) {
+	response = &AreaCreateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/area_delete.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// AreaDelete invokes the cloudwf.AreaDelete API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/areadelete.html
+func (client *Client) AreaDelete(request *AreaDeleteRequest) (response *AreaDeleteResponse, err error) {
+	response = CreateAreaDeleteResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AreaDeleteWithChan invokes the cloudwf.AreaDelete API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areadelete.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaDeleteWithChan(request *AreaDeleteRequest) (<-chan *AreaDeleteResponse, <-chan error) {
+	responseChan := make(chan *AreaDeleteResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AreaDelete(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AreaDeleteWithCallback invokes the cloudwf.AreaDelete API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areadelete.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaDeleteWithCallback(request *AreaDeleteRequest, callback func(response *AreaDeleteResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AreaDeleteResponse
+		var err error
+		defer close(result)
+		response, err = client.AreaDelete(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AreaDeleteRequest is the request struct for api AreaDelete
+type AreaDeleteRequest struct {
+	*requests.RpcRequest
+	Aid requests.Integer `position:"Query" name:"Aid"`
+	Sid requests.Integer `position:"Query" name:"Sid"`
+}
+
+// AreaDeleteResponse is the response struct for api AreaDelete
+type AreaDeleteResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAreaDeleteRequest creates a request to invoke AreaDelete API
+func CreateAreaDeleteRequest() (request *AreaDeleteRequest) {
+	request = &AreaDeleteRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AreaDelete", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAreaDeleteResponse creates a response to parse from AreaDelete response
+func CreateAreaDeleteResponse() (response *AreaDeleteResponse) {
+	response = &AreaDeleteResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/area_info.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// AreaInfo invokes the cloudwf.AreaInfo API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/areainfo.html
+func (client *Client) AreaInfo(request *AreaInfoRequest) (response *AreaInfoResponse, err error) {
+	response = CreateAreaInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AreaInfoWithChan invokes the cloudwf.AreaInfo API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areainfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaInfoWithChan(request *AreaInfoRequest) (<-chan *AreaInfoResponse, <-chan error) {
+	responseChan := make(chan *AreaInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AreaInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AreaInfoWithCallback invokes the cloudwf.AreaInfo API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areainfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaInfoWithCallback(request *AreaInfoRequest, callback func(response *AreaInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AreaInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.AreaInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AreaInfoRequest is the request struct for api AreaInfo
+type AreaInfoRequest struct {
+	*requests.RpcRequest
+	Aid requests.Integer `position:"Query" name:"Aid"`
+	Sid requests.Integer `position:"Query" name:"Sid"`
+}
+
+// AreaInfoResponse is the response struct for api AreaInfo
+type AreaInfoResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAreaInfoRequest creates a request to invoke AreaInfo API
+func CreateAreaInfoRequest() (request *AreaInfoRequest) {
+	request = &AreaInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AreaInfo", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAreaInfoResponse creates a response to parse from AreaInfo response
+func CreateAreaInfoResponse() (response *AreaInfoResponse) {
+	response = &AreaInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/area_show_list.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// AreaShowList invokes the cloudwf.AreaShowList API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/areashowlist.html
+func (client *Client) AreaShowList(request *AreaShowListRequest) (response *AreaShowListResponse, err error) {
+	response = CreateAreaShowListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AreaShowListWithChan invokes the cloudwf.AreaShowList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areashowlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaShowListWithChan(request *AreaShowListRequest) (<-chan *AreaShowListResponse, <-chan error) {
+	responseChan := make(chan *AreaShowListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AreaShowList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AreaShowListWithCallback invokes the cloudwf.AreaShowList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areashowlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaShowListWithCallback(request *AreaShowListRequest, callback func(response *AreaShowListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AreaShowListResponse
+		var err error
+		defer close(result)
+		response, err = client.AreaShowList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AreaShowListRequest is the request struct for api AreaShowList
+type AreaShowListRequest struct {
+	*requests.RpcRequest
+	Page requests.Integer `position:"Query" name:"Page"`
+	Per  requests.Integer `position:"Query" name:"Per"`
+	Sid  requests.Integer `position:"Query" name:"Sid"`
+}
+
+// AreaShowListResponse is the response struct for api AreaShowList
+type AreaShowListResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAreaShowListRequest creates a request to invoke AreaShowList API
+func CreateAreaShowListRequest() (request *AreaShowListRequest) {
+	request = &AreaShowListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AreaShowList", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAreaShowListResponse creates a response to parse from AreaShowList response
+func CreateAreaShowListResponse() (response *AreaShowListResponse) {
+	response = &AreaShowListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/area_update.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// AreaUpdate invokes the cloudwf.AreaUpdate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/areaupdate.html
+func (client *Client) AreaUpdate(request *AreaUpdateRequest) (response *AreaUpdateResponse, err error) {
+	response = CreateAreaUpdateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AreaUpdateWithChan invokes the cloudwf.AreaUpdate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areaupdate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaUpdateWithChan(request *AreaUpdateRequest) (<-chan *AreaUpdateResponse, <-chan error) {
+	responseChan := make(chan *AreaUpdateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AreaUpdate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AreaUpdateWithCallback invokes the cloudwf.AreaUpdate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/areaupdate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AreaUpdateWithCallback(request *AreaUpdateRequest, callback func(response *AreaUpdateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AreaUpdateResponse
+		var err error
+		defer close(result)
+		response, err = client.AreaUpdate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AreaUpdateRequest is the request struct for api AreaUpdate
+type AreaUpdateRequest struct {
+	*requests.RpcRequest
+	Name string           `position:"Query" name:"Name"`
+	Dids string           `position:"Query" name:"Dids"`
+	Aid  requests.Integer `position:"Query" name:"Aid"`
+	Sid  requests.Integer `position:"Query" name:"Sid"`
+}
+
+// AreaUpdateResponse is the response struct for api AreaUpdate
+type AreaUpdateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateAreaUpdateRequest creates a request to invoke AreaUpdate API
+func CreateAreaUpdateRequest() (request *AreaUpdateRequest) {
+	request = &AreaUpdateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "AreaUpdate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateAreaUpdateResponse creates a response to parse from AreaUpdate response
+func CreateAreaUpdateResponse() (response *AreaUpdateResponse) {
+	response = &AreaUpdateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/batch_change_group_ap_name.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// BatchChangeGroupApName invokes the cloudwf.BatchChangeGroupApName API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchchangegroupapname.html
+func (client *Client) BatchChangeGroupApName(request *BatchChangeGroupApNameRequest) (response *BatchChangeGroupApNameResponse, err error) {
+	response = CreateBatchChangeGroupApNameResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchChangeGroupApNameWithChan invokes the cloudwf.BatchChangeGroupApName API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchchangegroupapname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchChangeGroupApNameWithChan(request *BatchChangeGroupApNameRequest) (<-chan *BatchChangeGroupApNameResponse, <-chan error) {
+	responseChan := make(chan *BatchChangeGroupApNameResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchChangeGroupApName(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchChangeGroupApNameWithCallback invokes the cloudwf.BatchChangeGroupApName API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchchangegroupapname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchChangeGroupApNameWithCallback(request *BatchChangeGroupApNameRequest, callback func(response *BatchChangeGroupApNameResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchChangeGroupApNameResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchChangeGroupApName(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchChangeGroupApNameRequest is the request struct for api BatchChangeGroupApName
+type BatchChangeGroupApNameRequest struct {
+	*requests.RpcRequest
+	JsonData string `position:"Query" name:"JsonData"`
+}
+
+// BatchChangeGroupApNameResponse is the response struct for api BatchChangeGroupApName
+type BatchChangeGroupApNameResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBatchChangeGroupApNameRequest creates a request to invoke BatchChangeGroupApName API
+func CreateBatchChangeGroupApNameRequest() (request *BatchChangeGroupApNameRequest) {
+	request = &BatchChangeGroupApNameRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BatchChangeGroupApName", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBatchChangeGroupApNameResponse creates a response to parse from BatchChangeGroupApName response
+func CreateBatchChangeGroupApNameResponse() (response *BatchChangeGroupApNameResponse) {
+	response = &BatchChangeGroupApNameResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/batch_register_ap_asset.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// BatchRegisterApAsset invokes the cloudwf.BatchRegisterApAsset API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchregisterapasset.html
+func (client *Client) BatchRegisterApAsset(request *BatchRegisterApAssetRequest) (response *BatchRegisterApAssetResponse, err error) {
+	response = CreateBatchRegisterApAssetResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchRegisterApAssetWithChan invokes the cloudwf.BatchRegisterApAsset API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchregisterapasset.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchRegisterApAssetWithChan(request *BatchRegisterApAssetRequest) (<-chan *BatchRegisterApAssetResponse, <-chan error) {
+	responseChan := make(chan *BatchRegisterApAssetResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchRegisterApAsset(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchRegisterApAssetWithCallback invokes the cloudwf.BatchRegisterApAsset API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchregisterapasset.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchRegisterApAssetWithCallback(request *BatchRegisterApAssetRequest, callback func(response *BatchRegisterApAssetResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchRegisterApAssetResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchRegisterApAsset(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchRegisterApAssetRequest is the request struct for api BatchRegisterApAsset
+type BatchRegisterApAssetRequest struct {
+	*requests.RpcRequest
+	JsonData string `position:"Query" name:"JsonData"`
+}
+
+// BatchRegisterApAssetResponse is the response struct for api BatchRegisterApAsset
+type BatchRegisterApAssetResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBatchRegisterApAssetRequest creates a request to invoke BatchRegisterApAsset API
+func CreateBatchRegisterApAssetRequest() (request *BatchRegisterApAssetRequest) {
+	request = &BatchRegisterApAssetRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BatchRegisterApAsset", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBatchRegisterApAssetResponse creates a response to parse from BatchRegisterApAsset response
+func CreateBatchRegisterApAssetResponse() (response *BatchRegisterApAssetResponse) {
+	response = &BatchRegisterApAssetResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/batch_save_ap_position.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// BatchSaveApPosition invokes the cloudwf.BatchSaveApPosition API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchsaveapposition.html
+func (client *Client) BatchSaveApPosition(request *BatchSaveApPositionRequest) (response *BatchSaveApPositionResponse, err error) {
+	response = CreateBatchSaveApPositionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchSaveApPositionWithChan invokes the cloudwf.BatchSaveApPosition API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchsaveapposition.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSaveApPositionWithChan(request *BatchSaveApPositionRequest) (<-chan *BatchSaveApPositionResponse, <-chan error) {
+	responseChan := make(chan *BatchSaveApPositionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchSaveApPosition(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchSaveApPositionWithCallback invokes the cloudwf.BatchSaveApPosition API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/batchsaveapposition.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSaveApPositionWithCallback(request *BatchSaveApPositionRequest, callback func(response *BatchSaveApPositionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchSaveApPositionResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchSaveApPosition(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchSaveApPositionRequest is the request struct for api BatchSaveApPosition
+type BatchSaveApPositionRequest struct {
+	*requests.RpcRequest
+	JsonData string `position:"Query" name:"JsonData"`
+}
+
+// BatchSaveApPositionResponse is the response struct for api BatchSaveApPosition
+type BatchSaveApPositionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBatchSaveApPositionRequest creates a request to invoke BatchSaveApPosition API
+func CreateBatchSaveApPositionRequest() (request *BatchSaveApPositionRequest) {
+	request = &BatchSaveApPositionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BatchSaveApPosition", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBatchSaveApPositionResponse creates a response to parse from BatchSaveApPosition response
+func CreateBatchSaveApPositionResponse() (response *BatchSaveApPositionResponse) {
+	response = &BatchSaveApPositionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/cloudwf/business_create.go

@@ -0,0 +1,117 @@
+package cloudwf
+
+//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"
+)
+
+// BusinessCreate invokes the cloudwf.BusinessCreate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/businesscreate.html
+func (client *Client) BusinessCreate(request *BusinessCreateRequest) (response *BusinessCreateResponse, err error) {
+	response = CreateBusinessCreateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BusinessCreateWithChan invokes the cloudwf.BusinessCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businesscreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessCreateWithChan(request *BusinessCreateRequest) (<-chan *BusinessCreateResponse, <-chan error) {
+	responseChan := make(chan *BusinessCreateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BusinessCreate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BusinessCreateWithCallback invokes the cloudwf.BusinessCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businesscreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessCreateWithCallback(request *BusinessCreateRequest, callback func(response *BusinessCreateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BusinessCreateResponse
+		var err error
+		defer close(result)
+		response, err = client.BusinessCreate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BusinessCreateRequest is the request struct for api BusinessCreate
+type BusinessCreateRequest struct {
+	*requests.RpcRequest
+	BusinessCity     string           `position:"Query" name:"BusinessCity"`
+	Combo            string           `position:"Query" name:"Combo"`
+	WarnEmail        string           `position:"Query" name:"WarnEmail"`
+	BusinessManager  string           `position:"Query" name:"BusinessManager"`
+	BusinessType     requests.Integer `position:"Query" name:"BusinessType"`
+	Warn             requests.Integer `position:"Query" name:"Warn"`
+	BusinessName     string           `position:"Query" name:"BusinessName"`
+	BusinessTopType  requests.Integer `position:"Query" name:"BusinessTopType"`
+	BusinessAddress  string           `position:"Query" name:"BusinessAddress"`
+	BusinessTel      string           `position:"Query" name:"BusinessTel"`
+	BusinessProvince string           `position:"Query" name:"BusinessProvince"`
+	BusinessSubtype  requests.Integer `position:"Query" name:"BusinessSubtype"`
+}
+
+// BusinessCreateResponse is the response struct for api BusinessCreate
+type BusinessCreateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBusinessCreateRequest creates a request to invoke BusinessCreate API
+func CreateBusinessCreateRequest() (request *BusinessCreateRequest) {
+	request = &BusinessCreateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BusinessCreate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBusinessCreateResponse creates a response to parse from BusinessCreate response
+func CreateBusinessCreateResponse() (response *BusinessCreateResponse) {
+	response = &BusinessCreateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/business_info.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// BusinessInfo invokes the cloudwf.BusinessInfo API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessinfo.html
+func (client *Client) BusinessInfo(request *BusinessInfoRequest) (response *BusinessInfoResponse, err error) {
+	response = CreateBusinessInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BusinessInfoWithChan invokes the cloudwf.BusinessInfo API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessInfoWithChan(request *BusinessInfoRequest) (<-chan *BusinessInfoResponse, <-chan error) {
+	responseChan := make(chan *BusinessInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BusinessInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BusinessInfoWithCallback invokes the cloudwf.BusinessInfo API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessInfoWithCallback(request *BusinessInfoRequest, callback func(response *BusinessInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BusinessInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.BusinessInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BusinessInfoRequest is the request struct for api BusinessInfo
+type BusinessInfoRequest struct {
+	*requests.RpcRequest
+	Bid requests.Integer `position:"Query" name:"Bid"`
+}
+
+// BusinessInfoResponse is the response struct for api BusinessInfo
+type BusinessInfoResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBusinessInfoRequest creates a request to invoke BusinessInfo API
+func CreateBusinessInfoRequest() (request *BusinessInfoRequest) {
+	request = &BusinessInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BusinessInfo", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBusinessInfoResponse creates a response to parse from BusinessInfo response
+func CreateBusinessInfoResponse() (response *BusinessInfoResponse) {
+	response = &BusinessInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/business_show_list.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// BusinessShowList invokes the cloudwf.BusinessShowList API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessshowlist.html
+func (client *Client) BusinessShowList(request *BusinessShowListRequest) (response *BusinessShowListResponse, err error) {
+	response = CreateBusinessShowListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BusinessShowListWithChan invokes the cloudwf.BusinessShowList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessshowlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessShowListWithChan(request *BusinessShowListRequest) (<-chan *BusinessShowListResponse, <-chan error) {
+	responseChan := make(chan *BusinessShowListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BusinessShowList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BusinessShowListWithCallback invokes the cloudwf.BusinessShowList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessshowlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessShowListWithCallback(request *BusinessShowListRequest, callback func(response *BusinessShowListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BusinessShowListResponse
+		var err error
+		defer close(result)
+		response, err = client.BusinessShowList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BusinessShowListRequest is the request struct for api BusinessShowList
+type BusinessShowListRequest struct {
+	*requests.RpcRequest
+	Page requests.Integer `position:"Query" name:"Page"`
+	Per  requests.Integer `position:"Query" name:"Per"`
+}
+
+// BusinessShowListResponse is the response struct for api BusinessShowList
+type BusinessShowListResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBusinessShowListRequest creates a request to invoke BusinessShowList API
+func CreateBusinessShowListRequest() (request *BusinessShowListRequest) {
+	request = &BusinessShowListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BusinessShowList", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBusinessShowListResponse creates a response to parse from BusinessShowList response
+func CreateBusinessShowListResponse() (response *BusinessShowListResponse) {
+	response = &BusinessShowListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cloudwf/business_update.go

@@ -0,0 +1,112 @@
+package cloudwf
+
+//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"
+)
+
+// BusinessUpdate invokes the cloudwf.BusinessUpdate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessupdate.html
+func (client *Client) BusinessUpdate(request *BusinessUpdateRequest) (response *BusinessUpdateResponse, err error) {
+	response = CreateBusinessUpdateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BusinessUpdateWithChan invokes the cloudwf.BusinessUpdate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessupdate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessUpdateWithChan(request *BusinessUpdateRequest) (<-chan *BusinessUpdateResponse, <-chan error) {
+	responseChan := make(chan *BusinessUpdateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BusinessUpdate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BusinessUpdateWithCallback invokes the cloudwf.BusinessUpdate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/businessupdate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BusinessUpdateWithCallback(request *BusinessUpdateRequest, callback func(response *BusinessUpdateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BusinessUpdateResponse
+		var err error
+		defer close(result)
+		response, err = client.BusinessUpdate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BusinessUpdateRequest is the request struct for api BusinessUpdate
+type BusinessUpdateRequest struct {
+	*requests.RpcRequest
+	Warn             requests.Integer `position:"Query" name:"Warn"`
+	BusinessCity     string           `position:"Query" name:"BusinessCity"`
+	WarnEmail        string           `position:"Query" name:"WarnEmail"`
+	BusinessAddress  string           `position:"Query" name:"BusinessAddress"`
+	Bid              requests.Integer `position:"Query" name:"Bid"`
+	BusinessManager  string           `position:"Query" name:"BusinessManager"`
+	BusinessProvince string           `position:"Query" name:"BusinessProvince"`
+}
+
+// BusinessUpdateResponse is the response struct for api BusinessUpdate
+type BusinessUpdateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateBusinessUpdateRequest creates a request to invoke BusinessUpdate API
+func CreateBusinessUpdateRequest() (request *BusinessUpdateRequest) {
+	request = &BusinessUpdateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "BusinessUpdate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateBusinessUpdateResponse creates a response to parse from BusinessUpdate response
+func CreateBusinessUpdateResponse() (response *BusinessUpdateResponse) {
+	response = &BusinessUpdateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/cease_instance.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// CeaseInstance invokes the cloudwf.CeaseInstance API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/ceaseinstance.html
+func (client *Client) CeaseInstance(request *CeaseInstanceRequest) (response *CeaseInstanceResponse, err error) {
+	response = CreateCeaseInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CeaseInstanceWithChan invokes the cloudwf.CeaseInstance API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/ceaseinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CeaseInstanceWithChan(request *CeaseInstanceRequest) (<-chan *CeaseInstanceResponse, <-chan error) {
+	responseChan := make(chan *CeaseInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CeaseInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CeaseInstanceWithCallback invokes the cloudwf.CeaseInstance API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/ceaseinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CeaseInstanceWithCallback(request *CeaseInstanceRequest, callback func(response *CeaseInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CeaseInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CeaseInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CeaseInstanceRequest is the request struct for api CeaseInstance
+type CeaseInstanceRequest struct {
+	*requests.RpcRequest
+	TraceId string `position:"Query" name:"TraceId"`
+	SpMsg   string `position:"Query" name:"SpMsg"`
+}
+
+// CeaseInstanceResponse is the response struct for api CeaseInstance
+type CeaseInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"success" xml:"success"`
+	Message   string `json:"message" xml:"message"`
+	Result    string `json:"result" xml:"result"`
+}
+
+// CreateCeaseInstanceRequest creates a request to invoke CeaseInstance API
+func CreateCeaseInstanceRequest() (request *CeaseInstanceRequest) {
+	request = &CeaseInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "CeaseInstance", "cloudwf", "openAPI")
+	return
+}
+
+// CreateCeaseInstanceResponse creates a response to parse from CeaseInstance response
+func CreateCeaseInstanceResponse() (response *CeaseInstanceResponse) {
+	response = &CeaseInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/check_root_permission.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// CheckRootPermission invokes the cloudwf.CheckRootPermission API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/checkrootpermission.html
+func (client *Client) CheckRootPermission(request *CheckRootPermissionRequest) (response *CheckRootPermissionResponse, err error) {
+	response = CreateCheckRootPermissionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckRootPermissionWithChan invokes the cloudwf.CheckRootPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/checkrootpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRootPermissionWithChan(request *CheckRootPermissionRequest) (<-chan *CheckRootPermissionResponse, <-chan error) {
+	responseChan := make(chan *CheckRootPermissionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckRootPermission(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckRootPermissionWithCallback invokes the cloudwf.CheckRootPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/checkrootpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckRootPermissionWithCallback(request *CheckRootPermissionRequest, callback func(response *CheckRootPermissionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckRootPermissionResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckRootPermission(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckRootPermissionRequest is the request struct for api CheckRootPermission
+type CheckRootPermissionRequest struct {
+	*requests.RpcRequest
+}
+
+// CheckRootPermissionResponse is the response struct for api CheckRootPermission
+type CheckRootPermissionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateCheckRootPermissionRequest creates a request to invoke CheckRootPermission API
+func CreateCheckRootPermissionRequest() (request *CheckRootPermissionRequest) {
+	request = &CheckRootPermissionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "CheckRootPermission", "cloudwf", "openAPI")
+	return
+}
+
+// CreateCheckRootPermissionResponse creates a response to parse from CheckRootPermission response
+func CreateCheckRootPermissionResponse() (response *CheckRootPermissionResponse) {
+	response = &CheckRootPermissionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/check_umeng_data_analysis_permission.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// CheckUmengDataAnalysisPermission invokes the cloudwf.CheckUmengDataAnalysisPermission API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/checkumengdataanalysispermission.html
+func (client *Client) CheckUmengDataAnalysisPermission(request *CheckUmengDataAnalysisPermissionRequest) (response *CheckUmengDataAnalysisPermissionResponse, err error) {
+	response = CreateCheckUmengDataAnalysisPermissionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckUmengDataAnalysisPermissionWithChan invokes the cloudwf.CheckUmengDataAnalysisPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/checkumengdataanalysispermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckUmengDataAnalysisPermissionWithChan(request *CheckUmengDataAnalysisPermissionRequest) (<-chan *CheckUmengDataAnalysisPermissionResponse, <-chan error) {
+	responseChan := make(chan *CheckUmengDataAnalysisPermissionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckUmengDataAnalysisPermission(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckUmengDataAnalysisPermissionWithCallback invokes the cloudwf.CheckUmengDataAnalysisPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/checkumengdataanalysispermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckUmengDataAnalysisPermissionWithCallback(request *CheckUmengDataAnalysisPermissionRequest, callback func(response *CheckUmengDataAnalysisPermissionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckUmengDataAnalysisPermissionResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckUmengDataAnalysisPermission(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckUmengDataAnalysisPermissionRequest is the request struct for api CheckUmengDataAnalysisPermission
+type CheckUmengDataAnalysisPermissionRequest struct {
+	*requests.RpcRequest
+}
+
+// CheckUmengDataAnalysisPermissionResponse is the response struct for api CheckUmengDataAnalysisPermission
+type CheckUmengDataAnalysisPermissionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateCheckUmengDataAnalysisPermissionRequest creates a request to invoke CheckUmengDataAnalysisPermission API
+func CreateCheckUmengDataAnalysisPermissionRequest() (request *CheckUmengDataAnalysisPermissionRequest) {
+	request = &CheckUmengDataAnalysisPermissionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "CheckUmengDataAnalysisPermission", "cloudwf", "openAPI")
+	return
+}
+
+// CreateCheckUmengDataAnalysisPermissionResponse creates a response to parse from CheckUmengDataAnalysisPermission response
+func CreateCheckUmengDataAnalysisPermissionResponse() (response *CheckUmengDataAnalysisPermissionResponse) {
+	response = &CheckUmengDataAnalysisPermissionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/cloudwf/client.go

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

+ 110 - 0
services/cloudwf/config_auto_renew.go

@@ -0,0 +1,110 @@
+package cloudwf
+
+//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"
+)
+
+// ConfigAutoRenew invokes the cloudwf.ConfigAutoRenew API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/configautorenew.html
+func (client *Client) ConfigAutoRenew(request *ConfigAutoRenewRequest) (response *ConfigAutoRenewResponse, err error) {
+	response = CreateConfigAutoRenewResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ConfigAutoRenewWithChan invokes the cloudwf.ConfigAutoRenew API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/configautorenew.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigAutoRenewWithChan(request *ConfigAutoRenewRequest) (<-chan *ConfigAutoRenewResponse, <-chan error) {
+	responseChan := make(chan *ConfigAutoRenewResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ConfigAutoRenew(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ConfigAutoRenewWithCallback invokes the cloudwf.ConfigAutoRenew API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/configautorenew.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ConfigAutoRenewWithCallback(request *ConfigAutoRenewRequest, callback func(response *ConfigAutoRenewResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ConfigAutoRenewResponse
+		var err error
+		defer close(result)
+		response, err = client.ConfigAutoRenew(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ConfigAutoRenewRequest is the request struct for api ConfigAutoRenew
+type ConfigAutoRenewRequest struct {
+	*requests.RpcRequest
+	OffsetDays requests.Integer `position:"Query" name:"OffsetDays"`
+	Months     requests.Integer `position:"Query" name:"Months"`
+	AutoRenew  requests.Boolean `position:"Query" name:"AutoRenew"`
+	ApList     *[]string        `position:"Query" name:"ApList"  type:"Repeated"`
+}
+
+// ConfigAutoRenewResponse is the response struct for api ConfigAutoRenew
+type ConfigAutoRenewResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"success" xml:"success"`
+	Message   string `json:"message" xml:"message"`
+	Code      string `json:"code" xml:"code"`
+	Data      string `json:"data" xml:"data"`
+}
+
+// CreateConfigAutoRenewRequest creates a request to invoke ConfigAutoRenew API
+func CreateConfigAutoRenewRequest() (request *ConfigAutoRenewRequest) {
+	request = &ConfigAutoRenewRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "ConfigAutoRenew", "cloudwf", "openAPI")
+	return
+}
+
+// CreateConfigAutoRenewResponse creates a response to parse from ConfigAutoRenew response
+func CreateConfigAutoRenewResponse() (response *ConfigAutoRenewResponse) {
+	response = &ConfigAutoRenewResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/create_renew_order.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// CreateRenewOrder invokes the cloudwf.CreateRenewOrder API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/createreneworder.html
+func (client *Client) CreateRenewOrder(request *CreateRenewOrderRequest) (response *CreateRenewOrderResponse, err error) {
+	response = CreateCreateRenewOrderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRenewOrderWithChan invokes the cloudwf.CreateRenewOrder API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/createreneworder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRenewOrderWithChan(request *CreateRenewOrderRequest) (<-chan *CreateRenewOrderResponse, <-chan error) {
+	responseChan := make(chan *CreateRenewOrderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRenewOrder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRenewOrderWithCallback invokes the cloudwf.CreateRenewOrder API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/createreneworder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRenewOrderWithCallback(request *CreateRenewOrderRequest, callback func(response *CreateRenewOrderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRenewOrderResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRenewOrder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRenewOrderRequest is the request struct for api CreateRenewOrder
+type CreateRenewOrderRequest struct {
+	*requests.RpcRequest
+	TimeCycleNum requests.Integer `position:"Query" name:"TimeCycleNum"`
+	ApList       *[]string        `position:"Query" name:"ApList"  type:"Repeated"`
+}
+
+// CreateRenewOrderResponse is the response struct for api CreateRenewOrder
+type CreateRenewOrderResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"success" xml:"success"`
+	Message   string `json:"message" xml:"message"`
+	Code      string `json:"code" xml:"code"`
+	Data      string `json:"data" xml:"data"`
+}
+
+// CreateCreateRenewOrderRequest creates a request to invoke CreateRenewOrder API
+func CreateCreateRenewOrderRequest() (request *CreateRenewOrderRequest) {
+	request = &CreateRenewOrderRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "CreateRenewOrder", "cloudwf", "openAPI")
+	return
+}
+
+// CreateCreateRenewOrderResponse creates a response to parse from CreateRenewOrder response
+func CreateCreateRenewOrderResponse() (response *CreateRenewOrderResponse) {
+	response = &CreateRenewOrderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cloudwf/create_sub_account_permission.go

@@ -0,0 +1,112 @@
+package cloudwf
+
+//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"
+)
+
+// CreateSubAccountPermission invokes the cloudwf.CreateSubAccountPermission API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/createsubaccountpermission.html
+func (client *Client) CreateSubAccountPermission(request *CreateSubAccountPermissionRequest) (response *CreateSubAccountPermissionResponse, err error) {
+	response = CreateCreateSubAccountPermissionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSubAccountPermissionWithChan invokes the cloudwf.CreateSubAccountPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/createsubaccountpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSubAccountPermissionWithChan(request *CreateSubAccountPermissionRequest) (<-chan *CreateSubAccountPermissionResponse, <-chan error) {
+	responseChan := make(chan *CreateSubAccountPermissionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSubAccountPermission(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSubAccountPermissionWithCallback invokes the cloudwf.CreateSubAccountPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/createsubaccountpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSubAccountPermissionWithCallback(request *CreateSubAccountPermissionRequest, callback func(response *CreateSubAccountPermissionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSubAccountPermissionResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSubAccountPermission(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSubAccountPermissionRequest is the request struct for api CreateSubAccountPermission
+type CreateSubAccountPermissionRequest struct {
+	*requests.RpcRequest
+	Uid            requests.Integer `position:"Query" name:"Uid"`
+	ShopGroupIds   *[]string        `position:"Query" name:"ShopGroupIds"  type:"Repeated"`
+	ShopIds        *[]string        `position:"Query" name:"ShopIds"  type:"Repeated"`
+	PagePermission string           `position:"Query" name:"PagePermission"`
+	PermissionType requests.Integer `position:"Query" name:"PermissionType"`
+	BusinessIds    *[]string        `position:"Query" name:"BusinessIds"  type:"Repeated"`
+}
+
+// CreateSubAccountPermissionResponse is the response struct for api CreateSubAccountPermission
+type CreateSubAccountPermissionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateCreateSubAccountPermissionRequest creates a request to invoke CreateSubAccountPermission API
+func CreateCreateSubAccountPermissionRequest() (request *CreateSubAccountPermissionRequest) {
+	request = &CreateSubAccountPermissionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "CreateSubAccountPermission", "cloudwf", "openAPI")
+	return
+}
+
+// CreateCreateSubAccountPermissionResponse creates a response to parse from CreateSubAccountPermission response
+func CreateCreateSubAccountPermissionResponse() (response *CreateSubAccountPermissionResponse) {
+	response = &CreateSubAccountPermissionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/del_ap_position.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// DelApPosition invokes the cloudwf.DelApPosition API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/delapposition.html
+func (client *Client) DelApPosition(request *DelApPositionRequest) (response *DelApPositionResponse, err error) {
+	response = CreateDelApPositionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DelApPositionWithChan invokes the cloudwf.DelApPosition API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delapposition.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelApPositionWithChan(request *DelApPositionRequest) (<-chan *DelApPositionResponse, <-chan error) {
+	responseChan := make(chan *DelApPositionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DelApPosition(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DelApPositionWithCallback invokes the cloudwf.DelApPosition API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delapposition.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelApPositionWithCallback(request *DelApPositionRequest, callback func(response *DelApPositionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DelApPositionResponse
+		var err error
+		defer close(result)
+		response, err = client.DelApPosition(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DelApPositionRequest is the request struct for api DelApPosition
+type DelApPositionRequest struct {
+	*requests.RpcRequest
+	ApAssetId requests.Integer `position:"Query" name:"ApAssetId"`
+	MapId     requests.Integer `position:"Query" name:"MapId"`
+}
+
+// DelApPositionResponse is the response struct for api DelApPosition
+type DelApPositionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDelApPositionRequest creates a request to invoke DelApPosition API
+func CreateDelApPositionRequest() (request *DelApPositionRequest) {
+	request = &DelApPositionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DelApPosition", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDelApPositionResponse creates a response to parse from DelApPosition response
+func CreateDelApPositionResponse() (response *DelApPositionResponse) {
+	response = &DelApPositionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/del_page_config_template.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// DelPageConfigTemplate invokes the cloudwf.DelPageConfigTemplate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/delpageconfigtemplate.html
+func (client *Client) DelPageConfigTemplate(request *DelPageConfigTemplateRequest) (response *DelPageConfigTemplateResponse, err error) {
+	response = CreateDelPageConfigTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DelPageConfigTemplateWithChan invokes the cloudwf.DelPageConfigTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delpageconfigtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelPageConfigTemplateWithChan(request *DelPageConfigTemplateRequest) (<-chan *DelPageConfigTemplateResponse, <-chan error) {
+	responseChan := make(chan *DelPageConfigTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DelPageConfigTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DelPageConfigTemplateWithCallback invokes the cloudwf.DelPageConfigTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delpageconfigtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelPageConfigTemplateWithCallback(request *DelPageConfigTemplateRequest, callback func(response *DelPageConfigTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DelPageConfigTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.DelPageConfigTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DelPageConfigTemplateRequest is the request struct for api DelPageConfigTemplate
+type DelPageConfigTemplateRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// DelPageConfigTemplateResponse is the response struct for api DelPageConfigTemplate
+type DelPageConfigTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDelPageConfigTemplateRequest creates a request to invoke DelPageConfigTemplate API
+func CreateDelPageConfigTemplateRequest() (request *DelPageConfigTemplateRequest) {
+	request = &DelPageConfigTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DelPageConfigTemplate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDelPageConfigTemplateResponse creates a response to parse from DelPageConfigTemplate response
+func CreateDelPageConfigTemplateResponse() (response *DelPageConfigTemplateResponse) {
+	response = &DelPageConfigTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/del_portal_temp.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// DelPortalTemp invokes the cloudwf.DelPortalTemp API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/delportaltemp.html
+func (client *Client) DelPortalTemp(request *DelPortalTempRequest) (response *DelPortalTempResponse, err error) {
+	response = CreateDelPortalTempResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DelPortalTempWithChan invokes the cloudwf.DelPortalTemp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delportaltemp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelPortalTempWithChan(request *DelPortalTempRequest) (<-chan *DelPortalTempResponse, <-chan error) {
+	responseChan := make(chan *DelPortalTempResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DelPortalTemp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DelPortalTempWithCallback invokes the cloudwf.DelPortalTemp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delportaltemp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelPortalTempWithCallback(request *DelPortalTempRequest, callback func(response *DelPortalTempResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DelPortalTempResponse
+		var err error
+		defer close(result)
+		response, err = client.DelPortalTemp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DelPortalTempRequest is the request struct for api DelPortalTemp
+type DelPortalTempRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// DelPortalTempResponse is the response struct for api DelPortalTemp
+type DelPortalTempResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDelPortalTempRequest creates a request to invoke DelPortalTemp API
+func CreateDelPortalTempRequest() (request *DelPortalTempRequest) {
+	request = &DelPortalTempRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DelPortalTemp", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDelPortalTempResponse creates a response to parse from DelPortalTemp response
+func CreateDelPortalTempResponse() (response *DelPortalTempResponse) {
+	response = &DelPortalTempResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/del_sub_account_permission.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// DelSubAccountPermission invokes the cloudwf.DelSubAccountPermission API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/delsubaccountpermission.html
+func (client *Client) DelSubAccountPermission(request *DelSubAccountPermissionRequest) (response *DelSubAccountPermissionResponse, err error) {
+	response = CreateDelSubAccountPermissionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DelSubAccountPermissionWithChan invokes the cloudwf.DelSubAccountPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delsubaccountpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelSubAccountPermissionWithChan(request *DelSubAccountPermissionRequest) (<-chan *DelSubAccountPermissionResponse, <-chan error) {
+	responseChan := make(chan *DelSubAccountPermissionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DelSubAccountPermission(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DelSubAccountPermissionWithCallback invokes the cloudwf.DelSubAccountPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delsubaccountpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelSubAccountPermissionWithCallback(request *DelSubAccountPermissionRequest, callback func(response *DelSubAccountPermissionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DelSubAccountPermissionResponse
+		var err error
+		defer close(result)
+		response, err = client.DelSubAccountPermission(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DelSubAccountPermissionRequest is the request struct for api DelSubAccountPermission
+type DelSubAccountPermissionRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// DelSubAccountPermissionResponse is the response struct for api DelSubAccountPermission
+type DelSubAccountPermissionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDelSubAccountPermissionRequest creates a request to invoke DelSubAccountPermission API
+func CreateDelSubAccountPermissionRequest() (request *DelSubAccountPermissionRequest) {
+	request = &DelSubAccountPermissionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DelSubAccountPermission", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDelSubAccountPermissionResponse creates a response to parse from DelSubAccountPermission response
+func CreateDelSubAccountPermissionResponse() (response *DelSubAccountPermissionResponse) {
+	response = &DelSubAccountPermissionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/del_umeng_page_permission4_root.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// DelUmengPagePermission4Root invokes the cloudwf.DelUmengPagePermission4Root API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/delumengpagepermission4root.html
+func (client *Client) DelUmengPagePermission4Root(request *DelUmengPagePermission4RootRequest) (response *DelUmengPagePermission4RootResponse, err error) {
+	response = CreateDelUmengPagePermission4RootResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DelUmengPagePermission4RootWithChan invokes the cloudwf.DelUmengPagePermission4Root API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delumengpagepermission4root.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelUmengPagePermission4RootWithChan(request *DelUmengPagePermission4RootRequest) (<-chan *DelUmengPagePermission4RootResponse, <-chan error) {
+	responseChan := make(chan *DelUmengPagePermission4RootResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DelUmengPagePermission4Root(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DelUmengPagePermission4RootWithCallback invokes the cloudwf.DelUmengPagePermission4Root API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/delumengpagepermission4root.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DelUmengPagePermission4RootWithCallback(request *DelUmengPagePermission4RootRequest, callback func(response *DelUmengPagePermission4RootResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DelUmengPagePermission4RootResponse
+		var err error
+		defer close(result)
+		response, err = client.DelUmengPagePermission4Root(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DelUmengPagePermission4RootRequest is the request struct for api DelUmengPagePermission4Root
+type DelUmengPagePermission4RootRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// DelUmengPagePermission4RootResponse is the response struct for api DelUmengPagePermission4Root
+type DelUmengPagePermission4RootResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDelUmengPagePermission4RootRequest creates a request to invoke DelUmengPagePermission4Root API
+func CreateDelUmengPagePermission4RootRequest() (request *DelUmengPagePermission4RootRequest) {
+	request = &DelUmengPagePermission4RootRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DelUmengPagePermission4Root", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDelUmengPagePermission4RootResponse creates a response to parse from DelUmengPagePermission4Root response
+func CreateDelUmengPagePermission4RootResponse() (response *DelUmengPagePermission4RootResponse) {
+	response = &DelUmengPagePermission4RootResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/delete_ap_radio_ssid_config.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// DeleteApRadioSsidConfig invokes the cloudwf.DeleteApRadioSsidConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapradiossidconfig.html
+func (client *Client) DeleteApRadioSsidConfig(request *DeleteApRadioSsidConfigRequest) (response *DeleteApRadioSsidConfigResponse, err error) {
+	response = CreateDeleteApRadioSsidConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteApRadioSsidConfigWithChan invokes the cloudwf.DeleteApRadioSsidConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapradiossidconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteApRadioSsidConfigWithChan(request *DeleteApRadioSsidConfigRequest) (<-chan *DeleteApRadioSsidConfigResponse, <-chan error) {
+	responseChan := make(chan *DeleteApRadioSsidConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteApRadioSsidConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteApRadioSsidConfigWithCallback invokes the cloudwf.DeleteApRadioSsidConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapradiossidconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteApRadioSsidConfigWithCallback(request *DeleteApRadioSsidConfigRequest, callback func(response *DeleteApRadioSsidConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteApRadioSsidConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteApRadioSsidConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteApRadioSsidConfigRequest is the request struct for api DeleteApRadioSsidConfig
+type DeleteApRadioSsidConfigRequest struct {
+	*requests.RpcRequest
+	InstantlyEffective requests.Integer `position:"Query" name:"InstantlyEffective"`
+	Id                 requests.Integer `position:"Query" name:"Id"`
+}
+
+// DeleteApRadioSsidConfigResponse is the response struct for api DeleteApRadioSsidConfig
+type DeleteApRadioSsidConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeleteApRadioSsidConfigRequest creates a request to invoke DeleteApRadioSsidConfig API
+func CreateDeleteApRadioSsidConfigRequest() (request *DeleteApRadioSsidConfigRequest) {
+	request = &DeleteApRadioSsidConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeleteApRadioSsidConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeleteApRadioSsidConfigResponse creates a response to parse from DeleteApRadioSsidConfig response
+func CreateDeleteApRadioSsidConfigResponse() (response *DeleteApRadioSsidConfigResponse) {
+	response = &DeleteApRadioSsidConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/delete_apgroup_config.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// DeleteApgroupConfig invokes the cloudwf.DeleteApgroupConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapgroupconfig.html
+func (client *Client) DeleteApgroupConfig(request *DeleteApgroupConfigRequest) (response *DeleteApgroupConfigResponse, err error) {
+	response = CreateDeleteApgroupConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteApgroupConfigWithChan invokes the cloudwf.DeleteApgroupConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapgroupconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteApgroupConfigWithChan(request *DeleteApgroupConfigRequest) (<-chan *DeleteApgroupConfigResponse, <-chan error) {
+	responseChan := make(chan *DeleteApgroupConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteApgroupConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteApgroupConfigWithCallback invokes the cloudwf.DeleteApgroupConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapgroupconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteApgroupConfigWithCallback(request *DeleteApgroupConfigRequest, callback func(response *DeleteApgroupConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteApgroupConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteApgroupConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteApgroupConfigRequest is the request struct for api DeleteApgroupConfig
+type DeleteApgroupConfigRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// DeleteApgroupConfigResponse is the response struct for api DeleteApgroupConfig
+type DeleteApgroupConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeleteApgroupConfigRequest creates a request to invoke DeleteApgroupConfig API
+func CreateDeleteApgroupConfigRequest() (request *DeleteApgroupConfigRequest) {
+	request = &DeleteApgroupConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeleteApgroupConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeleteApgroupConfigResponse creates a response to parse from DeleteApgroupConfig response
+func CreateDeleteApgroupConfigResponse() (response *DeleteApgroupConfigResponse) {
+	response = &DeleteApgroupConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/delete_apgroup_ssid_config.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// DeleteApgroupSsidConfig invokes the cloudwf.DeleteApgroupSsidConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapgroupssidconfig.html
+func (client *Client) DeleteApgroupSsidConfig(request *DeleteApgroupSsidConfigRequest) (response *DeleteApgroupSsidConfigResponse, err error) {
+	response = CreateDeleteApgroupSsidConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteApgroupSsidConfigWithChan invokes the cloudwf.DeleteApgroupSsidConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapgroupssidconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteApgroupSsidConfigWithChan(request *DeleteApgroupSsidConfigRequest) (<-chan *DeleteApgroupSsidConfigResponse, <-chan error) {
+	responseChan := make(chan *DeleteApgroupSsidConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteApgroupSsidConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteApgroupSsidConfigWithCallback invokes the cloudwf.DeleteApgroupSsidConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deleteapgroupssidconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteApgroupSsidConfigWithCallback(request *DeleteApgroupSsidConfigRequest, callback func(response *DeleteApgroupSsidConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteApgroupSsidConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteApgroupSsidConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteApgroupSsidConfigRequest is the request struct for api DeleteApgroupSsidConfig
+type DeleteApgroupSsidConfigRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+	Id        requests.Integer `position:"Query" name:"Id"`
+}
+
+// DeleteApgroupSsidConfigResponse is the response struct for api DeleteApgroupSsidConfig
+type DeleteApgroupSsidConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeleteApgroupSsidConfigRequest creates a request to invoke DeleteApgroupSsidConfig API
+func CreateDeleteApgroupSsidConfigRequest() (request *DeleteApgroupSsidConfigRequest) {
+	request = &DeleteApgroupSsidConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeleteApgroupSsidConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeleteApgroupSsidConfigResponse creates a response to parse from DeleteApgroupSsidConfig response
+func CreateDeleteApgroupSsidConfigResponse() (response *DeleteApgroupSsidConfigResponse) {
+	response = &DeleteApgroupSsidConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/delete_position_map.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// DeletePositionMap invokes the cloudwf.DeletePositionMap API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/deletepositionmap.html
+func (client *Client) DeletePositionMap(request *DeletePositionMapRequest) (response *DeletePositionMapResponse, err error) {
+	response = CreateDeletePositionMapResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeletePositionMapWithChan invokes the cloudwf.DeletePositionMap API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deletepositionmap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePositionMapWithChan(request *DeletePositionMapRequest) (<-chan *DeletePositionMapResponse, <-chan error) {
+	responseChan := make(chan *DeletePositionMapResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeletePositionMap(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeletePositionMapWithCallback invokes the cloudwf.DeletePositionMap API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deletepositionmap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePositionMapWithCallback(request *DeletePositionMapRequest, callback func(response *DeletePositionMapResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeletePositionMapResponse
+		var err error
+		defer close(result)
+		response, err = client.DeletePositionMap(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeletePositionMapRequest is the request struct for api DeletePositionMap
+type DeletePositionMapRequest struct {
+	*requests.RpcRequest
+	MapId requests.Integer `position:"Query" name:"MapId"`
+}
+
+// DeletePositionMapResponse is the response struct for api DeletePositionMap
+type DeletePositionMapResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeletePositionMapRequest creates a request to invoke DeletePositionMap API
+func CreateDeletePositionMapRequest() (request *DeletePositionMapRequest) {
+	request = &DeletePositionMapRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeletePositionMap", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeletePositionMapResponse creates a response to parse from DeletePositionMap response
+func CreateDeletePositionMapResponse() (response *DeletePositionMapResponse) {
+	response = &DeletePositionMapResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/device_batch_create.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// DeviceBatchCreate invokes the cloudwf.DeviceBatchCreate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicebatchcreate.html
+func (client *Client) DeviceBatchCreate(request *DeviceBatchCreateRequest) (response *DeviceBatchCreateResponse, err error) {
+	response = CreateDeviceBatchCreateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeviceBatchCreateWithChan invokes the cloudwf.DeviceBatchCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicebatchcreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceBatchCreateWithChan(request *DeviceBatchCreateRequest) (<-chan *DeviceBatchCreateResponse, <-chan error) {
+	responseChan := make(chan *DeviceBatchCreateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeviceBatchCreate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeviceBatchCreateWithCallback invokes the cloudwf.DeviceBatchCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicebatchcreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceBatchCreateWithCallback(request *DeviceBatchCreateRequest, callback func(response *DeviceBatchCreateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeviceBatchCreateResponse
+		var err error
+		defer close(result)
+		response, err = client.DeviceBatchCreate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeviceBatchCreateRequest is the request struct for api DeviceBatchCreate
+type DeviceBatchCreateRequest struct {
+	*requests.RpcRequest
+	Sn         string           `position:"Query" name:"Sn"`
+	DeviceType requests.Integer `position:"Query" name:"DeviceType"`
+}
+
+// DeviceBatchCreateResponse is the response struct for api DeviceBatchCreate
+type DeviceBatchCreateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeviceBatchCreateRequest creates a request to invoke DeviceBatchCreate API
+func CreateDeviceBatchCreateRequest() (request *DeviceBatchCreateRequest) {
+	request = &DeviceBatchCreateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeviceBatchCreate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeviceBatchCreateResponse creates a response to parse from DeviceBatchCreate response
+func CreateDeviceBatchCreateResponse() (response *DeviceBatchCreateResponse) {
+	response = &DeviceBatchCreateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cloudwf/device_create.go

@@ -0,0 +1,110 @@
+package cloudwf
+
+//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"
+)
+
+// DeviceCreate invokes the cloudwf.DeviceCreate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicecreate.html
+func (client *Client) DeviceCreate(request *DeviceCreateRequest) (response *DeviceCreateResponse, err error) {
+	response = CreateDeviceCreateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeviceCreateWithChan invokes the cloudwf.DeviceCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicecreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceCreateWithChan(request *DeviceCreateRequest) (<-chan *DeviceCreateResponse, <-chan error) {
+	responseChan := make(chan *DeviceCreateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeviceCreate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeviceCreateWithCallback invokes the cloudwf.DeviceCreate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicecreate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceCreateWithCallback(request *DeviceCreateRequest, callback func(response *DeviceCreateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeviceCreateResponse
+		var err error
+		defer close(result)
+		response, err = client.DeviceCreate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeviceCreateRequest is the request struct for api DeviceCreate
+type DeviceCreateRequest struct {
+	*requests.RpcRequest
+	DeviceNum      string           `position:"Query" name:"DeviceNum"`
+	DevicePosition string           `position:"Query" name:"DevicePosition"`
+	DeviceName     string           `position:"Query" name:"DeviceName"`
+	DeviceType     requests.Integer `position:"Query" name:"DeviceType"`
+	Sid            requests.Integer `position:"Query" name:"Sid"`
+}
+
+// DeviceCreateResponse is the response struct for api DeviceCreate
+type DeviceCreateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeviceCreateRequest creates a request to invoke DeviceCreate API
+func CreateDeviceCreateRequest() (request *DeviceCreateRequest) {
+	request = &DeviceCreateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeviceCreate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeviceCreateResponse creates a response to parse from DeviceCreate response
+func CreateDeviceCreateResponse() (response *DeviceCreateResponse) {
+	response = &DeviceCreateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/device_delete.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// DeviceDelete invokes the cloudwf.DeviceDelete API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicedelete.html
+func (client *Client) DeviceDelete(request *DeviceDeleteRequest) (response *DeviceDeleteResponse, err error) {
+	response = CreateDeviceDeleteResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeviceDeleteWithChan invokes the cloudwf.DeviceDelete API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicedelete.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceDeleteWithChan(request *DeviceDeleteRequest) (<-chan *DeviceDeleteResponse, <-chan error) {
+	responseChan := make(chan *DeviceDeleteResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeviceDelete(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeviceDeleteWithCallback invokes the cloudwf.DeviceDelete API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/devicedelete.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceDeleteWithCallback(request *DeviceDeleteRequest, callback func(response *DeviceDeleteResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeviceDeleteResponse
+		var err error
+		defer close(result)
+		response, err = client.DeviceDelete(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeviceDeleteRequest is the request struct for api DeviceDelete
+type DeviceDeleteRequest struct {
+	*requests.RpcRequest
+	Did requests.Integer `position:"Query" name:"Did"`
+	Mac string           `position:"Query" name:"Mac"`
+}
+
+// DeviceDeleteResponse is the response struct for api DeviceDelete
+type DeviceDeleteResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeviceDeleteRequest creates a request to invoke DeviceDelete API
+func CreateDeviceDeleteRequest() (request *DeviceDeleteRequest) {
+	request = &DeviceDeleteRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeviceDelete", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeviceDeleteResponse creates a response to parse from DeviceDelete response
+func CreateDeviceDeleteResponse() (response *DeviceDeleteResponse) {
+	response = &DeviceDeleteResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cloudwf/device_show_list.go

@@ -0,0 +1,110 @@
+package cloudwf
+
+//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"
+)
+
+// DeviceShowList invokes the cloudwf.DeviceShowList API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/deviceshowlist.html
+func (client *Client) DeviceShowList(request *DeviceShowListRequest) (response *DeviceShowListResponse, err error) {
+	response = CreateDeviceShowListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeviceShowListWithChan invokes the cloudwf.DeviceShowList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deviceshowlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceShowListWithChan(request *DeviceShowListRequest) (<-chan *DeviceShowListResponse, <-chan error) {
+	responseChan := make(chan *DeviceShowListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeviceShowList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeviceShowListWithCallback invokes the cloudwf.DeviceShowList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deviceshowlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceShowListWithCallback(request *DeviceShowListRequest, callback func(response *DeviceShowListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeviceShowListResponse
+		var err error
+		defer close(result)
+		response, err = client.DeviceShowList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeviceShowListRequest is the request struct for api DeviceShowList
+type DeviceShowListRequest struct {
+	*requests.RpcRequest
+	Dirc       string           `position:"Query" name:"Dirc"`
+	Page       requests.Integer `position:"Query" name:"Page"`
+	Per        requests.Integer `position:"Query" name:"Per"`
+	DeviceType requests.Integer `position:"Query" name:"DeviceType"`
+	Sid        requests.Integer `position:"Query" name:"Sid"`
+}
+
+// DeviceShowListResponse is the response struct for api DeviceShowList
+type DeviceShowListResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeviceShowListRequest creates a request to invoke DeviceShowList API
+func CreateDeviceShowListRequest() (request *DeviceShowListRequest) {
+	request = &DeviceShowListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeviceShowList", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeviceShowListResponse creates a response to parse from DeviceShowList response
+func CreateDeviceShowListResponse() (response *DeviceShowListResponse) {
+	response = &DeviceShowListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/device_update.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// DeviceUpdate invokes the cloudwf.DeviceUpdate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/deviceupdate.html
+func (client *Client) DeviceUpdate(request *DeviceUpdateRequest) (response *DeviceUpdateResponse, err error) {
+	response = CreateDeviceUpdateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeviceUpdateWithChan invokes the cloudwf.DeviceUpdate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deviceupdate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceUpdateWithChan(request *DeviceUpdateRequest) (<-chan *DeviceUpdateResponse, <-chan error) {
+	responseChan := make(chan *DeviceUpdateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeviceUpdate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeviceUpdateWithCallback invokes the cloudwf.DeviceUpdate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/deviceupdate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeviceUpdateWithCallback(request *DeviceUpdateRequest, callback func(response *DeviceUpdateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeviceUpdateResponse
+		var err error
+		defer close(result)
+		response, err = client.DeviceUpdate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeviceUpdateRequest is the request struct for api DeviceUpdate
+type DeviceUpdateRequest struct {
+	*requests.RpcRequest
+	DevicePosition string           `position:"Query" name:"DevicePosition"`
+	DeviceName     string           `position:"Query" name:"DeviceName"`
+	Did            requests.Integer `position:"Query" name:"Did"`
+}
+
+// DeviceUpdateResponse is the response struct for api DeviceUpdate
+type DeviceUpdateResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateDeviceUpdateRequest creates a request to invoke DeviceUpdate API
+func CreateDeviceUpdateRequest() (request *DeviceUpdateRequest) {
+	request = &DeviceUpdateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "DeviceUpdate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateDeviceUpdateResponse creates a response to parse from DeviceUpdate response
+func CreateDeviceUpdateResponse() (response *DeviceUpdateResponse) {
+	response = &DeviceUpdateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/excel_to_json.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// ExcelToJson invokes the cloudwf.ExcelToJson API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/exceltojson.html
+func (client *Client) ExcelToJson(request *ExcelToJsonRequest) (response *ExcelToJsonResponse, err error) {
+	response = CreateExcelToJsonResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ExcelToJsonWithChan invokes the cloudwf.ExcelToJson API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/exceltojson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExcelToJsonWithChan(request *ExcelToJsonRequest) (<-chan *ExcelToJsonResponse, <-chan error) {
+	responseChan := make(chan *ExcelToJsonResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ExcelToJson(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ExcelToJsonWithCallback invokes the cloudwf.ExcelToJson API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/exceltojson.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExcelToJsonWithCallback(request *ExcelToJsonRequest, callback func(response *ExcelToJsonResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ExcelToJsonResponse
+		var err error
+		defer close(result)
+		response, err = client.ExcelToJson(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ExcelToJsonRequest is the request struct for api ExcelToJson
+type ExcelToJsonRequest struct {
+	*requests.RpcRequest
+	UploadData string `position:"Query" name:"UploadData"`
+}
+
+// ExcelToJsonResponse is the response struct for api ExcelToJson
+type ExcelToJsonResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateExcelToJsonRequest creates a request to invoke ExcelToJson API
+func CreateExcelToJsonRequest() (request *ExcelToJsonRequest) {
+	request = &ExcelToJsonRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "ExcelToJson", "cloudwf", "openAPI")
+	return
+}
+
+// CreateExcelToJsonResponse creates a response to parse from ExcelToJson response
+func CreateExcelToJsonResponse() (response *ExcelToJsonResponse) {
+	response = &ExcelToJsonResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/find_ap.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// FindAp invokes the cloudwf.FindAp API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/findap.html
+func (client *Client) FindAp(request *FindApRequest) (response *FindApResponse, err error) {
+	response = CreateFindApResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FindApWithChan invokes the cloudwf.FindAp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/findap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FindApWithChan(request *FindApRequest) (<-chan *FindApResponse, <-chan error) {
+	responseChan := make(chan *FindApResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FindAp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FindApWithCallback invokes the cloudwf.FindAp API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/findap.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FindApWithCallback(request *FindApRequest, callback func(response *FindApResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FindApResponse
+		var err error
+		defer close(result)
+		response, err = client.FindAp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FindApRequest is the request struct for api FindAp
+type FindApRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// FindApResponse is the response struct for api FindAp
+type FindApResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateFindApRequest creates a request to invoke FindAp API
+func CreateFindApRequest() (request *FindApRequest) {
+	request = &FindApRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "FindAp", "cloudwf", "openAPI")
+	return
+}
+
+// CreateFindApResponse creates a response to parse from FindAp response
+func CreateFindApResponse() (response *FindApResponse) {
+	response = &FindApResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/frequency_analyse.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// FrequencyAnalyse invokes the cloudwf.FrequencyAnalyse API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/frequencyanalyse.html
+func (client *Client) FrequencyAnalyse(request *FrequencyAnalyseRequest) (response *FrequencyAnalyseResponse, err error) {
+	response = CreateFrequencyAnalyseResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FrequencyAnalyseWithChan invokes the cloudwf.FrequencyAnalyse API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/frequencyanalyse.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FrequencyAnalyseWithChan(request *FrequencyAnalyseRequest) (<-chan *FrequencyAnalyseResponse, <-chan error) {
+	responseChan := make(chan *FrequencyAnalyseResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FrequencyAnalyse(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FrequencyAnalyseWithCallback invokes the cloudwf.FrequencyAnalyse API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/frequencyanalyse.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FrequencyAnalyseWithCallback(request *FrequencyAnalyseRequest, callback func(response *FrequencyAnalyseResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FrequencyAnalyseResponse
+		var err error
+		defer close(result)
+		response, err = client.FrequencyAnalyse(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FrequencyAnalyseRequest is the request struct for api FrequencyAnalyse
+type FrequencyAnalyseRequest struct {
+	*requests.RpcRequest
+	Gsid requests.Integer `position:"Query" name:"Gsid"`
+}
+
+// FrequencyAnalyseResponse is the response struct for api FrequencyAnalyse
+type FrequencyAnalyseResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateFrequencyAnalyseRequest creates a request to invoke FrequencyAnalyse API
+func CreateFrequencyAnalyseRequest() (request *FrequencyAnalyseRequest) {
+	request = &FrequencyAnalyseRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "FrequencyAnalyse", "cloudwf", "openAPI")
+	return
+}
+
+// CreateFrequencyAnalyseResponse creates a response to parse from FrequencyAnalyse response
+func CreateFrequencyAnalyseResponse() (response *FrequencyAnalyseResponse) {
+	response = &FrequencyAnalyseResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_account_config.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetAccountConfig invokes the cloudwf.GetAccountConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaccountconfig.html
+func (client *Client) GetAccountConfig(request *GetAccountConfigRequest) (response *GetAccountConfigResponse, err error) {
+	response = CreateGetAccountConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAccountConfigWithChan invokes the cloudwf.GetAccountConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaccountconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAccountConfigWithChan(request *GetAccountConfigRequest) (<-chan *GetAccountConfigResponse, <-chan error) {
+	responseChan := make(chan *GetAccountConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAccountConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAccountConfigWithCallback invokes the cloudwf.GetAccountConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaccountconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAccountConfigWithCallback(request *GetAccountConfigRequest, callback func(response *GetAccountConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAccountConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAccountConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAccountConfigRequest is the request struct for api GetAccountConfig
+type GetAccountConfigRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetAccountConfigResponse is the response struct for api GetAccountConfig
+type GetAccountConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetAccountConfigRequest creates a request to invoke GetAccountConfig API
+func CreateGetAccountConfigRequest() (request *GetAccountConfigRequest) {
+	request = &GetAccountConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetAccountConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetAccountConfigResponse creates a response to parse from GetAccountConfig response
+func CreateGetAccountConfigResponse() (response *GetAccountConfigResponse) {
+	response = &GetAccountConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_add_aps_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetAddApsProgress invokes the cloudwf.GetAddApsProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaddapsprogress.html
+func (client *Client) GetAddApsProgress(request *GetAddApsProgressRequest) (response *GetAddApsProgressResponse, err error) {
+	response = CreateGetAddApsProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAddApsProgressWithChan invokes the cloudwf.GetAddApsProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaddapsprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAddApsProgressWithChan(request *GetAddApsProgressRequest) (<-chan *GetAddApsProgressResponse, <-chan error) {
+	responseChan := make(chan *GetAddApsProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAddApsProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAddApsProgressWithCallback invokes the cloudwf.GetAddApsProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaddapsprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAddApsProgressWithCallback(request *GetAddApsProgressRequest, callback func(response *GetAddApsProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAddApsProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAddApsProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAddApsProgressRequest is the request struct for api GetAddApsProgress
+type GetAddApsProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetAddApsProgressResponse is the response struct for api GetAddApsProgress
+type GetAddApsProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetAddApsProgressRequest creates a request to invoke GetAddApsProgress API
+func CreateGetAddApsProgressRequest() (request *GetAddApsProgressRequest) {
+	request = &GetAddApsProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetAddApsProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetAddApsProgressResponse creates a response to parse from GetAddApsProgress response
+func CreateGetAddApsProgressResponse() (response *GetAddApsProgressResponse) {
+	response = &GetAddApsProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/get_all_active_shop_by_group.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// GetAllActiveShopByGroup invokes the cloudwf.GetAllActiveShopByGroup API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getallactiveshopbygroup.html
+func (client *Client) GetAllActiveShopByGroup(request *GetAllActiveShopByGroupRequest) (response *GetAllActiveShopByGroupResponse, err error) {
+	response = CreateGetAllActiveShopByGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAllActiveShopByGroupWithChan invokes the cloudwf.GetAllActiveShopByGroup API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getallactiveshopbygroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAllActiveShopByGroupWithChan(request *GetAllActiveShopByGroupRequest) (<-chan *GetAllActiveShopByGroupResponse, <-chan error) {
+	responseChan := make(chan *GetAllActiveShopByGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAllActiveShopByGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAllActiveShopByGroupWithCallback invokes the cloudwf.GetAllActiveShopByGroup API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getallactiveshopbygroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAllActiveShopByGroupWithCallback(request *GetAllActiveShopByGroupRequest, callback func(response *GetAllActiveShopByGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAllActiveShopByGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAllActiveShopByGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAllActiveShopByGroupRequest is the request struct for api GetAllActiveShopByGroup
+type GetAllActiveShopByGroupRequest struct {
+	*requests.RpcRequest
+	Gids *[]string        `position:"Query" name:"Gids"  type:"Repeated"`
+	Bid  requests.Integer `position:"Query" name:"Bid"`
+}
+
+// GetAllActiveShopByGroupResponse is the response struct for api GetAllActiveShopByGroup
+type GetAllActiveShopByGroupResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetAllActiveShopByGroupRequest creates a request to invoke GetAllActiveShopByGroup API
+func CreateGetAllActiveShopByGroupRequest() (request *GetAllActiveShopByGroupRequest) {
+	request = &GetAllActiveShopByGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetAllActiveShopByGroup", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetAllActiveShopByGroupResponse creates a response to parse from GetAllActiveShopByGroup response
+func CreateGetAllActiveShopByGroupResponse() (response *GetAllActiveShopByGroupResponse) {
+	response = &GetAllActiveShopByGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_all_ap_model.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetAllApModel invokes the cloudwf.GetAllApModel API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getallapmodel.html
+func (client *Client) GetAllApModel(request *GetAllApModelRequest) (response *GetAllApModelResponse, err error) {
+	response = CreateGetAllApModelResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAllApModelWithChan invokes the cloudwf.GetAllApModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getallapmodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAllApModelWithChan(request *GetAllApModelRequest) (<-chan *GetAllApModelResponse, <-chan error) {
+	responseChan := make(chan *GetAllApModelResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAllApModel(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAllApModelWithCallback invokes the cloudwf.GetAllApModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getallapmodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAllApModelWithCallback(request *GetAllApModelRequest, callback func(response *GetAllApModelResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAllApModelResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAllApModel(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAllApModelRequest is the request struct for api GetAllApModel
+type GetAllApModelRequest struct {
+	*requests.RpcRequest
+}
+
+// GetAllApModelResponse is the response struct for api GetAllApModel
+type GetAllApModelResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetAllApModelRequest creates a request to invoke GetAllApModel API
+func CreateGetAllApModelRequest() (request *GetAllApModelRequest) {
+	request = &GetAllApModelRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetAllApModel", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetAllApModelResponse creates a response to parse from GetAllApModel response
+func CreateGetAllApModelResponse() (response *GetAllApModelResponse) {
+	response = &GetAllApModelResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_ap_detailed_config.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApDetailedConfig invokes the cloudwf.GetApDetailedConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapdetailedconfig.html
+func (client *Client) GetApDetailedConfig(request *GetApDetailedConfigRequest) (response *GetApDetailedConfigResponse, err error) {
+	response = CreateGetApDetailedConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApDetailedConfigWithChan invokes the cloudwf.GetApDetailedConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapdetailedconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApDetailedConfigWithChan(request *GetApDetailedConfigRequest) (<-chan *GetApDetailedConfigResponse, <-chan error) {
+	responseChan := make(chan *GetApDetailedConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApDetailedConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApDetailedConfigWithCallback invokes the cloudwf.GetApDetailedConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapdetailedconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApDetailedConfigWithCallback(request *GetApDetailedConfigRequest, callback func(response *GetApDetailedConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApDetailedConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApDetailedConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApDetailedConfigRequest is the request struct for api GetApDetailedConfig
+type GetApDetailedConfigRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApDetailedConfigResponse is the response struct for api GetApDetailedConfig
+type GetApDetailedConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApDetailedConfigRequest creates a request to invoke GetApDetailedConfig API
+func CreateGetApDetailedConfigRequest() (request *GetApDetailedConfigRequest) {
+	request = &GetApDetailedConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApDetailedConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApDetailedConfigResponse creates a response to parse from GetApDetailedConfig response
+func CreateGetApDetailedConfigResponse() (response *GetApDetailedConfigResponse) {
+	response = &GetApDetailedConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_ap_detailed_status.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApDetailedStatus invokes the cloudwf.GetApDetailedStatus API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapdetailedstatus.html
+func (client *Client) GetApDetailedStatus(request *GetApDetailedStatusRequest) (response *GetApDetailedStatusResponse, err error) {
+	response = CreateGetApDetailedStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApDetailedStatusWithChan invokes the cloudwf.GetApDetailedStatus API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapdetailedstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApDetailedStatusWithChan(request *GetApDetailedStatusRequest) (<-chan *GetApDetailedStatusResponse, <-chan error) {
+	responseChan := make(chan *GetApDetailedStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApDetailedStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApDetailedStatusWithCallback invokes the cloudwf.GetApDetailedStatus API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapdetailedstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApDetailedStatusWithCallback(request *GetApDetailedStatusRequest, callback func(response *GetApDetailedStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApDetailedStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApDetailedStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApDetailedStatusRequest is the request struct for api GetApDetailedStatus
+type GetApDetailedStatusRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApDetailedStatusResponse is the response struct for api GetApDetailedStatus
+type GetApDetailedStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApDetailedStatusRequest creates a request to invoke GetApDetailedStatus API
+func CreateGetApDetailedStatusRequest() (request *GetApDetailedStatusRequest) {
+	request = &GetApDetailedStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApDetailedStatus", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApDetailedStatusResponse creates a response to parse from GetApDetailedStatus response
+func CreateGetApDetailedStatusResponse() (response *GetApDetailedStatusResponse) {
+	response = &GetApDetailedStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/get_ap_portal_bind.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// GetApPortalBind invokes the cloudwf.GetApPortalBind API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapportalbind.html
+func (client *Client) GetApPortalBind(request *GetApPortalBindRequest) (response *GetApPortalBindResponse, err error) {
+	response = CreateGetApPortalBindResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApPortalBindWithChan invokes the cloudwf.GetApPortalBind API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapportalbind.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApPortalBindWithChan(request *GetApPortalBindRequest) (<-chan *GetApPortalBindResponse, <-chan error) {
+	responseChan := make(chan *GetApPortalBindResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApPortalBind(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApPortalBindWithCallback invokes the cloudwf.GetApPortalBind API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapportalbind.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApPortalBindWithCallback(request *GetApPortalBindRequest, callback func(response *GetApPortalBindResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApPortalBindResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApPortalBind(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApPortalBindRequest is the request struct for api GetApPortalBind
+type GetApPortalBindRequest struct {
+	*requests.RpcRequest
+	ConfigType requests.Integer `position:"Query" name:"ConfigType"`
+	BindId     requests.Integer `position:"Query" name:"BindId"`
+}
+
+// GetApPortalBindResponse is the response struct for api GetApPortalBind
+type GetApPortalBindResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApPortalBindRequest creates a request to invoke GetApPortalBind API
+func CreateGetApPortalBindRequest() (request *GetApPortalBindRequest) {
+	request = &GetApPortalBindRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApPortalBind", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApPortalBindResponse creates a response to parse from GetApPortalBind response
+func CreateGetApPortalBindResponse() (response *GetApPortalBindResponse) {
+	response = &GetApPortalBindResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cloudwf/get_ap_run_history_time_ser.go

@@ -0,0 +1,110 @@
+package cloudwf
+
+//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"
+)
+
+// GetApRunHistoryTimeSer invokes the cloudwf.GetApRunHistoryTimeSer API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaprunhistorytimeser.html
+func (client *Client) GetApRunHistoryTimeSer(request *GetApRunHistoryTimeSerRequest) (response *GetApRunHistoryTimeSerResponse, err error) {
+	response = CreateGetApRunHistoryTimeSerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApRunHistoryTimeSerWithChan invokes the cloudwf.GetApRunHistoryTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaprunhistorytimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApRunHistoryTimeSerWithChan(request *GetApRunHistoryTimeSerRequest) (<-chan *GetApRunHistoryTimeSerResponse, <-chan error) {
+	responseChan := make(chan *GetApRunHistoryTimeSerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApRunHistoryTimeSer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApRunHistoryTimeSerWithCallback invokes the cloudwf.GetApRunHistoryTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaprunhistorytimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApRunHistoryTimeSerWithCallback(request *GetApRunHistoryTimeSerRequest, callback func(response *GetApRunHistoryTimeSerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApRunHistoryTimeSerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApRunHistoryTimeSer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApRunHistoryTimeSerRequest is the request struct for api GetApRunHistoryTimeSer
+type GetApRunHistoryTimeSerRequest struct {
+	*requests.RpcRequest
+	Start requests.Integer `position:"Query" name:"Start"`
+	End   requests.Integer `position:"Query" name:"End"`
+	Id    requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApRunHistoryTimeSerResponse is the response struct for api GetApRunHistoryTimeSer
+type GetApRunHistoryTimeSerResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApRunHistoryTimeSerRequest creates a request to invoke GetApRunHistoryTimeSer API
+func CreateGetApRunHistoryTimeSerRequest() (request *GetApRunHistoryTimeSerRequest) {
+	request = &GetApRunHistoryTimeSerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApRunHistoryTimeSer", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApRunHistoryTimeSerResponse creates a response to parse from GetApRunHistoryTimeSer response
+func CreateGetApRunHistoryTimeSerResponse() (response *GetApRunHistoryTimeSerResponse) {
+	response = &GetApRunHistoryTimeSerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_ap_sta_misc_agg.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApStaMiscAgg invokes the cloudwf.GetApStaMiscAgg API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapstamiscagg.html
+func (client *Client) GetApStaMiscAgg(request *GetApStaMiscAggRequest) (response *GetApStaMiscAggResponse, err error) {
+	response = CreateGetApStaMiscAggResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApStaMiscAggWithChan invokes the cloudwf.GetApStaMiscAgg API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapstamiscagg.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApStaMiscAggWithChan(request *GetApStaMiscAggRequest) (<-chan *GetApStaMiscAggResponse, <-chan error) {
+	responseChan := make(chan *GetApStaMiscAggResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApStaMiscAgg(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApStaMiscAggWithCallback invokes the cloudwf.GetApStaMiscAgg API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapstamiscagg.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApStaMiscAggWithCallback(request *GetApStaMiscAggRequest, callback func(response *GetApStaMiscAggResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApStaMiscAggResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApStaMiscAgg(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApStaMiscAggRequest is the request struct for api GetApStaMiscAgg
+type GetApStaMiscAggRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// GetApStaMiscAggResponse is the response struct for api GetApStaMiscAgg
+type GetApStaMiscAggResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApStaMiscAggRequest creates a request to invoke GetApStaMiscAgg API
+func CreateGetApStaMiscAggRequest() (request *GetApStaMiscAggRequest) {
+	request = &GetApStaMiscAggRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApStaMiscAgg", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApStaMiscAggResponse creates a response to parse from GetApStaMiscAgg response
+func CreateGetApStaMiscAggResponse() (response *GetApStaMiscAggResponse) {
+	response = &GetApStaMiscAggResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_ap_top.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApTop invokes the cloudwf.GetApTop API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaptop.html
+func (client *Client) GetApTop(request *GetApTopRequest) (response *GetApTopResponse, err error) {
+	response = CreateGetApTopResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApTopWithChan invokes the cloudwf.GetApTop API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaptop.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApTopWithChan(request *GetApTopRequest) (<-chan *GetApTopResponse, <-chan error) {
+	responseChan := make(chan *GetApTopResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApTop(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApTopWithCallback invokes the cloudwf.GetApTop API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getaptop.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApTopWithCallback(request *GetApTopRequest, callback func(response *GetApTopResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApTopResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApTop(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApTopRequest is the request struct for api GetApTop
+type GetApTopRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// GetApTopResponse is the response struct for api GetApTop
+type GetApTopResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApTopRequest creates a request to invoke GetApTop API
+func CreateGetApTopRequest() (request *GetApTopRequest) {
+	request = &GetApTopRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApTop", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApTopResponse creates a response to parse from GetApTop response
+func CreateGetApTopResponse() (response *GetApTopResponse) {
+	response = &GetApTopResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_apgroup_config_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApgroupConfigProgress invokes the cloudwf.GetApgroupConfigProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupconfigprogress.html
+func (client *Client) GetApgroupConfigProgress(request *GetApgroupConfigProgressRequest) (response *GetApgroupConfigProgressResponse, err error) {
+	response = CreateGetApgroupConfigProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApgroupConfigProgressWithChan invokes the cloudwf.GetApgroupConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupConfigProgressWithChan(request *GetApgroupConfigProgressRequest) (<-chan *GetApgroupConfigProgressResponse, <-chan error) {
+	responseChan := make(chan *GetApgroupConfigProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApgroupConfigProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApgroupConfigProgressWithCallback invokes the cloudwf.GetApgroupConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupConfigProgressWithCallback(request *GetApgroupConfigProgressRequest, callback func(response *GetApgroupConfigProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApgroupConfigProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApgroupConfigProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApgroupConfigProgressRequest is the request struct for api GetApgroupConfigProgress
+type GetApgroupConfigProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApgroupConfigProgressResponse is the response struct for api GetApgroupConfigProgress
+type GetApgroupConfigProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApgroupConfigProgressRequest creates a request to invoke GetApgroupConfigProgress API
+func CreateGetApgroupConfigProgressRequest() (request *GetApgroupConfigProgressRequest) {
+	request = &GetApgroupConfigProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApgroupConfigProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApgroupConfigProgressResponse creates a response to parse from GetApgroupConfigProgress response
+func CreateGetApgroupConfigProgressResponse() (response *GetApgroupConfigProgressResponse) {
+	response = &GetApgroupConfigProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_apgroup_detailed_config.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApgroupDetailedConfig invokes the cloudwf.GetApgroupDetailedConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupdetailedconfig.html
+func (client *Client) GetApgroupDetailedConfig(request *GetApgroupDetailedConfigRequest) (response *GetApgroupDetailedConfigResponse, err error) {
+	response = CreateGetApgroupDetailedConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApgroupDetailedConfigWithChan invokes the cloudwf.GetApgroupDetailedConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupdetailedconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupDetailedConfigWithChan(request *GetApgroupDetailedConfigRequest) (<-chan *GetApgroupDetailedConfigResponse, <-chan error) {
+	responseChan := make(chan *GetApgroupDetailedConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApgroupDetailedConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApgroupDetailedConfigWithCallback invokes the cloudwf.GetApgroupDetailedConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupdetailedconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupDetailedConfigWithCallback(request *GetApgroupDetailedConfigRequest, callback func(response *GetApgroupDetailedConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApgroupDetailedConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApgroupDetailedConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApgroupDetailedConfigRequest is the request struct for api GetApgroupDetailedConfig
+type GetApgroupDetailedConfigRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApgroupDetailedConfigResponse is the response struct for api GetApgroupDetailedConfig
+type GetApgroupDetailedConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApgroupDetailedConfigRequest creates a request to invoke GetApgroupDetailedConfig API
+func CreateGetApgroupDetailedConfigRequest() (request *GetApgroupDetailedConfigRequest) {
+	request = &GetApgroupDetailedConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApgroupDetailedConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApgroupDetailedConfigResponse creates a response to parse from GetApgroupDetailedConfig response
+func CreateGetApgroupDetailedConfigResponse() (response *GetApgroupDetailedConfigResponse) {
+	response = &GetApgroupDetailedConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_apgroup_portal_config_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApgroupPortalConfigProgress invokes the cloudwf.GetApgroupPortalConfigProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupportalconfigprogress.html
+func (client *Client) GetApgroupPortalConfigProgress(request *GetApgroupPortalConfigProgressRequest) (response *GetApgroupPortalConfigProgressResponse, err error) {
+	response = CreateGetApgroupPortalConfigProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApgroupPortalConfigProgressWithChan invokes the cloudwf.GetApgroupPortalConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupportalconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupPortalConfigProgressWithChan(request *GetApgroupPortalConfigProgressRequest) (<-chan *GetApgroupPortalConfigProgressResponse, <-chan error) {
+	responseChan := make(chan *GetApgroupPortalConfigProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApgroupPortalConfigProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApgroupPortalConfigProgressWithCallback invokes the cloudwf.GetApgroupPortalConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupportalconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupPortalConfigProgressWithCallback(request *GetApgroupPortalConfigProgressRequest, callback func(response *GetApgroupPortalConfigProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApgroupPortalConfigProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApgroupPortalConfigProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApgroupPortalConfigProgressRequest is the request struct for api GetApgroupPortalConfigProgress
+type GetApgroupPortalConfigProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApgroupPortalConfigProgressResponse is the response struct for api GetApgroupPortalConfigProgress
+type GetApgroupPortalConfigProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApgroupPortalConfigProgressRequest creates a request to invoke GetApgroupPortalConfigProgress API
+func CreateGetApgroupPortalConfigProgressRequest() (request *GetApgroupPortalConfigProgressRequest) {
+	request = &GetApgroupPortalConfigProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApgroupPortalConfigProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApgroupPortalConfigProgressResponse creates a response to parse from GetApgroupPortalConfigProgress response
+func CreateGetApgroupPortalConfigProgressResponse() (response *GetApgroupPortalConfigProgressResponse) {
+	response = &GetApgroupPortalConfigProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_apgroup_scan_config_save_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApgroupScanConfigSaveProgress invokes the cloudwf.GetApgroupScanConfigSaveProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupscanconfigsaveprogress.html
+func (client *Client) GetApgroupScanConfigSaveProgress(request *GetApgroupScanConfigSaveProgressRequest) (response *GetApgroupScanConfigSaveProgressResponse, err error) {
+	response = CreateGetApgroupScanConfigSaveProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApgroupScanConfigSaveProgressWithChan invokes the cloudwf.GetApgroupScanConfigSaveProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupscanconfigsaveprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupScanConfigSaveProgressWithChan(request *GetApgroupScanConfigSaveProgressRequest) (<-chan *GetApgroupScanConfigSaveProgressResponse, <-chan error) {
+	responseChan := make(chan *GetApgroupScanConfigSaveProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApgroupScanConfigSaveProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApgroupScanConfigSaveProgressWithCallback invokes the cloudwf.GetApgroupScanConfigSaveProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupscanconfigsaveprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupScanConfigSaveProgressWithCallback(request *GetApgroupScanConfigSaveProgressRequest, callback func(response *GetApgroupScanConfigSaveProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApgroupScanConfigSaveProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApgroupScanConfigSaveProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApgroupScanConfigSaveProgressRequest is the request struct for api GetApgroupScanConfigSaveProgress
+type GetApgroupScanConfigSaveProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApgroupScanConfigSaveProgressResponse is the response struct for api GetApgroupScanConfigSaveProgress
+type GetApgroupScanConfigSaveProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApgroupScanConfigSaveProgressRequest creates a request to invoke GetApgroupScanConfigSaveProgress API
+func CreateGetApgroupScanConfigSaveProgressRequest() (request *GetApgroupScanConfigSaveProgressRequest) {
+	request = &GetApgroupScanConfigSaveProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApgroupScanConfigSaveProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApgroupScanConfigSaveProgressResponse creates a response to parse from GetApgroupScanConfigSaveProgress response
+func CreateGetApgroupScanConfigSaveProgressResponse() (response *GetApgroupScanConfigSaveProgressResponse) {
+	response = &GetApgroupScanConfigSaveProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_apgroup_ssid_config_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetApgroupSsidConfigProgress invokes the cloudwf.GetApgroupSsidConfigProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupssidconfigprogress.html
+func (client *Client) GetApgroupSsidConfigProgress(request *GetApgroupSsidConfigProgressRequest) (response *GetApgroupSsidConfigProgressResponse, err error) {
+	response = CreateGetApgroupSsidConfigProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetApgroupSsidConfigProgressWithChan invokes the cloudwf.GetApgroupSsidConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupssidconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupSsidConfigProgressWithChan(request *GetApgroupSsidConfigProgressRequest) (<-chan *GetApgroupSsidConfigProgressResponse, <-chan error) {
+	responseChan := make(chan *GetApgroupSsidConfigProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetApgroupSsidConfigProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetApgroupSsidConfigProgressWithCallback invokes the cloudwf.GetApgroupSsidConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getapgroupssidconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetApgroupSsidConfigProgressWithCallback(request *GetApgroupSsidConfigProgressRequest, callback func(response *GetApgroupSsidConfigProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetApgroupSsidConfigProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetApgroupSsidConfigProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetApgroupSsidConfigProgressRequest is the request struct for api GetApgroupSsidConfigProgress
+type GetApgroupSsidConfigProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetApgroupSsidConfigProgressResponse is the response struct for api GetApgroupSsidConfigProgress
+type GetApgroupSsidConfigProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetApgroupSsidConfigProgressRequest creates a request to invoke GetApgroupSsidConfigProgress API
+func CreateGetApgroupSsidConfigProgressRequest() (request *GetApgroupSsidConfigProgressRequest) {
+	request = &GetApgroupSsidConfigProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetApgroupSsidConfigProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetApgroupSsidConfigProgressResponse creates a response to parse from GetApgroupSsidConfigProgress response
+func CreateGetApgroupSsidConfigProgressResponse() (response *GetApgroupSsidConfigProgressResponse) {
+	response = &GetApgroupSsidConfigProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_batch_save_ap_asset_progress.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetBatchSaveApAssetProgress invokes the cloudwf.GetBatchSaveApAssetProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbatchsaveapassetprogress.html
+func (client *Client) GetBatchSaveApAssetProgress(request *GetBatchSaveApAssetProgressRequest) (response *GetBatchSaveApAssetProgressResponse, err error) {
+	response = CreateGetBatchSaveApAssetProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetBatchSaveApAssetProgressWithChan invokes the cloudwf.GetBatchSaveApAssetProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbatchsaveapassetprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBatchSaveApAssetProgressWithChan(request *GetBatchSaveApAssetProgressRequest) (<-chan *GetBatchSaveApAssetProgressResponse, <-chan error) {
+	responseChan := make(chan *GetBatchSaveApAssetProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetBatchSaveApAssetProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetBatchSaveApAssetProgressWithCallback invokes the cloudwf.GetBatchSaveApAssetProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbatchsaveapassetprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBatchSaveApAssetProgressWithCallback(request *GetBatchSaveApAssetProgressRequest, callback func(response *GetBatchSaveApAssetProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetBatchSaveApAssetProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetBatchSaveApAssetProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetBatchSaveApAssetProgressRequest is the request struct for api GetBatchSaveApAssetProgress
+type GetBatchSaveApAssetProgressRequest struct {
+	*requests.RpcRequest
+}
+
+// GetBatchSaveApAssetProgressResponse is the response struct for api GetBatchSaveApAssetProgress
+type GetBatchSaveApAssetProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetBatchSaveApAssetProgressRequest creates a request to invoke GetBatchSaveApAssetProgress API
+func CreateGetBatchSaveApAssetProgressRequest() (request *GetBatchSaveApAssetProgressRequest) {
+	request = &GetBatchSaveApAssetProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetBatchSaveApAssetProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetBatchSaveApAssetProgressResponse creates a response to parse from GetBatchSaveApAssetProgress response
+func CreateGetBatchSaveApAssetProgressResponse() (response *GetBatchSaveApAssetProgressResponse) {
+	response = &GetBatchSaveApAssetProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/get_bid.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// GetBid invokes the cloudwf.GetBid API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbid.html
+func (client *Client) GetBid(request *GetBidRequest) (response *GetBidResponse, err error) {
+	response = CreateGetBidResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetBidWithChan invokes the cloudwf.GetBid API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBidWithChan(request *GetBidRequest) (<-chan *GetBidResponse, <-chan error) {
+	responseChan := make(chan *GetBidResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetBid(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetBidWithCallback invokes the cloudwf.GetBid API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBidWithCallback(request *GetBidRequest, callback func(response *GetBidResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetBidResponse
+		var err error
+		defer close(result)
+		response, err = client.GetBid(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetBidRequest is the request struct for api GetBid
+type GetBidRequest struct {
+	*requests.RpcRequest
+	Length    requests.Integer `position:"Query" name:"Length"`
+	PageIndex requests.Integer `position:"Query" name:"PageIndex"`
+}
+
+// GetBidResponse is the response struct for api GetBid
+type GetBidResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetBidRequest creates a request to invoke GetBid API
+func CreateGetBidRequest() (request *GetBidRequest) {
+	request = &GetBidRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetBid", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetBidResponse creates a response to parse from GetBid response
+func CreateGetBidResponse() (response *GetBidResponse) {
+	response = &GetBidResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_bids4_uid4_root.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetBids4Uid4Root invokes the cloudwf.GetBids4Uid4Root API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbids4uid4root.html
+func (client *Client) GetBids4Uid4Root(request *GetBids4Uid4RootRequest) (response *GetBids4Uid4RootResponse, err error) {
+	response = CreateGetBids4Uid4RootResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetBids4Uid4RootWithChan invokes the cloudwf.GetBids4Uid4Root API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbids4uid4root.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBids4Uid4RootWithChan(request *GetBids4Uid4RootRequest) (<-chan *GetBids4Uid4RootResponse, <-chan error) {
+	responseChan := make(chan *GetBids4Uid4RootResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetBids4Uid4Root(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetBids4Uid4RootWithCallback invokes the cloudwf.GetBids4Uid4Root API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbids4uid4root.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBids4Uid4RootWithCallback(request *GetBids4Uid4RootRequest, callback func(response *GetBids4Uid4RootResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetBids4Uid4RootResponse
+		var err error
+		defer close(result)
+		response, err = client.GetBids4Uid4Root(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetBids4Uid4RootRequest is the request struct for api GetBids4Uid4Root
+type GetBids4Uid4RootRequest struct {
+	*requests.RpcRequest
+	Uid requests.Integer `position:"Query" name:"Uid"`
+}
+
+// GetBids4Uid4RootResponse is the response struct for api GetBids4Uid4Root
+type GetBids4Uid4RootResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetBids4Uid4RootRequest creates a request to invoke GetBids4Uid4Root API
+func CreateGetBids4Uid4RootRequest() (request *GetBids4Uid4RootRequest) {
+	request = &GetBids4Uid4RootRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetBids4Uid4Root", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetBids4Uid4RootResponse creates a response to parse from GetBids4Uid4Root response
+func CreateGetBids4Uid4RootResponse() (response *GetBids4Uid4RootResponse) {
+	response = &GetBids4Uid4RootResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_bind_ap4_umeng.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetBindAp4Umeng invokes the cloudwf.GetBindAp4Umeng API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbindap4umeng.html
+func (client *Client) GetBindAp4Umeng(request *GetBindAp4UmengRequest) (response *GetBindAp4UmengResponse, err error) {
+	response = CreateGetBindAp4UmengResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetBindAp4UmengWithChan invokes the cloudwf.GetBindAp4Umeng API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbindap4umeng.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBindAp4UmengWithChan(request *GetBindAp4UmengRequest) (<-chan *GetBindAp4UmengResponse, <-chan error) {
+	responseChan := make(chan *GetBindAp4UmengResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetBindAp4Umeng(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetBindAp4UmengWithCallback invokes the cloudwf.GetBindAp4Umeng API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getbindap4umeng.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetBindAp4UmengWithCallback(request *GetBindAp4UmengRequest, callback func(response *GetBindAp4UmengResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetBindAp4UmengResponse
+		var err error
+		defer close(result)
+		response, err = client.GetBindAp4Umeng(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetBindAp4UmengRequest is the request struct for api GetBindAp4Umeng
+type GetBindAp4UmengRequest struct {
+	*requests.RpcRequest
+}
+
+// GetBindAp4UmengResponse is the response struct for api GetBindAp4Umeng
+type GetBindAp4UmengResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetBindAp4UmengRequest creates a request to invoke GetBindAp4Umeng API
+func CreateGetBindAp4UmengRequest() (request *GetBindAp4UmengRequest) {
+	request = &GetBindAp4UmengRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetBindAp4Umeng", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetBindAp4UmengResponse creates a response to parse from GetBindAp4Umeng response
+func CreateGetBindAp4UmengResponse() (response *GetBindAp4UmengResponse) {
+	response = &GetBindAp4UmengResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cloudwf/get_crowd_list.go

@@ -0,0 +1,113 @@
+package cloudwf
+
+//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"
+)
+
+// GetCrowdList invokes the cloudwf.GetCrowdList API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getcrowdlist.html
+func (client *Client) GetCrowdList(request *GetCrowdListRequest) (response *GetCrowdListResponse, err error) {
+	response = CreateGetCrowdListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetCrowdListWithChan invokes the cloudwf.GetCrowdList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getcrowdlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCrowdListWithChan(request *GetCrowdListRequest) (<-chan *GetCrowdListResponse, <-chan error) {
+	responseChan := make(chan *GetCrowdListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetCrowdList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetCrowdListWithCallback invokes the cloudwf.GetCrowdList API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getcrowdlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCrowdListWithCallback(request *GetCrowdListRequest, callback func(response *GetCrowdListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetCrowdListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetCrowdList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetCrowdListRequest is the request struct for api GetCrowdList
+type GetCrowdListRequest struct {
+	*requests.RpcRequest
+	Gsid      requests.Integer `position:"Query" name:"Gsid"`
+	ClassType requests.Integer `position:"Query" name:"ClassType"`
+	GsType    string           `position:"Query" name:"GsType"`
+	EndTime   string           `position:"Query" name:"EndTime"`
+	Page      requests.Integer `position:"Query" name:"Page"`
+	StartTime string           `position:"Query" name:"StartTime"`
+	Per       requests.Integer `position:"Query" name:"Per"`
+	Bid       requests.Integer `position:"Query" name:"Bid"`
+}
+
+// GetCrowdListResponse is the response struct for api GetCrowdList
+type GetCrowdListResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetCrowdListRequest creates a request to invoke GetCrowdList API
+func CreateGetCrowdListRequest() (request *GetCrowdListRequest) {
+	request = &GetCrowdListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetCrowdList", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetCrowdListResponse creates a response to parse from GetCrowdList response
+func CreateGetCrowdListResponse() (response *GetCrowdListResponse) {
+	response = &GetCrowdListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_daily_statistic.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetDailyStatistic invokes the cloudwf.GetDailyStatistic API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getdailystatistic.html
+func (client *Client) GetDailyStatistic(request *GetDailyStatisticRequest) (response *GetDailyStatisticResponse, err error) {
+	response = CreateGetDailyStatisticResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetDailyStatisticWithChan invokes the cloudwf.GetDailyStatistic API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getdailystatistic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetDailyStatisticWithChan(request *GetDailyStatisticRequest) (<-chan *GetDailyStatisticResponse, <-chan error) {
+	responseChan := make(chan *GetDailyStatisticResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetDailyStatistic(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetDailyStatisticWithCallback invokes the cloudwf.GetDailyStatistic API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getdailystatistic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetDailyStatisticWithCallback(request *GetDailyStatisticRequest, callback func(response *GetDailyStatisticResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetDailyStatisticResponse
+		var err error
+		defer close(result)
+		response, err = client.GetDailyStatistic(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetDailyStatisticRequest is the request struct for api GetDailyStatistic
+type GetDailyStatisticRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// GetDailyStatisticResponse is the response struct for api GetDailyStatistic
+type GetDailyStatisticResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetDailyStatisticRequest creates a request to invoke GetDailyStatistic API
+func CreateGetDailyStatisticRequest() (request *GetDailyStatisticRequest) {
+	request = &GetDailyStatisticRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetDailyStatistic", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetDailyStatisticResponse creates a response to parse from GetDailyStatistic response
+func CreateGetDailyStatisticResponse() (response *GetDailyStatisticResponse) {
+	response = &GetDailyStatisticResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_device_info_by_mac.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetDeviceInfoByMac invokes the cloudwf.GetDeviceInfoByMac API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getdeviceinfobymac.html
+func (client *Client) GetDeviceInfoByMac(request *GetDeviceInfoByMacRequest) (response *GetDeviceInfoByMacResponse, err error) {
+	response = CreateGetDeviceInfoByMacResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetDeviceInfoByMacWithChan invokes the cloudwf.GetDeviceInfoByMac API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getdeviceinfobymac.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetDeviceInfoByMacWithChan(request *GetDeviceInfoByMacRequest) (<-chan *GetDeviceInfoByMacResponse, <-chan error) {
+	responseChan := make(chan *GetDeviceInfoByMacResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetDeviceInfoByMac(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetDeviceInfoByMacWithCallback invokes the cloudwf.GetDeviceInfoByMac API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getdeviceinfobymac.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetDeviceInfoByMacWithCallback(request *GetDeviceInfoByMacRequest, callback func(response *GetDeviceInfoByMacResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetDeviceInfoByMacResponse
+		var err error
+		defer close(result)
+		response, err = client.GetDeviceInfoByMac(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetDeviceInfoByMacRequest is the request struct for api GetDeviceInfoByMac
+type GetDeviceInfoByMacRequest struct {
+	*requests.RpcRequest
+	Mac string `position:"Query" name:"Mac"`
+}
+
+// GetDeviceInfoByMacResponse is the response struct for api GetDeviceInfoByMac
+type GetDeviceInfoByMacResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetDeviceInfoByMacRequest creates a request to invoke GetDeviceInfoByMac API
+func CreateGetDeviceInfoByMacRequest() (request *GetDeviceInfoByMacRequest) {
+	request = &GetDeviceInfoByMacRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetDeviceInfoByMac", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetDeviceInfoByMacResponse creates a response to parse from GetDeviceInfoByMac response
+func CreateGetDeviceInfoByMacResponse() (response *GetDeviceInfoByMacResponse) {
+	response = &GetDeviceInfoByMacResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_group_ap_change_name_template.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetGroupApChangeNameTemplate invokes the cloudwf.GetGroupApChangeNameTemplate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapchangenametemplate.html
+func (client *Client) GetGroupApChangeNameTemplate(request *GetGroupApChangeNameTemplateRequest) (response *GetGroupApChangeNameTemplateResponse, err error) {
+	response = CreateGetGroupApChangeNameTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetGroupApChangeNameTemplateWithChan invokes the cloudwf.GetGroupApChangeNameTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapchangenametemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApChangeNameTemplateWithChan(request *GetGroupApChangeNameTemplateRequest) (<-chan *GetGroupApChangeNameTemplateResponse, <-chan error) {
+	responseChan := make(chan *GetGroupApChangeNameTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetGroupApChangeNameTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetGroupApChangeNameTemplateWithCallback invokes the cloudwf.GetGroupApChangeNameTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapchangenametemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApChangeNameTemplateWithCallback(request *GetGroupApChangeNameTemplateRequest, callback func(response *GetGroupApChangeNameTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetGroupApChangeNameTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetGroupApChangeNameTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetGroupApChangeNameTemplateRequest is the request struct for api GetGroupApChangeNameTemplate
+type GetGroupApChangeNameTemplateRequest struct {
+	*requests.RpcRequest
+}
+
+// GetGroupApChangeNameTemplateResponse is the response struct for api GetGroupApChangeNameTemplate
+type GetGroupApChangeNameTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetGroupApChangeNameTemplateRequest creates a request to invoke GetGroupApChangeNameTemplate API
+func CreateGetGroupApChangeNameTemplateRequest() (request *GetGroupApChangeNameTemplateRequest) {
+	request = &GetGroupApChangeNameTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetGroupApChangeNameTemplate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetGroupApChangeNameTemplateResponse creates a response to parse from GetGroupApChangeNameTemplate response
+func CreateGetGroupApChangeNameTemplateResponse() (response *GetGroupApChangeNameTemplateResponse) {
+	response = &GetGroupApChangeNameTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_group_ap_radio_config_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetGroupApRadioConfigProgress invokes the cloudwf.GetGroupApRadioConfigProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioconfigprogress.html
+func (client *Client) GetGroupApRadioConfigProgress(request *GetGroupApRadioConfigProgressRequest) (response *GetGroupApRadioConfigProgressResponse, err error) {
+	response = CreateGetGroupApRadioConfigProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetGroupApRadioConfigProgressWithChan invokes the cloudwf.GetGroupApRadioConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRadioConfigProgressWithChan(request *GetGroupApRadioConfigProgressRequest) (<-chan *GetGroupApRadioConfigProgressResponse, <-chan error) {
+	responseChan := make(chan *GetGroupApRadioConfigProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetGroupApRadioConfigProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetGroupApRadioConfigProgressWithCallback invokes the cloudwf.GetGroupApRadioConfigProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioconfigprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRadioConfigProgressWithCallback(request *GetGroupApRadioConfigProgressRequest, callback func(response *GetGroupApRadioConfigProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetGroupApRadioConfigProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetGroupApRadioConfigProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetGroupApRadioConfigProgressRequest is the request struct for api GetGroupApRadioConfigProgress
+type GetGroupApRadioConfigProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetGroupApRadioConfigProgressResponse is the response struct for api GetGroupApRadioConfigProgress
+type GetGroupApRadioConfigProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetGroupApRadioConfigProgressRequest creates a request to invoke GetGroupApRadioConfigProgress API
+func CreateGetGroupApRadioConfigProgressRequest() (request *GetGroupApRadioConfigProgressRequest) {
+	request = &GetGroupApRadioConfigProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetGroupApRadioConfigProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetGroupApRadioConfigProgressResponse creates a response to parse from GetGroupApRadioConfigProgress response
+func CreateGetGroupApRadioConfigProgressResponse() (response *GetGroupApRadioConfigProgressResponse) {
+	response = &GetGroupApRadioConfigProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_group_ap_radio_config_template.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetGroupApRadioConfigTemplate invokes the cloudwf.GetGroupApRadioConfigTemplate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioconfigtemplate.html
+func (client *Client) GetGroupApRadioConfigTemplate(request *GetGroupApRadioConfigTemplateRequest) (response *GetGroupApRadioConfigTemplateResponse, err error) {
+	response = CreateGetGroupApRadioConfigTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetGroupApRadioConfigTemplateWithChan invokes the cloudwf.GetGroupApRadioConfigTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioconfigtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRadioConfigTemplateWithChan(request *GetGroupApRadioConfigTemplateRequest) (<-chan *GetGroupApRadioConfigTemplateResponse, <-chan error) {
+	responseChan := make(chan *GetGroupApRadioConfigTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetGroupApRadioConfigTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetGroupApRadioConfigTemplateWithCallback invokes the cloudwf.GetGroupApRadioConfigTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioconfigtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRadioConfigTemplateWithCallback(request *GetGroupApRadioConfigTemplateRequest, callback func(response *GetGroupApRadioConfigTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetGroupApRadioConfigTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetGroupApRadioConfigTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetGroupApRadioConfigTemplateRequest is the request struct for api GetGroupApRadioConfigTemplate
+type GetGroupApRadioConfigTemplateRequest struct {
+	*requests.RpcRequest
+}
+
+// GetGroupApRadioConfigTemplateResponse is the response struct for api GetGroupApRadioConfigTemplate
+type GetGroupApRadioConfigTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetGroupApRadioConfigTemplateRequest creates a request to invoke GetGroupApRadioConfigTemplate API
+func CreateGetGroupApRadioConfigTemplateRequest() (request *GetGroupApRadioConfigTemplateRequest) {
+	request = &GetGroupApRadioConfigTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetGroupApRadioConfigTemplate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetGroupApRadioConfigTemplateResponse creates a response to parse from GetGroupApRadioConfigTemplate response
+func CreateGetGroupApRadioConfigTemplateResponse() (response *GetGroupApRadioConfigTemplateResponse) {
+	response = &GetGroupApRadioConfigTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_group_ap_radio_onoff_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetGroupApRadioOnoffProgress invokes the cloudwf.GetGroupApRadioOnoffProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioonoffprogress.html
+func (client *Client) GetGroupApRadioOnoffProgress(request *GetGroupApRadioOnoffProgressRequest) (response *GetGroupApRadioOnoffProgressResponse, err error) {
+	response = CreateGetGroupApRadioOnoffProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetGroupApRadioOnoffProgressWithChan invokes the cloudwf.GetGroupApRadioOnoffProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioonoffprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRadioOnoffProgressWithChan(request *GetGroupApRadioOnoffProgressRequest) (<-chan *GetGroupApRadioOnoffProgressResponse, <-chan error) {
+	responseChan := make(chan *GetGroupApRadioOnoffProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetGroupApRadioOnoffProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetGroupApRadioOnoffProgressWithCallback invokes the cloudwf.GetGroupApRadioOnoffProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupapradioonoffprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRadioOnoffProgressWithCallback(request *GetGroupApRadioOnoffProgressRequest, callback func(response *GetGroupApRadioOnoffProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetGroupApRadioOnoffProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetGroupApRadioOnoffProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetGroupApRadioOnoffProgressRequest is the request struct for api GetGroupApRadioOnoffProgress
+type GetGroupApRadioOnoffProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetGroupApRadioOnoffProgressResponse is the response struct for api GetGroupApRadioOnoffProgress
+type GetGroupApRadioOnoffProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetGroupApRadioOnoffProgressRequest creates a request to invoke GetGroupApRadioOnoffProgress API
+func CreateGetGroupApRadioOnoffProgressRequest() (request *GetGroupApRadioOnoffProgressRequest) {
+	request = &GetGroupApRadioOnoffProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetGroupApRadioOnoffProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetGroupApRadioOnoffProgressResponse creates a response to parse from GetGroupApRadioOnoffProgress response
+func CreateGetGroupApRadioOnoffProgressResponse() (response *GetGroupApRadioOnoffProgressResponse) {
+	response = &GetGroupApRadioOnoffProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_group_ap_repair_progress.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetGroupApRepairProgress invokes the cloudwf.GetGroupApRepairProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupaprepairprogress.html
+func (client *Client) GetGroupApRepairProgress(request *GetGroupApRepairProgressRequest) (response *GetGroupApRepairProgressResponse, err error) {
+	response = CreateGetGroupApRepairProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetGroupApRepairProgressWithChan invokes the cloudwf.GetGroupApRepairProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupaprepairprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRepairProgressWithChan(request *GetGroupApRepairProgressRequest) (<-chan *GetGroupApRepairProgressResponse, <-chan error) {
+	responseChan := make(chan *GetGroupApRepairProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetGroupApRepairProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetGroupApRepairProgressWithCallback invokes the cloudwf.GetGroupApRepairProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getgroupaprepairprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetGroupApRepairProgressWithCallback(request *GetGroupApRepairProgressRequest, callback func(response *GetGroupApRepairProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetGroupApRepairProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetGroupApRepairProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetGroupApRepairProgressRequest is the request struct for api GetGroupApRepairProgress
+type GetGroupApRepairProgressRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetGroupApRepairProgressResponse is the response struct for api GetGroupApRepairProgress
+type GetGroupApRepairProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetGroupApRepairProgressRequest creates a request to invoke GetGroupApRepairProgress API
+func CreateGetGroupApRepairProgressRequest() (request *GetGroupApRepairProgressRequest) {
+	request = &GetGroupApRepairProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetGroupApRepairProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetGroupApRepairProgressResponse creates a response to parse from GetGroupApRepairProgress response
+func CreateGetGroupApRepairProgressResponse() (response *GetGroupApRepairProgressResponse) {
+	response = &GetGroupApRepairProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_instance_by_shop.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetInstanceByShop invokes the cloudwf.GetInstanceByShop API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getinstancebyshop.html
+func (client *Client) GetInstanceByShop(request *GetInstanceByShopRequest) (response *GetInstanceByShopResponse, err error) {
+	response = CreateGetInstanceByShopResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceByShopWithChan invokes the cloudwf.GetInstanceByShop API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getinstancebyshop.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceByShopWithChan(request *GetInstanceByShopRequest) (<-chan *GetInstanceByShopResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceByShopResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceByShop(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceByShopWithCallback invokes the cloudwf.GetInstanceByShop API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getinstancebyshop.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceByShopWithCallback(request *GetInstanceByShopRequest, callback func(response *GetInstanceByShopResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceByShopResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceByShop(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceByShopRequest is the request struct for api GetInstanceByShop
+type GetInstanceByShopRequest struct {
+	*requests.RpcRequest
+	ShopId requests.Integer `position:"Query" name:"ShopId"`
+}
+
+// GetInstanceByShopResponse is the response struct for api GetInstanceByShop
+type GetInstanceByShopResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetInstanceByShopRequest creates a request to invoke GetInstanceByShop API
+func CreateGetInstanceByShopRequest() (request *GetInstanceByShopRequest) {
+	request = &GetInstanceByShopRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetInstanceByShop", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetInstanceByShopResponse creates a response to parse from GetInstanceByShop response
+func CreateGetInstanceByShopResponse() (response *GetInstanceByShopResponse) {
+	response = &GetInstanceByShopResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_latest_ap_statistic.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetLatestApStatistic invokes the cloudwf.GetLatestApStatistic API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getlatestapstatistic.html
+func (client *Client) GetLatestApStatistic(request *GetLatestApStatisticRequest) (response *GetLatestApStatisticResponse, err error) {
+	response = CreateGetLatestApStatisticResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetLatestApStatisticWithChan invokes the cloudwf.GetLatestApStatistic API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getlatestapstatistic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetLatestApStatisticWithChan(request *GetLatestApStatisticRequest) (<-chan *GetLatestApStatisticResponse, <-chan error) {
+	responseChan := make(chan *GetLatestApStatisticResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetLatestApStatistic(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetLatestApStatisticWithCallback invokes the cloudwf.GetLatestApStatistic API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getlatestapstatistic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetLatestApStatisticWithCallback(request *GetLatestApStatisticRequest, callback func(response *GetLatestApStatisticResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetLatestApStatisticResponse
+		var err error
+		defer close(result)
+		response, err = client.GetLatestApStatistic(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetLatestApStatisticRequest is the request struct for api GetLatestApStatistic
+type GetLatestApStatisticRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// GetLatestApStatisticResponse is the response struct for api GetLatestApStatistic
+type GetLatestApStatisticResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetLatestApStatisticRequest creates a request to invoke GetLatestApStatistic API
+func CreateGetLatestApStatisticRequest() (request *GetLatestApStatisticRequest) {
+	request = &GetLatestApStatisticRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetLatestApStatistic", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetLatestApStatisticResponse creates a response to parse from GetLatestApStatistic response
+func CreateGetLatestApStatisticResponse() (response *GetLatestApStatisticResponse) {
+	response = &GetLatestApStatisticResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_latest_sta_statistic.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetLatestStaStatistic invokes the cloudwf.GetLatestStaStatistic API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getlateststastatistic.html
+func (client *Client) GetLatestStaStatistic(request *GetLatestStaStatisticRequest) (response *GetLatestStaStatisticResponse, err error) {
+	response = CreateGetLatestStaStatisticResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetLatestStaStatisticWithChan invokes the cloudwf.GetLatestStaStatistic API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getlateststastatistic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetLatestStaStatisticWithChan(request *GetLatestStaStatisticRequest) (<-chan *GetLatestStaStatisticResponse, <-chan error) {
+	responseChan := make(chan *GetLatestStaStatisticResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetLatestStaStatistic(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetLatestStaStatisticWithCallback invokes the cloudwf.GetLatestStaStatistic API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getlateststastatistic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetLatestStaStatisticWithCallback(request *GetLatestStaStatisticRequest, callback func(response *GetLatestStaStatisticResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetLatestStaStatisticResponse
+		var err error
+		defer close(result)
+		response, err = client.GetLatestStaStatistic(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetLatestStaStatisticRequest is the request struct for api GetLatestStaStatistic
+type GetLatestStaStatisticRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// GetLatestStaStatisticResponse is the response struct for api GetLatestStaStatistic
+type GetLatestStaStatisticResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetLatestStaStatisticRequest creates a request to invoke GetLatestStaStatistic API
+func CreateGetLatestStaStatisticRequest() (request *GetLatestStaStatisticRequest) {
+	request = &GetLatestStaStatisticRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetLatestStaStatistic", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetLatestStaStatisticResponse creates a response to parse from GetLatestStaStatistic response
+func CreateGetLatestStaStatisticResponse() (response *GetLatestStaStatisticResponse) {
+	response = &GetLatestStaStatisticResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_map_url.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetMapUrl invokes the cloudwf.GetMapUrl API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getmapurl.html
+func (client *Client) GetMapUrl(request *GetMapUrlRequest) (response *GetMapUrlResponse, err error) {
+	response = CreateGetMapUrlResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetMapUrlWithChan invokes the cloudwf.GetMapUrl API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getmapurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetMapUrlWithChan(request *GetMapUrlRequest) (<-chan *GetMapUrlResponse, <-chan error) {
+	responseChan := make(chan *GetMapUrlResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetMapUrl(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetMapUrlWithCallback invokes the cloudwf.GetMapUrl API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getmapurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetMapUrlWithCallback(request *GetMapUrlRequest, callback func(response *GetMapUrlResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetMapUrlResponse
+		var err error
+		defer close(result)
+		response, err = client.GetMapUrl(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetMapUrlRequest is the request struct for api GetMapUrl
+type GetMapUrlRequest struct {
+	*requests.RpcRequest
+	MapId requests.Integer `position:"Query" name:"MapId"`
+}
+
+// GetMapUrlResponse is the response struct for api GetMapUrl
+type GetMapUrlResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetMapUrlRequest creates a request to invoke GetMapUrl API
+func CreateGetMapUrlRequest() (request *GetMapUrlRequest) {
+	request = &GetMapUrlRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetMapUrl", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetMapUrlResponse creates a response to parse from GetMapUrl response
+func CreateGetMapUrlResponse() (response *GetMapUrlResponse) {
+	response = &GetMapUrlResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cloudwf/get_online_ap_time_ser.go

@@ -0,0 +1,113 @@
+package cloudwf
+
+//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"
+)
+
+// GetOnlineApTimeSer invokes the cloudwf.GetOnlineApTimeSer API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getonlineaptimeser.html
+func (client *Client) GetOnlineApTimeSer(request *GetOnlineApTimeSerRequest) (response *GetOnlineApTimeSerResponse, err error) {
+	response = CreateGetOnlineApTimeSerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetOnlineApTimeSerWithChan invokes the cloudwf.GetOnlineApTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getonlineaptimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetOnlineApTimeSerWithChan(request *GetOnlineApTimeSerRequest) (<-chan *GetOnlineApTimeSerResponse, <-chan error) {
+	responseChan := make(chan *GetOnlineApTimeSerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetOnlineApTimeSer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetOnlineApTimeSerWithCallback invokes the cloudwf.GetOnlineApTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getonlineaptimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetOnlineApTimeSerWithCallback(request *GetOnlineApTimeSerRequest, callback func(response *GetOnlineApTimeSerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetOnlineApTimeSerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetOnlineApTimeSer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetOnlineApTimeSerRequest is the request struct for api GetOnlineApTimeSer
+type GetOnlineApTimeSerRequest struct {
+	*requests.RpcRequest
+	ZoomStart requests.Integer `position:"Query" name:"ZoomStart"`
+	CompanyId requests.Integer `position:"Query" name:"CompanyId"`
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+	Start     requests.Integer `position:"Query" name:"Start"`
+	ZoomEnd   requests.Integer `position:"Query" name:"ZoomEnd"`
+	End       requests.Integer `position:"Query" name:"End"`
+}
+
+// GetOnlineApTimeSerResponse is the response struct for api GetOnlineApTimeSer
+type GetOnlineApTimeSerResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetOnlineApTimeSerRequest creates a request to invoke GetOnlineApTimeSer API
+func CreateGetOnlineApTimeSerRequest() (request *GetOnlineApTimeSerRequest) {
+	request = &GetOnlineApTimeSerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetOnlineApTimeSer", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetOnlineApTimeSerResponse creates a response to parse from GetOnlineApTimeSer response
+func CreateGetOnlineApTimeSerResponse() (response *GetOnlineApTimeSerResponse) {
+	response = &GetOnlineApTimeSerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cloudwf/get_online_sta_time_ser.go

@@ -0,0 +1,113 @@
+package cloudwf
+
+//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"
+)
+
+// GetOnlineStaTimeSer invokes the cloudwf.GetOnlineStaTimeSer API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getonlinestatimeser.html
+func (client *Client) GetOnlineStaTimeSer(request *GetOnlineStaTimeSerRequest) (response *GetOnlineStaTimeSerResponse, err error) {
+	response = CreateGetOnlineStaTimeSerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetOnlineStaTimeSerWithChan invokes the cloudwf.GetOnlineStaTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getonlinestatimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetOnlineStaTimeSerWithChan(request *GetOnlineStaTimeSerRequest) (<-chan *GetOnlineStaTimeSerResponse, <-chan error) {
+	responseChan := make(chan *GetOnlineStaTimeSerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetOnlineStaTimeSer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetOnlineStaTimeSerWithCallback invokes the cloudwf.GetOnlineStaTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getonlinestatimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetOnlineStaTimeSerWithCallback(request *GetOnlineStaTimeSerRequest, callback func(response *GetOnlineStaTimeSerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetOnlineStaTimeSerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetOnlineStaTimeSer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetOnlineStaTimeSerRequest is the request struct for api GetOnlineStaTimeSer
+type GetOnlineStaTimeSerRequest struct {
+	*requests.RpcRequest
+	ZoomStart requests.Integer `position:"Query" name:"ZoomStart"`
+	CompanyId requests.Integer `position:"Query" name:"CompanyId"`
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+	Start     requests.Integer `position:"Query" name:"Start"`
+	ZoomEnd   requests.Integer `position:"Query" name:"ZoomEnd"`
+	End       requests.Integer `position:"Query" name:"End"`
+}
+
+// GetOnlineStaTimeSerResponse is the response struct for api GetOnlineStaTimeSer
+type GetOnlineStaTimeSerResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetOnlineStaTimeSerRequest creates a request to invoke GetOnlineStaTimeSer API
+func CreateGetOnlineStaTimeSerRequest() (request *GetOnlineStaTimeSerRequest) {
+	request = &GetOnlineStaTimeSerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetOnlineStaTimeSer", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetOnlineStaTimeSerResponse creates a response to parse from GetOnlineStaTimeSer response
+func CreateGetOnlineStaTimeSerResponse() (response *GetOnlineStaTimeSerResponse) {
+	response = &GetOnlineStaTimeSerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_oss_server_sign.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetOssServerSign invokes the cloudwf.GetOssServerSign API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getossserversign.html
+func (client *Client) GetOssServerSign(request *GetOssServerSignRequest) (response *GetOssServerSignResponse, err error) {
+	response = CreateGetOssServerSignResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetOssServerSignWithChan invokes the cloudwf.GetOssServerSign API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getossserversign.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetOssServerSignWithChan(request *GetOssServerSignRequest) (<-chan *GetOssServerSignResponse, <-chan error) {
+	responseChan := make(chan *GetOssServerSignResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetOssServerSign(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetOssServerSignWithCallback invokes the cloudwf.GetOssServerSign API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getossserversign.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetOssServerSignWithCallback(request *GetOssServerSignRequest, callback func(response *GetOssServerSignResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetOssServerSignResponse
+		var err error
+		defer close(result)
+		response, err = client.GetOssServerSign(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetOssServerSignRequest is the request struct for api GetOssServerSign
+type GetOssServerSignRequest struct {
+	*requests.RpcRequest
+	DirType requests.Integer `position:"Query" name:"DirType"`
+}
+
+// GetOssServerSignResponse is the response struct for api GetOssServerSign
+type GetOssServerSignResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetOssServerSignRequest creates a request to invoke GetOssServerSign API
+func CreateGetOssServerSignRequest() (request *GetOssServerSignRequest) {
+	request = &GetOssServerSignRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetOssServerSign", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetOssServerSignResponse creates a response to parse from GetOssServerSign response
+func CreateGetOssServerSignResponse() (response *GetOssServerSignResponse) {
+	response = &GetOssServerSignResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_page_config_template.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetPageConfigTemplate invokes the cloudwf.GetPageConfigTemplate API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getpageconfigtemplate.html
+func (client *Client) GetPageConfigTemplate(request *GetPageConfigTemplateRequest) (response *GetPageConfigTemplateResponse, err error) {
+	response = CreateGetPageConfigTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPageConfigTemplateWithChan invokes the cloudwf.GetPageConfigTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getpageconfigtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPageConfigTemplateWithChan(request *GetPageConfigTemplateRequest) (<-chan *GetPageConfigTemplateResponse, <-chan error) {
+	responseChan := make(chan *GetPageConfigTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPageConfigTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPageConfigTemplateWithCallback invokes the cloudwf.GetPageConfigTemplate API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getpageconfigtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPageConfigTemplateWithCallback(request *GetPageConfigTemplateRequest, callback func(response *GetPageConfigTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPageConfigTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPageConfigTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPageConfigTemplateRequest is the request struct for api GetPageConfigTemplate
+type GetPageConfigTemplateRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetPageConfigTemplateResponse is the response struct for api GetPageConfigTemplate
+type GetPageConfigTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetPageConfigTemplateRequest creates a request to invoke GetPageConfigTemplate API
+func CreateGetPageConfigTemplateRequest() (request *GetPageConfigTemplateRequest) {
+	request = &GetPageConfigTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetPageConfigTemplate", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetPageConfigTemplateResponse creates a response to parse from GetPageConfigTemplate response
+func CreateGetPageConfigTemplateResponse() (response *GetPageConfigTemplateResponse) {
+	response = &GetPageConfigTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_page_properties.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetPageProperties invokes the cloudwf.GetPageProperties API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getpageproperties.html
+func (client *Client) GetPageProperties(request *GetPagePropertiesRequest) (response *GetPagePropertiesResponse, err error) {
+	response = CreateGetPagePropertiesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPagePropertiesWithChan invokes the cloudwf.GetPageProperties API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getpageproperties.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPagePropertiesWithChan(request *GetPagePropertiesRequest) (<-chan *GetPagePropertiesResponse, <-chan error) {
+	responseChan := make(chan *GetPagePropertiesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPageProperties(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPagePropertiesWithCallback invokes the cloudwf.GetPageProperties API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getpageproperties.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPagePropertiesWithCallback(request *GetPagePropertiesRequest, callback func(response *GetPagePropertiesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPagePropertiesResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPageProperties(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPagePropertiesRequest is the request struct for api GetPageProperties
+type GetPagePropertiesRequest struct {
+	*requests.RpcRequest
+}
+
+// GetPagePropertiesResponse is the response struct for api GetPageProperties
+type GetPagePropertiesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetPagePropertiesRequest creates a request to invoke GetPageProperties API
+func CreateGetPagePropertiesRequest() (request *GetPagePropertiesRequest) {
+	request = &GetPagePropertiesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetPageProperties", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetPagePropertiesResponse creates a response to parse from GetPageProperties response
+func CreateGetPagePropertiesResponse() (response *GetPagePropertiesResponse) {
+	response = &GetPagePropertiesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/get_portal_temp_detail.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// GetPortalTempDetail invokes the cloudwf.GetPortalTempDetail API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getportaltempdetail.html
+func (client *Client) GetPortalTempDetail(request *GetPortalTempDetailRequest) (response *GetPortalTempDetailResponse, err error) {
+	response = CreateGetPortalTempDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPortalTempDetailWithChan invokes the cloudwf.GetPortalTempDetail API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getportaltempdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPortalTempDetailWithChan(request *GetPortalTempDetailRequest) (<-chan *GetPortalTempDetailResponse, <-chan error) {
+	responseChan := make(chan *GetPortalTempDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPortalTempDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPortalTempDetailWithCallback invokes the cloudwf.GetPortalTempDetail API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getportaltempdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPortalTempDetailWithCallback(request *GetPortalTempDetailRequest, callback func(response *GetPortalTempDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPortalTempDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPortalTempDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPortalTempDetailRequest is the request struct for api GetPortalTempDetail
+type GetPortalTempDetailRequest struct {
+	*requests.RpcRequest
+	Id       requests.Integer `position:"Query" name:"Id"`
+	UniqueId string           `position:"Query" name:"UniqueId"`
+}
+
+// GetPortalTempDetailResponse is the response struct for api GetPortalTempDetail
+type GetPortalTempDetailResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetPortalTempDetailRequest creates a request to invoke GetPortalTempDetail API
+func CreateGetPortalTempDetailRequest() (request *GetPortalTempDetailRequest) {
+	request = &GetPortalTempDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetPortalTempDetail", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetPortalTempDetailResponse creates a response to parse from GetPortalTempDetail response
+func CreateGetPortalTempDetailResponse() (response *GetPortalTempDetailResponse) {
+	response = &GetPortalTempDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_probe_data_subscriber_config.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetProbeDataSubscriberConfig invokes the cloudwf.GetProbeDataSubscriberConfig API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getprobedatasubscriberconfig.html
+func (client *Client) GetProbeDataSubscriberConfig(request *GetProbeDataSubscriberConfigRequest) (response *GetProbeDataSubscriberConfigResponse, err error) {
+	response = CreateGetProbeDataSubscriberConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetProbeDataSubscriberConfigWithChan invokes the cloudwf.GetProbeDataSubscriberConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getprobedatasubscriberconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProbeDataSubscriberConfigWithChan(request *GetProbeDataSubscriberConfigRequest) (<-chan *GetProbeDataSubscriberConfigResponse, <-chan error) {
+	responseChan := make(chan *GetProbeDataSubscriberConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetProbeDataSubscriberConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetProbeDataSubscriberConfigWithCallback invokes the cloudwf.GetProbeDataSubscriberConfig API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getprobedatasubscriberconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProbeDataSubscriberConfigWithCallback(request *GetProbeDataSubscriberConfigRequest, callback func(response *GetProbeDataSubscriberConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetProbeDataSubscriberConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetProbeDataSubscriberConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetProbeDataSubscriberConfigRequest is the request struct for api GetProbeDataSubscriberConfig
+type GetProbeDataSubscriberConfigRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetProbeDataSubscriberConfigResponse is the response struct for api GetProbeDataSubscriberConfig
+type GetProbeDataSubscriberConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetProbeDataSubscriberConfigRequest creates a request to invoke GetProbeDataSubscriberConfig API
+func CreateGetProbeDataSubscriberConfigRequest() (request *GetProbeDataSubscriberConfigRequest) {
+	request = &GetProbeDataSubscriberConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetProbeDataSubscriberConfig", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetProbeDataSubscriberConfigResponse creates a response to parse from GetProbeDataSubscriberConfig response
+func CreateGetProbeDataSubscriberConfigResponse() (response *GetProbeDataSubscriberConfigResponse) {
+	response = &GetProbeDataSubscriberConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_radio_run_history_time_ser.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetRadioRunHistoryTimeSer invokes the cloudwf.GetRadioRunHistoryTimeSer API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getradiorunhistorytimeser.html
+func (client *Client) GetRadioRunHistoryTimeSer(request *GetRadioRunHistoryTimeSerRequest) (response *GetRadioRunHistoryTimeSerResponse, err error) {
+	response = CreateGetRadioRunHistoryTimeSerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRadioRunHistoryTimeSerWithChan invokes the cloudwf.GetRadioRunHistoryTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getradiorunhistorytimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRadioRunHistoryTimeSerWithChan(request *GetRadioRunHistoryTimeSerRequest) (<-chan *GetRadioRunHistoryTimeSerResponse, <-chan error) {
+	responseChan := make(chan *GetRadioRunHistoryTimeSerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRadioRunHistoryTimeSer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRadioRunHistoryTimeSerWithCallback invokes the cloudwf.GetRadioRunHistoryTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getradiorunhistorytimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRadioRunHistoryTimeSerWithCallback(request *GetRadioRunHistoryTimeSerRequest, callback func(response *GetRadioRunHistoryTimeSerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRadioRunHistoryTimeSerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRadioRunHistoryTimeSer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRadioRunHistoryTimeSerRequest is the request struct for api GetRadioRunHistoryTimeSer
+type GetRadioRunHistoryTimeSerRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetRadioRunHistoryTimeSerResponse is the response struct for api GetRadioRunHistoryTimeSer
+type GetRadioRunHistoryTimeSerResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetRadioRunHistoryTimeSerRequest creates a request to invoke GetRadioRunHistoryTimeSer API
+func CreateGetRadioRunHistoryTimeSerRequest() (request *GetRadioRunHistoryTimeSerRequest) {
+	request = &GetRadioRunHistoryTimeSerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetRadioRunHistoryTimeSer", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetRadioRunHistoryTimeSerResponse creates a response to parse from GetRadioRunHistoryTimeSer response
+func CreateGetRadioRunHistoryTimeSerResponse() (response *GetRadioRunHistoryTimeSerResponse) {
+	response = &GetRadioRunHistoryTimeSerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_scan_mode.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetScanMode invokes the cloudwf.GetScanMode API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getscanmode.html
+func (client *Client) GetScanMode(request *GetScanModeRequest) (response *GetScanModeResponse, err error) {
+	response = CreateGetScanModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetScanModeWithChan invokes the cloudwf.GetScanMode API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getscanmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetScanModeWithChan(request *GetScanModeRequest) (<-chan *GetScanModeResponse, <-chan error) {
+	responseChan := make(chan *GetScanModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetScanMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetScanModeWithCallback invokes the cloudwf.GetScanMode API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getscanmode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetScanModeWithCallback(request *GetScanModeRequest, callback func(response *GetScanModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetScanModeResponse
+		var err error
+		defer close(result)
+		response, err = client.GetScanMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetScanModeRequest is the request struct for api GetScanMode
+type GetScanModeRequest struct {
+	*requests.RpcRequest
+	MacList *[]string `position:"Query" name:"MacList"  type:"Repeated"`
+}
+
+// GetScanModeResponse is the response struct for api GetScanMode
+type GetScanModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetScanModeRequest creates a request to invoke GetScanMode API
+func CreateGetScanModeRequest() (request *GetScanModeRequest) {
+	request = &GetScanModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetScanMode", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetScanModeResponse creates a response to parse from GetScanMode response
+func CreateGetScanModeResponse() (response *GetScanModeResponse) {
+	response = &GetScanModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cloudwf/get_scan_probe_time_ser.go

@@ -0,0 +1,113 @@
+package cloudwf
+
+//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"
+)
+
+// GetScanProbeTimeSer invokes the cloudwf.GetScanProbeTimeSer API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getscanprobetimeser.html
+func (client *Client) GetScanProbeTimeSer(request *GetScanProbeTimeSerRequest) (response *GetScanProbeTimeSerResponse, err error) {
+	response = CreateGetScanProbeTimeSerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetScanProbeTimeSerWithChan invokes the cloudwf.GetScanProbeTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getscanprobetimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetScanProbeTimeSerWithChan(request *GetScanProbeTimeSerRequest) (<-chan *GetScanProbeTimeSerResponse, <-chan error) {
+	responseChan := make(chan *GetScanProbeTimeSerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetScanProbeTimeSer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetScanProbeTimeSerWithCallback invokes the cloudwf.GetScanProbeTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getscanprobetimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetScanProbeTimeSerWithCallback(request *GetScanProbeTimeSerRequest, callback func(response *GetScanProbeTimeSerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetScanProbeTimeSerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetScanProbeTimeSer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetScanProbeTimeSerRequest is the request struct for api GetScanProbeTimeSer
+type GetScanProbeTimeSerRequest struct {
+	*requests.RpcRequest
+	ZoomStart requests.Integer `position:"Query" name:"ZoomStart"`
+	CompanyId requests.Integer `position:"Query" name:"CompanyId"`
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+	Start     requests.Integer `position:"Query" name:"Start"`
+	ZoomEnd   requests.Integer `position:"Query" name:"ZoomEnd"`
+	End       requests.Integer `position:"Query" name:"End"`
+}
+
+// GetScanProbeTimeSerResponse is the response struct for api GetScanProbeTimeSer
+type GetScanProbeTimeSerResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetScanProbeTimeSerRequest creates a request to invoke GetScanProbeTimeSer API
+func CreateGetScanProbeTimeSerRequest() (request *GetScanProbeTimeSerRequest) {
+	request = &GetScanProbeTimeSerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetScanProbeTimeSer", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetScanProbeTimeSerResponse creates a response to parse from GetScanProbeTimeSer response
+func CreateGetScanProbeTimeSerResponse() (response *GetScanProbeTimeSerResponse) {
+	response = &GetScanProbeTimeSerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_send_command_by_mac_progress.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetSendCommandByMacProgress invokes the cloudwf.GetSendCommandByMacProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsendcommandbymacprogress.html
+func (client *Client) GetSendCommandByMacProgress(request *GetSendCommandByMacProgressRequest) (response *GetSendCommandByMacProgressResponse, err error) {
+	response = CreateGetSendCommandByMacProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSendCommandByMacProgressWithChan invokes the cloudwf.GetSendCommandByMacProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsendcommandbymacprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSendCommandByMacProgressWithChan(request *GetSendCommandByMacProgressRequest) (<-chan *GetSendCommandByMacProgressResponse, <-chan error) {
+	responseChan := make(chan *GetSendCommandByMacProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSendCommandByMacProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSendCommandByMacProgressWithCallback invokes the cloudwf.GetSendCommandByMacProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsendcommandbymacprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSendCommandByMacProgressWithCallback(request *GetSendCommandByMacProgressRequest, callback func(response *GetSendCommandByMacProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSendCommandByMacProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSendCommandByMacProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSendCommandByMacProgressRequest is the request struct for api GetSendCommandByMacProgress
+type GetSendCommandByMacProgressRequest struct {
+	*requests.RpcRequest
+}
+
+// GetSendCommandByMacProgressResponse is the response struct for api GetSendCommandByMacProgress
+type GetSendCommandByMacProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetSendCommandByMacProgressRequest creates a request to invoke GetSendCommandByMacProgress API
+func CreateGetSendCommandByMacProgressRequest() (request *GetSendCommandByMacProgressRequest) {
+	request = &GetSendCommandByMacProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetSendCommandByMacProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetSendCommandByMacProgressResponse creates a response to parse from GetSendCommandByMacProgress response
+func CreateGetSendCommandByMacProgressResponse() (response *GetSendCommandByMacProgressResponse) {
+	response = &GetSendCommandByMacProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cloudwf/get_sids_and_gids4_bid.go

@@ -0,0 +1,109 @@
+package cloudwf
+
+//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"
+)
+
+// GetSidsAndGids4Bid invokes the cloudwf.GetSidsAndGids4Bid API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsidsandgids4bid.html
+func (client *Client) GetSidsAndGids4Bid(request *GetSidsAndGids4BidRequest) (response *GetSidsAndGids4BidResponse, err error) {
+	response = CreateGetSidsAndGids4BidResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSidsAndGids4BidWithChan invokes the cloudwf.GetSidsAndGids4Bid API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsidsandgids4bid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSidsAndGids4BidWithChan(request *GetSidsAndGids4BidRequest) (<-chan *GetSidsAndGids4BidResponse, <-chan error) {
+	responseChan := make(chan *GetSidsAndGids4BidResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSidsAndGids4Bid(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSidsAndGids4BidWithCallback invokes the cloudwf.GetSidsAndGids4Bid API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsidsandgids4bid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSidsAndGids4BidWithCallback(request *GetSidsAndGids4BidRequest, callback func(response *GetSidsAndGids4BidResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSidsAndGids4BidResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSidsAndGids4Bid(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSidsAndGids4BidRequest is the request struct for api GetSidsAndGids4Bid
+type GetSidsAndGids4BidRequest struct {
+	*requests.RpcRequest
+	QueryType requests.Integer `position:"Query" name:"QueryType"`
+	QueryId   requests.Integer `position:"Query" name:"QueryId"`
+}
+
+// GetSidsAndGids4BidResponse is the response struct for api GetSidsAndGids4Bid
+type GetSidsAndGids4BidResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetSidsAndGids4BidRequest creates a request to invoke GetSidsAndGids4Bid API
+func CreateGetSidsAndGids4BidRequest() (request *GetSidsAndGids4BidRequest) {
+	request = &GetSidsAndGids4BidRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetSidsAndGids4Bid", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetSidsAndGids4BidResponse creates a response to parse from GetSidsAndGids4Bid response
+func CreateGetSidsAndGids4BidResponse() (response *GetSidsAndGids4BidResponse) {
+	response = &GetSidsAndGids4BidResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_sta_detailed_status.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetStaDetailedStatus invokes the cloudwf.GetStaDetailedStatus API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstadetailedstatus.html
+func (client *Client) GetStaDetailedStatus(request *GetStaDetailedStatusRequest) (response *GetStaDetailedStatusResponse, err error) {
+	response = CreateGetStaDetailedStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetStaDetailedStatusWithChan invokes the cloudwf.GetStaDetailedStatus API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstadetailedstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetStaDetailedStatusWithChan(request *GetStaDetailedStatusRequest) (<-chan *GetStaDetailedStatusResponse, <-chan error) {
+	responseChan := make(chan *GetStaDetailedStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetStaDetailedStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetStaDetailedStatusWithCallback invokes the cloudwf.GetStaDetailedStatus API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstadetailedstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetStaDetailedStatusWithCallback(request *GetStaDetailedStatusRequest, callback func(response *GetStaDetailedStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetStaDetailedStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.GetStaDetailedStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetStaDetailedStatusRequest is the request struct for api GetStaDetailedStatus
+type GetStaDetailedStatusRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetStaDetailedStatusResponse is the response struct for api GetStaDetailedStatus
+type GetStaDetailedStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetStaDetailedStatusRequest creates a request to invoke GetStaDetailedStatus API
+func CreateGetStaDetailedStatusRequest() (request *GetStaDetailedStatusRequest) {
+	request = &GetStaDetailedStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetStaDetailedStatus", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetStaDetailedStatusResponse creates a response to parse from GetStaDetailedStatus response
+func CreateGetStaDetailedStatusResponse() (response *GetStaDetailedStatusResponse) {
+	response = &GetStaDetailedStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_sta_run_history_time_ser.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetStaRunHistoryTimeSer invokes the cloudwf.GetStaRunHistoryTimeSer API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstarunhistorytimeser.html
+func (client *Client) GetStaRunHistoryTimeSer(request *GetStaRunHistoryTimeSerRequest) (response *GetStaRunHistoryTimeSerResponse, err error) {
+	response = CreateGetStaRunHistoryTimeSerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetStaRunHistoryTimeSerWithChan invokes the cloudwf.GetStaRunHistoryTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstarunhistorytimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetStaRunHistoryTimeSerWithChan(request *GetStaRunHistoryTimeSerRequest) (<-chan *GetStaRunHistoryTimeSerResponse, <-chan error) {
+	responseChan := make(chan *GetStaRunHistoryTimeSerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetStaRunHistoryTimeSer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetStaRunHistoryTimeSerWithCallback invokes the cloudwf.GetStaRunHistoryTimeSer API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstarunhistorytimeser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetStaRunHistoryTimeSerWithCallback(request *GetStaRunHistoryTimeSerRequest, callback func(response *GetStaRunHistoryTimeSerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetStaRunHistoryTimeSerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetStaRunHistoryTimeSer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetStaRunHistoryTimeSerRequest is the request struct for api GetStaRunHistoryTimeSer
+type GetStaRunHistoryTimeSerRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetStaRunHistoryTimeSerResponse is the response struct for api GetStaRunHistoryTimeSer
+type GetStaRunHistoryTimeSerResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetStaRunHistoryTimeSerRequest creates a request to invoke GetStaRunHistoryTimeSer API
+func CreateGetStaRunHistoryTimeSerRequest() (request *GetStaRunHistoryTimeSerRequest) {
+	request = &GetStaRunHistoryTimeSerRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetStaRunHistoryTimeSer", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetStaRunHistoryTimeSerResponse creates a response to parse from GetStaRunHistoryTimeSer response
+func CreateGetStaRunHistoryTimeSerResponse() (response *GetStaRunHistoryTimeSerResponse) {
+	response = &GetStaRunHistoryTimeSerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_sta_top.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetStaTop invokes the cloudwf.GetStaTop API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstatop.html
+func (client *Client) GetStaTop(request *GetStaTopRequest) (response *GetStaTopResponse, err error) {
+	response = CreateGetStaTopResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetStaTopWithChan invokes the cloudwf.GetStaTop API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstatop.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetStaTopWithChan(request *GetStaTopRequest) (<-chan *GetStaTopResponse, <-chan error) {
+	responseChan := make(chan *GetStaTopResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetStaTop(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetStaTopWithCallback invokes the cloudwf.GetStaTop API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getstatop.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetStaTopWithCallback(request *GetStaTopRequest, callback func(response *GetStaTopResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetStaTopResponse
+		var err error
+		defer close(result)
+		response, err = client.GetStaTop(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetStaTopRequest is the request struct for api GetStaTop
+type GetStaTopRequest struct {
+	*requests.RpcRequest
+	ApgroupId requests.Integer `position:"Query" name:"ApgroupId"`
+}
+
+// GetStaTopResponse is the response struct for api GetStaTop
+type GetStaTopResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetStaTopRequest creates a request to invoke GetStaTop API
+func CreateGetStaTopRequest() (request *GetStaTopRequest) {
+	request = &GetStaTopRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetStaTop", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetStaTopResponse creates a response to parse from GetStaTop response
+func CreateGetStaTopResponse() (response *GetStaTopResponse) {
+	response = &GetStaTopResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_sub_account_permission.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetSubAccountPermission invokes the cloudwf.GetSubAccountPermission API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsubaccountpermission.html
+func (client *Client) GetSubAccountPermission(request *GetSubAccountPermissionRequest) (response *GetSubAccountPermissionResponse, err error) {
+	response = CreateGetSubAccountPermissionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSubAccountPermissionWithChan invokes the cloudwf.GetSubAccountPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsubaccountpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSubAccountPermissionWithChan(request *GetSubAccountPermissionRequest) (<-chan *GetSubAccountPermissionResponse, <-chan error) {
+	responseChan := make(chan *GetSubAccountPermissionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSubAccountPermission(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSubAccountPermissionWithCallback invokes the cloudwf.GetSubAccountPermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsubaccountpermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSubAccountPermissionWithCallback(request *GetSubAccountPermissionRequest, callback func(response *GetSubAccountPermissionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSubAccountPermissionResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSubAccountPermission(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSubAccountPermissionRequest is the request struct for api GetSubAccountPermission
+type GetSubAccountPermissionRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetSubAccountPermissionResponse is the response struct for api GetSubAccountPermission
+type GetSubAccountPermissionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetSubAccountPermissionRequest creates a request to invoke GetSubAccountPermission API
+func CreateGetSubAccountPermissionRequest() (request *GetSubAccountPermissionRequest) {
+	request = &GetSubAccountPermissionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetSubAccountPermission", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetSubAccountPermissionResponse creates a response to parse from GetSubAccountPermission response
+func CreateGetSubAccountPermissionResponse() (response *GetSubAccountPermissionResponse) {
+	response = &GetSubAccountPermissionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_sub_account_status.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetSubAccountStatus invokes the cloudwf.GetSubAccountStatus API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsubaccountstatus.html
+func (client *Client) GetSubAccountStatus(request *GetSubAccountStatusRequest) (response *GetSubAccountStatusResponse, err error) {
+	response = CreateGetSubAccountStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSubAccountStatusWithChan invokes the cloudwf.GetSubAccountStatus API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsubaccountstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSubAccountStatusWithChan(request *GetSubAccountStatusRequest) (<-chan *GetSubAccountStatusResponse, <-chan error) {
+	responseChan := make(chan *GetSubAccountStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSubAccountStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSubAccountStatusWithCallback invokes the cloudwf.GetSubAccountStatus API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getsubaccountstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSubAccountStatusWithCallback(request *GetSubAccountStatusRequest, callback func(response *GetSubAccountStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSubAccountStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSubAccountStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSubAccountStatusRequest is the request struct for api GetSubAccountStatus
+type GetSubAccountStatusRequest struct {
+	*requests.RpcRequest
+}
+
+// GetSubAccountStatusResponse is the response struct for api GetSubAccountStatus
+type GetSubAccountStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetSubAccountStatusRequest creates a request to invoke GetSubAccountStatus API
+func CreateGetSubAccountStatusRequest() (request *GetSubAccountStatusRequest) {
+	request = &GetSubAccountStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetSubAccountStatus", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetSubAccountStatusResponse creates a response to parse from GetSubAccountStatus response
+func CreateGetSubAccountStatusResponse() (response *GetSubAccountStatusResponse) {
+	response = &GetSubAccountStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_umeng_page_permission4_root.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetUmengPagePermission4Root invokes the cloudwf.GetUmengPagePermission4Root API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getumengpagepermission4root.html
+func (client *Client) GetUmengPagePermission4Root(request *GetUmengPagePermission4RootRequest) (response *GetUmengPagePermission4RootResponse, err error) {
+	response = CreateGetUmengPagePermission4RootResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUmengPagePermission4RootWithChan invokes the cloudwf.GetUmengPagePermission4Root API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getumengpagepermission4root.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUmengPagePermission4RootWithChan(request *GetUmengPagePermission4RootRequest) (<-chan *GetUmengPagePermission4RootResponse, <-chan error) {
+	responseChan := make(chan *GetUmengPagePermission4RootResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUmengPagePermission4Root(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUmengPagePermission4RootWithCallback invokes the cloudwf.GetUmengPagePermission4Root API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getumengpagepermission4root.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUmengPagePermission4RootWithCallback(request *GetUmengPagePermission4RootRequest, callback func(response *GetUmengPagePermission4RootResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUmengPagePermission4RootResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUmengPagePermission4Root(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUmengPagePermission4RootRequest is the request struct for api GetUmengPagePermission4Root
+type GetUmengPagePermission4RootRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetUmengPagePermission4RootResponse is the response struct for api GetUmengPagePermission4Root
+type GetUmengPagePermission4RootResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetUmengPagePermission4RootRequest creates a request to invoke GetUmengPagePermission4Root API
+func CreateGetUmengPagePermission4RootRequest() (request *GetUmengPagePermission4RootRequest) {
+	request = &GetUmengPagePermission4RootRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetUmengPagePermission4Root", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetUmengPagePermission4RootResponse creates a response to parse from GetUmengPagePermission4Root response
+func CreateGetUmengPagePermission4RootResponse() (response *GetUmengPagePermission4RootResponse) {
+	response = &GetUmengPagePermission4RootResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_upgrade_ap_group_progress.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetUpgradeAPGroupProgress invokes the cloudwf.GetUpgradeAPGroupProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeapgroupprogress.html
+func (client *Client) GetUpgradeAPGroupProgress(request *GetUpgradeAPGroupProgressRequest) (response *GetUpgradeAPGroupProgressResponse, err error) {
+	response = CreateGetUpgradeAPGroupProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUpgradeAPGroupProgressWithChan invokes the cloudwf.GetUpgradeAPGroupProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeapgroupprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUpgradeAPGroupProgressWithChan(request *GetUpgradeAPGroupProgressRequest) (<-chan *GetUpgradeAPGroupProgressResponse, <-chan error) {
+	responseChan := make(chan *GetUpgradeAPGroupProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUpgradeAPGroupProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUpgradeAPGroupProgressWithCallback invokes the cloudwf.GetUpgradeAPGroupProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeapgroupprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUpgradeAPGroupProgressWithCallback(request *GetUpgradeAPGroupProgressRequest, callback func(response *GetUpgradeAPGroupProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUpgradeAPGroupProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUpgradeAPGroupProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUpgradeAPGroupProgressRequest is the request struct for api GetUpgradeAPGroupProgress
+type GetUpgradeAPGroupProgressRequest struct {
+	*requests.RpcRequest
+}
+
+// GetUpgradeAPGroupProgressResponse is the response struct for api GetUpgradeAPGroupProgress
+type GetUpgradeAPGroupProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetUpgradeAPGroupProgressRequest creates a request to invoke GetUpgradeAPGroupProgress API
+func CreateGetUpgradeAPGroupProgressRequest() (request *GetUpgradeAPGroupProgressRequest) {
+	request = &GetUpgradeAPGroupProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetUpgradeAPGroupProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetUpgradeAPGroupProgressResponse creates a response to parse from GetUpgradeAPGroupProgress response
+func CreateGetUpgradeAPGroupProgressResponse() (response *GetUpgradeAPGroupProgressResponse) {
+	response = &GetUpgradeAPGroupProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudwf/get_upgrade_ap_progress.go

@@ -0,0 +1,107 @@
+package cloudwf
+
+//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"
+)
+
+// GetUpgradeAPProgress invokes the cloudwf.GetUpgradeAPProgress API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeapprogress.html
+func (client *Client) GetUpgradeAPProgress(request *GetUpgradeAPProgressRequest) (response *GetUpgradeAPProgressResponse, err error) {
+	response = CreateGetUpgradeAPProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUpgradeAPProgressWithChan invokes the cloudwf.GetUpgradeAPProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeapprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUpgradeAPProgressWithChan(request *GetUpgradeAPProgressRequest) (<-chan *GetUpgradeAPProgressResponse, <-chan error) {
+	responseChan := make(chan *GetUpgradeAPProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUpgradeAPProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUpgradeAPProgressWithCallback invokes the cloudwf.GetUpgradeAPProgress API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeapprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUpgradeAPProgressWithCallback(request *GetUpgradeAPProgressRequest, callback func(response *GetUpgradeAPProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUpgradeAPProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUpgradeAPProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUpgradeAPProgressRequest is the request struct for api GetUpgradeAPProgress
+type GetUpgradeAPProgressRequest struct {
+	*requests.RpcRequest
+}
+
+// GetUpgradeAPProgressResponse is the response struct for api GetUpgradeAPProgress
+type GetUpgradeAPProgressResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetUpgradeAPProgressRequest creates a request to invoke GetUpgradeAPProgress API
+func CreateGetUpgradeAPProgressRequest() (request *GetUpgradeAPProgressRequest) {
+	request = &GetUpgradeAPProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetUpgradeAPProgress", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetUpgradeAPProgressResponse creates a response to parse from GetUpgradeAPProgress response
+func CreateGetUpgradeAPProgressResponse() (response *GetUpgradeAPProgressResponse) {
+	response = &GetUpgradeAPProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_upgrade_img.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetUpgradeImg invokes the cloudwf.GetUpgradeImg API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeimg.html
+func (client *Client) GetUpgradeImg(request *GetUpgradeImgRequest) (response *GetUpgradeImgResponse, err error) {
+	response = CreateGetUpgradeImgResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUpgradeImgWithChan invokes the cloudwf.GetUpgradeImg API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeimg.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUpgradeImgWithChan(request *GetUpgradeImgRequest) (<-chan *GetUpgradeImgResponse, <-chan error) {
+	responseChan := make(chan *GetUpgradeImgResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUpgradeImg(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUpgradeImgWithCallback invokes the cloudwf.GetUpgradeImg API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getupgradeimg.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUpgradeImgWithCallback(request *GetUpgradeImgRequest, callback func(response *GetUpgradeImgResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUpgradeImgResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUpgradeImg(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUpgradeImgRequest is the request struct for api GetUpgradeImg
+type GetUpgradeImgRequest struct {
+	*requests.RpcRequest
+	Id requests.Integer `position:"Query" name:"Id"`
+}
+
+// GetUpgradeImgResponse is the response struct for api GetUpgradeImg
+type GetUpgradeImgResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetUpgradeImgRequest creates a request to invoke GetUpgradeImg API
+func CreateGetUpgradeImgRequest() (request *GetUpgradeImgRequest) {
+	request = &GetUpgradeImgRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetUpgradeImg", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetUpgradeImgResponse creates a response to parse from GetUpgradeImg response
+func CreateGetUpgradeImgResponse() (response *GetUpgradeImgResponse) {
+	response = &GetUpgradeImgResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudwf/get_user_umeng_page_permission.go

@@ -0,0 +1,108 @@
+package cloudwf
+
+//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"
+)
+
+// GetUserUmengPagePermission invokes the cloudwf.GetUserUmengPagePermission API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/getuserumengpagepermission.html
+func (client *Client) GetUserUmengPagePermission(request *GetUserUmengPagePermissionRequest) (response *GetUserUmengPagePermissionResponse, err error) {
+	response = CreateGetUserUmengPagePermissionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUserUmengPagePermissionWithChan invokes the cloudwf.GetUserUmengPagePermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getuserumengpagepermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserUmengPagePermissionWithChan(request *GetUserUmengPagePermissionRequest) (<-chan *GetUserUmengPagePermissionResponse, <-chan error) {
+	responseChan := make(chan *GetUserUmengPagePermissionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUserUmengPagePermission(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUserUmengPagePermissionWithCallback invokes the cloudwf.GetUserUmengPagePermission API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/getuserumengpagepermission.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserUmengPagePermissionWithCallback(request *GetUserUmengPagePermissionRequest, callback func(response *GetUserUmengPagePermissionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUserUmengPagePermissionResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUserUmengPagePermission(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUserUmengPagePermissionRequest is the request struct for api GetUserUmengPagePermission
+type GetUserUmengPagePermissionRequest struct {
+	*requests.RpcRequest
+	Bid requests.Integer `position:"Query" name:"Bid"`
+}
+
+// GetUserUmengPagePermissionResponse is the response struct for api GetUserUmengPagePermission
+type GetUserUmengPagePermissionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	Message   string `json:"Message" xml:"Message"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGetUserUmengPagePermissionRequest creates a request to invoke GetUserUmengPagePermission API
+func CreateGetUserUmengPagePermissionRequest() (request *GetUserUmengPagePermissionRequest) {
+	request = &GetUserUmengPagePermissionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GetUserUmengPagePermission", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGetUserUmengPagePermissionResponse creates a response to parse from GetUserUmengPagePermission response
+func CreateGetUserUmengPagePermissionResponse() (response *GetUserUmengPagePermissionResponse) {
+	response = &GetUserUmengPagePermissionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/group_details.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// GroupDetails invokes the cloudwf.GroupDetails API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupdetails.html
+func (client *Client) GroupDetails(request *GroupDetailsRequest) (response *GroupDetailsResponse, err error) {
+	response = CreateGroupDetailsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GroupDetailsWithChan invokes the cloudwf.GroupDetails API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupdetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupDetailsWithChan(request *GroupDetailsRequest) (<-chan *GroupDetailsResponse, <-chan error) {
+	responseChan := make(chan *GroupDetailsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GroupDetails(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GroupDetailsWithCallback invokes the cloudwf.GroupDetails API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupdetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupDetailsWithCallback(request *GroupDetailsRequest, callback func(response *GroupDetailsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GroupDetailsResponse
+		var err error
+		defer close(result)
+		response, err = client.GroupDetails(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GroupDetailsRequest is the request struct for api GroupDetails
+type GroupDetailsRequest struct {
+	*requests.RpcRequest
+	Gsid requests.Integer `position:"Query" name:"Gsid"`
+}
+
+// GroupDetailsResponse is the response struct for api GroupDetails
+type GroupDetailsResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGroupDetailsRequest creates a request to invoke GroupDetails API
+func CreateGroupDetailsRequest() (request *GroupDetailsRequest) {
+	request = &GroupDetailsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GroupDetails", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGroupDetailsResponse creates a response to parse from GroupDetails response
+func CreateGroupDetailsResponse() (response *GroupDetailsResponse) {
+	response = &GroupDetailsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/group_intime.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// GroupIntime invokes the cloudwf.GroupIntime API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupintime.html
+func (client *Client) GroupIntime(request *GroupIntimeRequest) (response *GroupIntimeResponse, err error) {
+	response = CreateGroupIntimeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GroupIntimeWithChan invokes the cloudwf.GroupIntime API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupintime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupIntimeWithChan(request *GroupIntimeRequest) (<-chan *GroupIntimeResponse, <-chan error) {
+	responseChan := make(chan *GroupIntimeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GroupIntime(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GroupIntimeWithCallback invokes the cloudwf.GroupIntime API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupintime.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupIntimeWithCallback(request *GroupIntimeRequest, callback func(response *GroupIntimeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GroupIntimeResponse
+		var err error
+		defer close(result)
+		response, err = client.GroupIntime(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GroupIntimeRequest is the request struct for api GroupIntime
+type GroupIntimeRequest struct {
+	*requests.RpcRequest
+	Gsid requests.Integer `position:"Query" name:"Gsid"`
+}
+
+// GroupIntimeResponse is the response struct for api GroupIntime
+type GroupIntimeResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGroupIntimeRequest creates a request to invoke GroupIntime API
+func CreateGroupIntimeRequest() (request *GroupIntimeRequest) {
+	request = &GroupIntimeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GroupIntime", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGroupIntimeResponse creates a response to parse from GroupIntime response
+func CreateGroupIntimeResponse() (response *GroupIntimeResponse) {
+	response = &GroupIntimeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/group_overview.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// GroupOverview invokes the cloudwf.GroupOverview API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupoverview.html
+func (client *Client) GroupOverview(request *GroupOverviewRequest) (response *GroupOverviewResponse, err error) {
+	response = CreateGroupOverviewResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GroupOverviewWithChan invokes the cloudwf.GroupOverview API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupoverview.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupOverviewWithChan(request *GroupOverviewRequest) (<-chan *GroupOverviewResponse, <-chan error) {
+	responseChan := make(chan *GroupOverviewResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GroupOverview(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GroupOverviewWithCallback invokes the cloudwf.GroupOverview API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/groupoverview.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupOverviewWithCallback(request *GroupOverviewRequest, callback func(response *GroupOverviewResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GroupOverviewResponse
+		var err error
+		defer close(result)
+		response, err = client.GroupOverview(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GroupOverviewRequest is the request struct for api GroupOverview
+type GroupOverviewRequest struct {
+	*requests.RpcRequest
+	Gsid requests.Integer `position:"Query" name:"Gsid"`
+}
+
+// GroupOverviewResponse is the response struct for api GroupOverview
+type GroupOverviewResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGroupOverviewRequest creates a request to invoke GroupOverview API
+func CreateGroupOverviewRequest() (request *GroupOverviewRequest) {
+	request = &GroupOverviewRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GroupOverview", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGroupOverviewResponse creates a response to parse from GroupOverview response
+func CreateGroupOverviewResponse() (response *GroupOverviewResponse) {
+	response = &GroupOverviewResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/group_trend.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// GroupTrend invokes the cloudwf.GroupTrend API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/grouptrend.html
+func (client *Client) GroupTrend(request *GroupTrendRequest) (response *GroupTrendResponse, err error) {
+	response = CreateGroupTrendResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GroupTrendWithChan invokes the cloudwf.GroupTrend API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/grouptrend.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupTrendWithChan(request *GroupTrendRequest) (<-chan *GroupTrendResponse, <-chan error) {
+	responseChan := make(chan *GroupTrendResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GroupTrend(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GroupTrendWithCallback invokes the cloudwf.GroupTrend API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/grouptrend.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GroupTrendWithCallback(request *GroupTrendRequest, callback func(response *GroupTrendResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GroupTrendResponse
+		var err error
+		defer close(result)
+		response, err = client.GroupTrend(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GroupTrendRequest is the request struct for api GroupTrend
+type GroupTrendRequest struct {
+	*requests.RpcRequest
+	Gsid requests.Integer `position:"Query" name:"Gsid"`
+}
+
+// GroupTrendResponse is the response struct for api GroupTrend
+type GroupTrendResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateGroupTrendRequest creates a request to invoke GroupTrend API
+func CreateGroupTrendRequest() (request *GroupTrendRequest) {
+	request = &GroupTrendRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "GroupTrend", "cloudwf", "openAPI")
+	return
+}
+
+// CreateGroupTrendResponse creates a response to parse from GroupTrend response
+func CreateGroupTrendResponse() (response *GroupTrendResponse) {
+	response = &GroupTrendResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/headquarters_overview.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// HeadquartersOverview invokes the cloudwf.HeadquartersOverview API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/headquartersoverview.html
+func (client *Client) HeadquartersOverview(request *HeadquartersOverviewRequest) (response *HeadquartersOverviewResponse, err error) {
+	response = CreateHeadquartersOverviewResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// HeadquartersOverviewWithChan invokes the cloudwf.HeadquartersOverview API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/headquartersoverview.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) HeadquartersOverviewWithChan(request *HeadquartersOverviewRequest) (<-chan *HeadquartersOverviewResponse, <-chan error) {
+	responseChan := make(chan *HeadquartersOverviewResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.HeadquartersOverview(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// HeadquartersOverviewWithCallback invokes the cloudwf.HeadquartersOverview API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/headquartersoverview.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) HeadquartersOverviewWithCallback(request *HeadquartersOverviewRequest, callback func(response *HeadquartersOverviewResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *HeadquartersOverviewResponse
+		var err error
+		defer close(result)
+		response, err = client.HeadquartersOverview(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// HeadquartersOverviewRequest is the request struct for api HeadquartersOverview
+type HeadquartersOverviewRequest struct {
+	*requests.RpcRequest
+	Bid requests.Integer `position:"Query" name:"Bid"`
+}
+
+// HeadquartersOverviewResponse is the response struct for api HeadquartersOverview
+type HeadquartersOverviewResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateHeadquartersOverviewRequest creates a request to invoke HeadquartersOverview API
+func CreateHeadquartersOverviewRequest() (request *HeadquartersOverviewRequest) {
+	request = &HeadquartersOverviewRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "HeadquartersOverview", "cloudwf", "openAPI")
+	return
+}
+
+// CreateHeadquartersOverviewResponse creates a response to parse from HeadquartersOverview response
+func CreateHeadquartersOverviewResponse() (response *HeadquartersOverviewResponse) {
+	response = &HeadquartersOverviewResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudwf/headquarters_ranking.go

@@ -0,0 +1,106 @@
+package cloudwf
+
+//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"
+)
+
+// HeadquartersRanking invokes the cloudwf.HeadquartersRanking API synchronously
+// api document: https://help.aliyun.com/api/cloudwf/headquartersranking.html
+func (client *Client) HeadquartersRanking(request *HeadquartersRankingRequest) (response *HeadquartersRankingResponse, err error) {
+	response = CreateHeadquartersRankingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// HeadquartersRankingWithChan invokes the cloudwf.HeadquartersRanking API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/headquartersranking.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) HeadquartersRankingWithChan(request *HeadquartersRankingRequest) (<-chan *HeadquartersRankingResponse, <-chan error) {
+	responseChan := make(chan *HeadquartersRankingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.HeadquartersRanking(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// HeadquartersRankingWithCallback invokes the cloudwf.HeadquartersRanking API asynchronously
+// api document: https://help.aliyun.com/api/cloudwf/headquartersranking.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) HeadquartersRankingWithCallback(request *HeadquartersRankingRequest, callback func(response *HeadquartersRankingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *HeadquartersRankingResponse
+		var err error
+		defer close(result)
+		response, err = client.HeadquartersRanking(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// HeadquartersRankingRequest is the request struct for api HeadquartersRanking
+type HeadquartersRankingRequest struct {
+	*requests.RpcRequest
+	Bid requests.Integer `position:"Query" name:"Bid"`
+}
+
+// HeadquartersRankingResponse is the response struct for api HeadquartersRanking
+type HeadquartersRankingResponse struct {
+	*responses.BaseResponse
+	Success   bool   `json:"Success" xml:"Success"`
+	Data      string `json:"Data" xml:"Data"`
+	ErrorCode int    `json:"ErrorCode" xml:"ErrorCode"`
+	ErrorMsg  string `json:"ErrorMsg" xml:"ErrorMsg"`
+}
+
+// CreateHeadquartersRankingRequest creates a request to invoke HeadquartersRanking API
+func CreateHeadquartersRankingRequest() (request *HeadquartersRankingRequest) {
+	request = &HeadquartersRankingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("cloudwf", "2017-03-28", "HeadquartersRanking", "cloudwf", "openAPI")
+	return
+}
+
+// CreateHeadquartersRankingResponse creates a response to parse from HeadquartersRanking response
+func CreateHeadquartersRankingResponse() (response *HeadquartersRankingResponse) {
+	response = &HeadquartersRankingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

部分文件因文件數量過多而無法顯示