Jelajahi Sumber

Generated 2018-01-20 for Iot.

sdk-team 6 tahun lalu
induk
melakukan
bcb02064de
100 mengubah file dengan 3390 tambahan dan 121 penghapusan
  1. 3 0
      ChangeLog.txt
  2. 1 1
      services/iot/batch_add_device_group_relations.go
  3. 109 0
      services/iot/batch_bind_device_to_edge_instance_with_driver.go
  4. 1 1
      services/iot/batch_check_device_names.go
  5. 108 0
      services/iot/batch_clear_edge_instance_device_config.go
  6. 1 1
      services/iot/batch_delete_device_group_relations.go
  7. 109 0
      services/iot/batch_get_device_driver.go
  8. 1 1
      services/iot/batch_get_device_state.go
  9. 109 0
      services/iot/batch_get_edge_instance_device_config.go
  10. 109 0
      services/iot/batch_get_edge_instance_driver_configs.go
  11. 109 0
      services/iot/batch_query_device_detail.go
  12. 1 1
      services/iot/batch_register_device.go
  13. 1 1
      services/iot/batch_register_device_with_apply_id.go
  14. 114 0
      services/iot/batch_set_edge_instance_device_config.go
  15. 108 0
      services/iot/batch_unbind_device_from_edge_instance.go
  16. 109 0
      services/iot/bind_driver_to_edge_instance.go
  17. 110 0
      services/iot/bind_gateway_to_edge_instance.go
  18. 108 0
      services/iot/clear_edge_instance_driver_configs.go
  19. 25 0
      services/iot/client.go
  20. 107 0
      services/iot/close_edge_instance_deployment.go
  21. 7 7
      services/iot/create_data_api_service.go
  22. 2 2
      services/iot/create_device_group.go
  23. 110 0
      services/iot/create_edge_instance.go
  24. 109 0
      services/iot/create_edge_instance_deployment.go
  25. 1 1
      services/iot/create_lo_ra_nodes_task.go
  26. 8 6
      services/iot/create_product.go
  27. 1 1
      services/iot/create_product_tags.go
  28. 1 1
      services/iot/create_product_topic.go
  29. 2 2
      services/iot/create_rule.go
  30. 1 1
      services/iot/create_rule_action.go
  31. 1 1
      services/iot/delete_device.go
  32. 1 1
      services/iot/delete_device_file.go
  33. 1 1
      services/iot/delete_device_group.go
  34. 2 2
      services/iot/delete_device_prop.go
  35. 107 0
      services/iot/delete_edge_instance.go
  36. 1 1
      services/iot/delete_product.go
  37. 1 1
      services/iot/delete_product_tags.go
  38. 1 1
      services/iot/disable_thing.go
  39. 1 1
      services/iot/enable_thing.go
  40. 68 0
      services/iot/endpoint.go
  41. 109 0
      services/iot/get_device_list_by_iot_ids.go
  42. 1 1
      services/iot/get_device_shadow.go
  43. 1 1
      services/iot/get_device_status.go
  44. 108 0
      services/iot/get_edge_instance.go
  45. 109 0
      services/iot/get_edge_instance_deployment.go
  46. 1 1
      services/iot/get_gateway_by_sub_device.go
  47. 110 0
      services/iot/get_product_key_list_by_name.go
  48. 111 0
      services/iot/get_product_meta_list_by_name.go
  49. 6 6
      services/iot/get_thing_topo.go
  50. 110 0
      services/iot/gis_query_device_location.go
  51. 2 2
      services/iot/invoke_thing_service.go
  52. 2 2
      services/iot/invoke_things_service.go
  53. 1 1
      services/iot/list_product_by_tags.go
  54. 1 1
      services/iot/list_product_tags.go
  55. 1 1
      services/iot/list_rule.go
  56. 1 1
      services/iot/notify_add_thing_topo.go
  57. 2 2
      services/iot/pub.go
  58. 1 1
      services/iot/pub_broadcast.go
  59. 2 2
      services/iot/query_app_device_list.go
  60. 1 1
      services/iot/query_batch_register_device_status.go
  61. 108 0
      services/iot/query_cert_url_by_apply_id.go
  62. 2 2
      services/iot/query_device.go
  63. 111 0
      services/iot/query_device_by_driver.go
  64. 1 1
      services/iot/query_device_by_tags.go
  65. 109 0
      services/iot/query_device_cert.go
  66. 6 6
      services/iot/query_device_desired_property.go
  67. 1 1
      services/iot/query_device_detail.go
  68. 4 4
      services/iot/query_device_event_data.go
  69. 1 1
      services/iot/query_device_file.go
  70. 2 2
      services/iot/query_device_file_list.go
  71. 1 1
      services/iot/query_device_group_by_device.go
  72. 1 1
      services/iot/query_device_group_by_tags.go
  73. 1 1
      services/iot/query_device_group_info.go
  74. 2 2
      services/iot/query_device_group_list.go
  75. 1 1
      services/iot/query_device_group_tag_list.go
  76. 2 2
      services/iot/query_device_list_by_device_group.go
  77. 1 1
      services/iot/query_device_prop.go
  78. 4 4
      services/iot/query_device_properties_data.go
  79. 4 4
      services/iot/query_device_property_data.go
  80. 1 1
      services/iot/query_device_property_status.go
  81. 4 4
      services/iot/query_device_service_data.go
  82. 1 1
      services/iot/query_device_statistics.go
  83. 110 0
      services/iot/query_edge_instance.go
  84. 110 0
      services/iot/query_edge_instance_device.go
  85. 110 0
      services/iot/query_edge_instance_driver.go
  86. 108 0
      services/iot/query_edge_instance_gateway.go
  87. 112 0
      services/iot/query_edge_instance_historic_deployment.go
  88. 1 1
      services/iot/query_page_by_apply_id.go
  89. 6 6
      services/iot/query_product.go
  90. 2 1
      services/iot/query_product_list.go
  91. 1 1
      services/iot/query_product_topic.go
  92. 1 1
      services/iot/query_super_device_group.go
  93. 3 3
      services/iot/r_rpc.go
  94. 2 2
      services/iot/register_device.go
  95. 1 1
      services/iot/remove_thing_topo.go
  96. 2 2
      services/iot/save_device_prop.go
  97. 1 1
      services/iot/set_device_desired_property.go
  98. 1 1
      services/iot/set_device_group_tags.go
  99. 1 1
      services/iot/set_device_property.go
  100. 1 1
      services/iot/set_devices_property.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-11-19 Version: 1.60.249
+- Generated 2018-01-20 for `Iot`.
+
 2019-11-15 Version: 1.60.248
 2019-11-15 Version: 1.60.248
 - Nlp Automl SDK.
 - Nlp Automl SDK.
 
 

+ 1 - 1
services/iot/batch_add_device_group_relations.go

@@ -76,8 +76,8 @@ func (client *Client) BatchAddDeviceGroupRelationsWithCallback(request *BatchAdd
 // BatchAddDeviceGroupRelationsRequest is the request struct for api BatchAddDeviceGroupRelations
 // BatchAddDeviceGroupRelationsRequest is the request struct for api BatchAddDeviceGroupRelations
 type BatchAddDeviceGroupRelationsRequest struct {
 type BatchAddDeviceGroupRelationsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string                                `position:"Query" name:"IotInstanceId"`
 	GroupId       string                                `position:"Query" name:"GroupId"`
 	GroupId       string                                `position:"Query" name:"GroupId"`
+	IotInstanceId string                                `position:"Query" name:"IotInstanceId"`
 	Device        *[]BatchAddDeviceGroupRelationsDevice `position:"Query" name:"Device"  type:"Repeated"`
 	Device        *[]BatchAddDeviceGroupRelationsDevice `position:"Query" name:"Device"  type:"Repeated"`
 }
 }
 
 

+ 109 - 0
services/iot/batch_bind_device_to_edge_instance_with_driver.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// BatchBindDeviceToEdgeInstanceWithDriver invokes the iot.BatchBindDeviceToEdgeInstanceWithDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/batchbinddevicetoedgeinstancewithdriver.html
+func (client *Client) BatchBindDeviceToEdgeInstanceWithDriver(request *BatchBindDeviceToEdgeInstanceWithDriverRequest) (response *BatchBindDeviceToEdgeInstanceWithDriverResponse, err error) {
+	response = CreateBatchBindDeviceToEdgeInstanceWithDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchBindDeviceToEdgeInstanceWithDriverWithChan invokes the iot.BatchBindDeviceToEdgeInstanceWithDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchbinddevicetoedgeinstancewithdriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchBindDeviceToEdgeInstanceWithDriverWithChan(request *BatchBindDeviceToEdgeInstanceWithDriverRequest) (<-chan *BatchBindDeviceToEdgeInstanceWithDriverResponse, <-chan error) {
+	responseChan := make(chan *BatchBindDeviceToEdgeInstanceWithDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchBindDeviceToEdgeInstanceWithDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchBindDeviceToEdgeInstanceWithDriverWithCallback invokes the iot.BatchBindDeviceToEdgeInstanceWithDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchbinddevicetoedgeinstancewithdriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchBindDeviceToEdgeInstanceWithDriverWithCallback(request *BatchBindDeviceToEdgeInstanceWithDriverRequest, callback func(response *BatchBindDeviceToEdgeInstanceWithDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchBindDeviceToEdgeInstanceWithDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchBindDeviceToEdgeInstanceWithDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchBindDeviceToEdgeInstanceWithDriverRequest is the request struct for api BatchBindDeviceToEdgeInstanceWithDriver
+type BatchBindDeviceToEdgeInstanceWithDriverRequest struct {
+	*requests.RpcRequest
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	DriverId      string    `position:"Query" name:"DriverId"`
+	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchBindDeviceToEdgeInstanceWithDriverResponse is the response struct for api BatchBindDeviceToEdgeInstanceWithDriver
+type BatchBindDeviceToEdgeInstanceWithDriverResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateBatchBindDeviceToEdgeInstanceWithDriverRequest creates a request to invoke BatchBindDeviceToEdgeInstanceWithDriver API
+func CreateBatchBindDeviceToEdgeInstanceWithDriverRequest() (request *BatchBindDeviceToEdgeInstanceWithDriverRequest) {
+	request = &BatchBindDeviceToEdgeInstanceWithDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchBindDeviceToEdgeInstanceWithDriver", "iot", "openAPI")
+	return
+}
+
+// CreateBatchBindDeviceToEdgeInstanceWithDriverResponse creates a response to parse from BatchBindDeviceToEdgeInstanceWithDriver response
+func CreateBatchBindDeviceToEdgeInstanceWithDriverResponse() (response *BatchBindDeviceToEdgeInstanceWithDriverResponse) {
+	response = &BatchBindDeviceToEdgeInstanceWithDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/batch_check_device_names.go

@@ -76,9 +76,9 @@ func (client *Client) BatchCheckDeviceNamesWithCallback(request *BatchCheckDevic
 // BatchCheckDeviceNamesRequest is the request struct for api BatchCheckDeviceNames
 // BatchCheckDeviceNamesRequest is the request struct for api BatchCheckDeviceNames
 type BatchCheckDeviceNamesRequest struct {
 type BatchCheckDeviceNamesRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string    `position:"Query" name:"ProductKey"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // BatchCheckDeviceNamesResponse is the response struct for api BatchCheckDeviceNames
 // BatchCheckDeviceNamesResponse is the response struct for api BatchCheckDeviceNames

+ 108 - 0
services/iot/batch_clear_edge_instance_device_config.go

@@ -0,0 +1,108 @@
+package iot
+
+//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"
+)
+
+// BatchClearEdgeInstanceDeviceConfig invokes the iot.BatchClearEdgeInstanceDeviceConfig API synchronously
+// api document: https://help.aliyun.com/api/iot/batchclearedgeinstancedeviceconfig.html
+func (client *Client) BatchClearEdgeInstanceDeviceConfig(request *BatchClearEdgeInstanceDeviceConfigRequest) (response *BatchClearEdgeInstanceDeviceConfigResponse, err error) {
+	response = CreateBatchClearEdgeInstanceDeviceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchClearEdgeInstanceDeviceConfigWithChan invokes the iot.BatchClearEdgeInstanceDeviceConfig API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchclearedgeinstancedeviceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchClearEdgeInstanceDeviceConfigWithChan(request *BatchClearEdgeInstanceDeviceConfigRequest) (<-chan *BatchClearEdgeInstanceDeviceConfigResponse, <-chan error) {
+	responseChan := make(chan *BatchClearEdgeInstanceDeviceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchClearEdgeInstanceDeviceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchClearEdgeInstanceDeviceConfigWithCallback invokes the iot.BatchClearEdgeInstanceDeviceConfig API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchclearedgeinstancedeviceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchClearEdgeInstanceDeviceConfigWithCallback(request *BatchClearEdgeInstanceDeviceConfigRequest, callback func(response *BatchClearEdgeInstanceDeviceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchClearEdgeInstanceDeviceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchClearEdgeInstanceDeviceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchClearEdgeInstanceDeviceConfigRequest is the request struct for api BatchClearEdgeInstanceDeviceConfig
+type BatchClearEdgeInstanceDeviceConfigRequest struct {
+	*requests.RpcRequest
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchClearEdgeInstanceDeviceConfigResponse is the response struct for api BatchClearEdgeInstanceDeviceConfig
+type BatchClearEdgeInstanceDeviceConfigResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateBatchClearEdgeInstanceDeviceConfigRequest creates a request to invoke BatchClearEdgeInstanceDeviceConfig API
+func CreateBatchClearEdgeInstanceDeviceConfigRequest() (request *BatchClearEdgeInstanceDeviceConfigRequest) {
+	request = &BatchClearEdgeInstanceDeviceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchClearEdgeInstanceDeviceConfig", "iot", "openAPI")
+	return
+}
+
+// CreateBatchClearEdgeInstanceDeviceConfigResponse creates a response to parse from BatchClearEdgeInstanceDeviceConfig response
+func CreateBatchClearEdgeInstanceDeviceConfigResponse() (response *BatchClearEdgeInstanceDeviceConfigResponse) {
+	response = &BatchClearEdgeInstanceDeviceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/batch_delete_device_group_relations.go

@@ -76,8 +76,8 @@ func (client *Client) BatchDeleteDeviceGroupRelationsWithCallback(request *Batch
 // BatchDeleteDeviceGroupRelationsRequest is the request struct for api BatchDeleteDeviceGroupRelations
 // BatchDeleteDeviceGroupRelationsRequest is the request struct for api BatchDeleteDeviceGroupRelations
 type BatchDeleteDeviceGroupRelationsRequest struct {
 type BatchDeleteDeviceGroupRelationsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string                                   `position:"Query" name:"IotInstanceId"`
 	GroupId       string                                   `position:"Query" name:"GroupId"`
 	GroupId       string                                   `position:"Query" name:"GroupId"`
+	IotInstanceId string                                   `position:"Query" name:"IotInstanceId"`
 	Device        *[]BatchDeleteDeviceGroupRelationsDevice `position:"Query" name:"Device"  type:"Repeated"`
 	Device        *[]BatchDeleteDeviceGroupRelationsDevice `position:"Query" name:"Device"  type:"Repeated"`
 }
 }
 
 

+ 109 - 0
services/iot/batch_get_device_driver.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// BatchGetDeviceDriver invokes the iot.BatchGetDeviceDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/batchgetdevicedriver.html
+func (client *Client) BatchGetDeviceDriver(request *BatchGetDeviceDriverRequest) (response *BatchGetDeviceDriverResponse, err error) {
+	response = CreateBatchGetDeviceDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchGetDeviceDriverWithChan invokes the iot.BatchGetDeviceDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetdevicedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetDeviceDriverWithChan(request *BatchGetDeviceDriverRequest) (<-chan *BatchGetDeviceDriverResponse, <-chan error) {
+	responseChan := make(chan *BatchGetDeviceDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchGetDeviceDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchGetDeviceDriverWithCallback invokes the iot.BatchGetDeviceDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetdevicedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetDeviceDriverWithCallback(request *BatchGetDeviceDriverRequest, callback func(response *BatchGetDeviceDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchGetDeviceDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchGetDeviceDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchGetDeviceDriverRequest is the request struct for api BatchGetDeviceDriver
+type BatchGetDeviceDriverRequest struct {
+	*requests.RpcRequest
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchGetDeviceDriverResponse is the response struct for api BatchGetDeviceDriver
+type BatchGetDeviceDriverResponse struct {
+	*responses.BaseResponse
+	RequestId        string         `json:"RequestId" xml:"RequestId"`
+	Success          bool           `json:"Success" xml:"Success"`
+	Code             string         `json:"Code" xml:"Code"`
+	ErrorMessage     string         `json:"ErrorMessage" xml:"ErrorMessage"`
+	DeviceDriverList []DeviceDriver `json:"DeviceDriverList" xml:"DeviceDriverList"`
+}
+
+// CreateBatchGetDeviceDriverRequest creates a request to invoke BatchGetDeviceDriver API
+func CreateBatchGetDeviceDriverRequest() (request *BatchGetDeviceDriverRequest) {
+	request = &BatchGetDeviceDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchGetDeviceDriver", "iot", "openAPI")
+	return
+}
+
+// CreateBatchGetDeviceDriverResponse creates a response to parse from BatchGetDeviceDriver response
+func CreateBatchGetDeviceDriverResponse() (response *BatchGetDeviceDriverResponse) {
+	response = &BatchGetDeviceDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/batch_get_device_state.go

@@ -76,10 +76,10 @@ func (client *Client) BatchGetDeviceStateWithCallback(request *BatchGetDeviceSta
 // BatchGetDeviceStateRequest is the request struct for api BatchGetDeviceState
 // BatchGetDeviceStateRequest is the request struct for api BatchGetDeviceState
 type BatchGetDeviceStateRequest struct {
 type BatchGetDeviceStateRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string    `position:"Query" name:"ProductKey"`
 	IotId         *[]string `position:"Query" name:"IotId"  type:"Repeated"`
 	IotId         *[]string `position:"Query" name:"IotId"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // BatchGetDeviceStateResponse is the response struct for api BatchGetDeviceState
 // BatchGetDeviceStateResponse is the response struct for api BatchGetDeviceState

+ 109 - 0
services/iot/batch_get_edge_instance_device_config.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// BatchGetEdgeInstanceDeviceConfig invokes the iot.BatchGetEdgeInstanceDeviceConfig API synchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgeinstancedeviceconfig.html
+func (client *Client) BatchGetEdgeInstanceDeviceConfig(request *BatchGetEdgeInstanceDeviceConfigRequest) (response *BatchGetEdgeInstanceDeviceConfigResponse, err error) {
+	response = CreateBatchGetEdgeInstanceDeviceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchGetEdgeInstanceDeviceConfigWithChan invokes the iot.BatchGetEdgeInstanceDeviceConfig API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgeinstancedeviceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetEdgeInstanceDeviceConfigWithChan(request *BatchGetEdgeInstanceDeviceConfigRequest) (<-chan *BatchGetEdgeInstanceDeviceConfigResponse, <-chan error) {
+	responseChan := make(chan *BatchGetEdgeInstanceDeviceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchGetEdgeInstanceDeviceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchGetEdgeInstanceDeviceConfigWithCallback invokes the iot.BatchGetEdgeInstanceDeviceConfig API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgeinstancedeviceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetEdgeInstanceDeviceConfigWithCallback(request *BatchGetEdgeInstanceDeviceConfigRequest, callback func(response *BatchGetEdgeInstanceDeviceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchGetEdgeInstanceDeviceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchGetEdgeInstanceDeviceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchGetEdgeInstanceDeviceConfigRequest is the request struct for api BatchGetEdgeInstanceDeviceConfig
+type BatchGetEdgeInstanceDeviceConfigRequest struct {
+	*requests.RpcRequest
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchGetEdgeInstanceDeviceConfigResponse is the response struct for api BatchGetEdgeInstanceDeviceConfig
+type BatchGetEdgeInstanceDeviceConfigResponse struct {
+	*responses.BaseResponse
+	RequestId        string         `json:"RequestId" xml:"RequestId"`
+	Success          bool           `json:"Success" xml:"Success"`
+	Code             string         `json:"Code" xml:"Code"`
+	ErrorMessage     string         `json:"ErrorMessage" xml:"ErrorMessage"`
+	DeviceConfigList []DeviceConfig `json:"DeviceConfigList" xml:"DeviceConfigList"`
+}
+
+// CreateBatchGetEdgeInstanceDeviceConfigRequest creates a request to invoke BatchGetEdgeInstanceDeviceConfig API
+func CreateBatchGetEdgeInstanceDeviceConfigRequest() (request *BatchGetEdgeInstanceDeviceConfigRequest) {
+	request = &BatchGetEdgeInstanceDeviceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchGetEdgeInstanceDeviceConfig", "iot", "openAPI")
+	return
+}
+
+// CreateBatchGetEdgeInstanceDeviceConfigResponse creates a response to parse from BatchGetEdgeInstanceDeviceConfig response
+func CreateBatchGetEdgeInstanceDeviceConfigResponse() (response *BatchGetEdgeInstanceDeviceConfigResponse) {
+	response = &BatchGetEdgeInstanceDeviceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/iot/batch_get_edge_instance_driver_configs.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// BatchGetEdgeInstanceDriverConfigs invokes the iot.BatchGetEdgeInstanceDriverConfigs API synchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgeinstancedriverconfigs.html
+func (client *Client) BatchGetEdgeInstanceDriverConfigs(request *BatchGetEdgeInstanceDriverConfigsRequest) (response *BatchGetEdgeInstanceDriverConfigsResponse, err error) {
+	response = CreateBatchGetEdgeInstanceDriverConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchGetEdgeInstanceDriverConfigsWithChan invokes the iot.BatchGetEdgeInstanceDriverConfigs API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgeinstancedriverconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetEdgeInstanceDriverConfigsWithChan(request *BatchGetEdgeInstanceDriverConfigsRequest) (<-chan *BatchGetEdgeInstanceDriverConfigsResponse, <-chan error) {
+	responseChan := make(chan *BatchGetEdgeInstanceDriverConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchGetEdgeInstanceDriverConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchGetEdgeInstanceDriverConfigsWithCallback invokes the iot.BatchGetEdgeInstanceDriverConfigs API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgeinstancedriverconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetEdgeInstanceDriverConfigsWithCallback(request *BatchGetEdgeInstanceDriverConfigsRequest, callback func(response *BatchGetEdgeInstanceDriverConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchGetEdgeInstanceDriverConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchGetEdgeInstanceDriverConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchGetEdgeInstanceDriverConfigsRequest is the request struct for api BatchGetEdgeInstanceDriverConfigs
+type BatchGetEdgeInstanceDriverConfigsRequest struct {
+	*requests.RpcRequest
+	DriverIds     *[]string `position:"Query" name:"DriverIds"  type:"Repeated"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchGetEdgeInstanceDriverConfigsResponse is the response struct for api BatchGetEdgeInstanceDriverConfigs
+type BatchGetEdgeInstanceDriverConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId        string         `json:"RequestId" xml:"RequestId"`
+	Success          bool           `json:"Success" xml:"Success"`
+	Code             string         `json:"Code" xml:"Code"`
+	ErrorMessage     string         `json:"ErrorMessage" xml:"ErrorMessage"`
+	DriverConfigList []DriverConfig `json:"DriverConfigList" xml:"DriverConfigList"`
+}
+
+// CreateBatchGetEdgeInstanceDriverConfigsRequest creates a request to invoke BatchGetEdgeInstanceDriverConfigs API
+func CreateBatchGetEdgeInstanceDriverConfigsRequest() (request *BatchGetEdgeInstanceDriverConfigsRequest) {
+	request = &BatchGetEdgeInstanceDriverConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchGetEdgeInstanceDriverConfigs", "iot", "openAPI")
+	return
+}
+
+// CreateBatchGetEdgeInstanceDriverConfigsResponse creates a response to parse from BatchGetEdgeInstanceDriverConfigs response
+func CreateBatchGetEdgeInstanceDriverConfigsResponse() (response *BatchGetEdgeInstanceDriverConfigsResponse) {
+	response = &BatchGetEdgeInstanceDriverConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/iot/batch_query_device_detail.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// BatchQueryDeviceDetail invokes the iot.BatchQueryDeviceDetail API synchronously
+// api document: https://help.aliyun.com/api/iot/batchquerydevicedetail.html
+func (client *Client) BatchQueryDeviceDetail(request *BatchQueryDeviceDetailRequest) (response *BatchQueryDeviceDetailResponse, err error) {
+	response = CreateBatchQueryDeviceDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchQueryDeviceDetailWithChan invokes the iot.BatchQueryDeviceDetail API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchquerydevicedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchQueryDeviceDetailWithChan(request *BatchQueryDeviceDetailRequest) (<-chan *BatchQueryDeviceDetailResponse, <-chan error) {
+	responseChan := make(chan *BatchQueryDeviceDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchQueryDeviceDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchQueryDeviceDetailWithCallback invokes the iot.BatchQueryDeviceDetail API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchquerydevicedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchQueryDeviceDetailWithCallback(request *BatchQueryDeviceDetailRequest, callback func(response *BatchQueryDeviceDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchQueryDeviceDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchQueryDeviceDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchQueryDeviceDetailRequest is the request struct for api BatchQueryDeviceDetail
+type BatchQueryDeviceDetailRequest struct {
+	*requests.RpcRequest
+	ProductKey    string    `position:"Query" name:"ProductKey"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
+}
+
+// BatchQueryDeviceDetailResponse is the response struct for api BatchQueryDeviceDetail
+type BatchQueryDeviceDetailResponse struct {
+	*responses.BaseResponse
+	RequestId    string                       `json:"RequestId" xml:"RequestId"`
+	Success      bool                         `json:"Success" xml:"Success"`
+	Code         string                       `json:"Code" xml:"Code"`
+	ErrorMessage string                       `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInBatchQueryDeviceDetail `json:"Data" xml:"Data"`
+}
+
+// CreateBatchQueryDeviceDetailRequest creates a request to invoke BatchQueryDeviceDetail API
+func CreateBatchQueryDeviceDetailRequest() (request *BatchQueryDeviceDetailRequest) {
+	request = &BatchQueryDeviceDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchQueryDeviceDetail", "iot", "openAPI")
+	return
+}
+
+// CreateBatchQueryDeviceDetailResponse creates a response to parse from BatchQueryDeviceDetail response
+func CreateBatchQueryDeviceDetailResponse() (response *BatchQueryDeviceDetailResponse) {
+	response = &BatchQueryDeviceDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/batch_register_device.go

@@ -76,9 +76,9 @@ func (client *Client) BatchRegisterDeviceWithCallback(request *BatchRegisterDevi
 // BatchRegisterDeviceRequest is the request struct for api BatchRegisterDevice
 // BatchRegisterDeviceRequest is the request struct for api BatchRegisterDevice
 type BatchRegisterDeviceRequest struct {
 type BatchRegisterDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	Count         requests.Integer `position:"Query" name:"Count"`
 	Count         requests.Integer `position:"Query" name:"Count"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // BatchRegisterDeviceResponse is the response struct for api BatchRegisterDevice
 // BatchRegisterDeviceResponse is the response struct for api BatchRegisterDevice

+ 1 - 1
services/iot/batch_register_device_with_apply_id.go

@@ -76,9 +76,9 @@ func (client *Client) BatchRegisterDeviceWithApplyIdWithCallback(request *BatchR
 // BatchRegisterDeviceWithApplyIdRequest is the request struct for api BatchRegisterDeviceWithApplyId
 // BatchRegisterDeviceWithApplyIdRequest is the request struct for api BatchRegisterDeviceWithApplyId
 type BatchRegisterDeviceWithApplyIdRequest struct {
 type BatchRegisterDeviceWithApplyIdRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string           `position:"Query" name:"ProductKey"`
 	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // BatchRegisterDeviceWithApplyIdResponse is the response struct for api BatchRegisterDeviceWithApplyId
 // BatchRegisterDeviceWithApplyIdResponse is the response struct for api BatchRegisterDeviceWithApplyId

+ 114 - 0
services/iot/batch_set_edge_instance_device_config.go

@@ -0,0 +1,114 @@
+package iot
+
+//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"
+)
+
+// BatchSetEdgeInstanceDeviceConfig invokes the iot.BatchSetEdgeInstanceDeviceConfig API synchronously
+// api document: https://help.aliyun.com/api/iot/batchsetedgeinstancedeviceconfig.html
+func (client *Client) BatchSetEdgeInstanceDeviceConfig(request *BatchSetEdgeInstanceDeviceConfigRequest) (response *BatchSetEdgeInstanceDeviceConfigResponse, err error) {
+	response = CreateBatchSetEdgeInstanceDeviceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchSetEdgeInstanceDeviceConfigWithChan invokes the iot.BatchSetEdgeInstanceDeviceConfig API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchsetedgeinstancedeviceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSetEdgeInstanceDeviceConfigWithChan(request *BatchSetEdgeInstanceDeviceConfigRequest) (<-chan *BatchSetEdgeInstanceDeviceConfigResponse, <-chan error) {
+	responseChan := make(chan *BatchSetEdgeInstanceDeviceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchSetEdgeInstanceDeviceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchSetEdgeInstanceDeviceConfigWithCallback invokes the iot.BatchSetEdgeInstanceDeviceConfig API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchsetedgeinstancedeviceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSetEdgeInstanceDeviceConfigWithCallback(request *BatchSetEdgeInstanceDeviceConfigRequest, callback func(response *BatchSetEdgeInstanceDeviceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchSetEdgeInstanceDeviceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchSetEdgeInstanceDeviceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchSetEdgeInstanceDeviceConfigRequest is the request struct for api BatchSetEdgeInstanceDeviceConfig
+type BatchSetEdgeInstanceDeviceConfigRequest struct {
+	*requests.RpcRequest
+	InstanceId    string                                           `position:"Query" name:"InstanceId"`
+	DeviceConfigs *[]BatchSetEdgeInstanceDeviceConfigDeviceConfigs `position:"Query" name:"DeviceConfigs"  type:"Repeated"`
+	IotInstanceId string                                           `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchSetEdgeInstanceDeviceConfigDeviceConfigs is a repeated param struct in BatchSetEdgeInstanceDeviceConfigRequest
+type BatchSetEdgeInstanceDeviceConfigDeviceConfigs struct {
+	IotId   string `name:"IotId"`
+	Content string `name:"Content"`
+}
+
+// BatchSetEdgeInstanceDeviceConfigResponse is the response struct for api BatchSetEdgeInstanceDeviceConfig
+type BatchSetEdgeInstanceDeviceConfigResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateBatchSetEdgeInstanceDeviceConfigRequest creates a request to invoke BatchSetEdgeInstanceDeviceConfig API
+func CreateBatchSetEdgeInstanceDeviceConfigRequest() (request *BatchSetEdgeInstanceDeviceConfigRequest) {
+	request = &BatchSetEdgeInstanceDeviceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchSetEdgeInstanceDeviceConfig", "iot", "openAPI")
+	return
+}
+
+// CreateBatchSetEdgeInstanceDeviceConfigResponse creates a response to parse from BatchSetEdgeInstanceDeviceConfig response
+func CreateBatchSetEdgeInstanceDeviceConfigResponse() (response *BatchSetEdgeInstanceDeviceConfigResponse) {
+	response = &BatchSetEdgeInstanceDeviceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/iot/batch_unbind_device_from_edge_instance.go

@@ -0,0 +1,108 @@
+package iot
+
+//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"
+)
+
+// BatchUnbindDeviceFromEdgeInstance invokes the iot.BatchUnbindDeviceFromEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/batchunbinddevicefromedgeinstance.html
+func (client *Client) BatchUnbindDeviceFromEdgeInstance(request *BatchUnbindDeviceFromEdgeInstanceRequest) (response *BatchUnbindDeviceFromEdgeInstanceResponse, err error) {
+	response = CreateBatchUnbindDeviceFromEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchUnbindDeviceFromEdgeInstanceWithChan invokes the iot.BatchUnbindDeviceFromEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchunbinddevicefromedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchUnbindDeviceFromEdgeInstanceWithChan(request *BatchUnbindDeviceFromEdgeInstanceRequest) (<-chan *BatchUnbindDeviceFromEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *BatchUnbindDeviceFromEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchUnbindDeviceFromEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchUnbindDeviceFromEdgeInstanceWithCallback invokes the iot.BatchUnbindDeviceFromEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchunbinddevicefromedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchUnbindDeviceFromEdgeInstanceWithCallback(request *BatchUnbindDeviceFromEdgeInstanceRequest, callback func(response *BatchUnbindDeviceFromEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchUnbindDeviceFromEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchUnbindDeviceFromEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchUnbindDeviceFromEdgeInstanceRequest is the request struct for api BatchUnbindDeviceFromEdgeInstance
+type BatchUnbindDeviceFromEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+}
+
+// BatchUnbindDeviceFromEdgeInstanceResponse is the response struct for api BatchUnbindDeviceFromEdgeInstance
+type BatchUnbindDeviceFromEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateBatchUnbindDeviceFromEdgeInstanceRequest creates a request to invoke BatchUnbindDeviceFromEdgeInstance API
+func CreateBatchUnbindDeviceFromEdgeInstanceRequest() (request *BatchUnbindDeviceFromEdgeInstanceRequest) {
+	request = &BatchUnbindDeviceFromEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchUnbindDeviceFromEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateBatchUnbindDeviceFromEdgeInstanceResponse creates a response to parse from BatchUnbindDeviceFromEdgeInstance response
+func CreateBatchUnbindDeviceFromEdgeInstanceResponse() (response *BatchUnbindDeviceFromEdgeInstanceResponse) {
+	response = &BatchUnbindDeviceFromEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/iot/bind_driver_to_edge_instance.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// BindDriverToEdgeInstance invokes the iot.BindDriverToEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/binddrivertoedgeinstance.html
+func (client *Client) BindDriverToEdgeInstance(request *BindDriverToEdgeInstanceRequest) (response *BindDriverToEdgeInstanceResponse, err error) {
+	response = CreateBindDriverToEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BindDriverToEdgeInstanceWithChan invokes the iot.BindDriverToEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/binddrivertoedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindDriverToEdgeInstanceWithChan(request *BindDriverToEdgeInstanceRequest) (<-chan *BindDriverToEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *BindDriverToEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BindDriverToEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BindDriverToEdgeInstanceWithCallback invokes the iot.BindDriverToEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/binddrivertoedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindDriverToEdgeInstanceWithCallback(request *BindDriverToEdgeInstanceRequest, callback func(response *BindDriverToEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BindDriverToEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.BindDriverToEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BindDriverToEdgeInstanceRequest is the request struct for api BindDriverToEdgeInstance
+type BindDriverToEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	OrderId       string `position:"Query" name:"OrderId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	DriverId      string `position:"Query" name:"DriverId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// BindDriverToEdgeInstanceResponse is the response struct for api BindDriverToEdgeInstance
+type BindDriverToEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateBindDriverToEdgeInstanceRequest creates a request to invoke BindDriverToEdgeInstance API
+func CreateBindDriverToEdgeInstanceRequest() (request *BindDriverToEdgeInstanceRequest) {
+	request = &BindDriverToEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BindDriverToEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateBindDriverToEdgeInstanceResponse creates a response to parse from BindDriverToEdgeInstance response
+func CreateBindDriverToEdgeInstanceResponse() (response *BindDriverToEdgeInstanceResponse) {
+	response = &BindDriverToEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/iot/bind_gateway_to_edge_instance.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// BindGatewayToEdgeInstance invokes the iot.BindGatewayToEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/bindgatewaytoedgeinstance.html
+func (client *Client) BindGatewayToEdgeInstance(request *BindGatewayToEdgeInstanceRequest) (response *BindGatewayToEdgeInstanceResponse, err error) {
+	response = CreateBindGatewayToEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BindGatewayToEdgeInstanceWithChan invokes the iot.BindGatewayToEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/bindgatewaytoedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindGatewayToEdgeInstanceWithChan(request *BindGatewayToEdgeInstanceRequest) (<-chan *BindGatewayToEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *BindGatewayToEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BindGatewayToEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BindGatewayToEdgeInstanceWithCallback invokes the iot.BindGatewayToEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/bindgatewaytoedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindGatewayToEdgeInstanceWithCallback(request *BindGatewayToEdgeInstanceRequest, callback func(response *BindGatewayToEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BindGatewayToEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.BindGatewayToEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BindGatewayToEdgeInstanceRequest is the request struct for api BindGatewayToEdgeInstance
+type BindGatewayToEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotId         string `position:"Query" name:"IotId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	DeviceName    string `position:"Query" name:"DeviceName"`
+}
+
+// BindGatewayToEdgeInstanceResponse is the response struct for api BindGatewayToEdgeInstance
+type BindGatewayToEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateBindGatewayToEdgeInstanceRequest creates a request to invoke BindGatewayToEdgeInstance API
+func CreateBindGatewayToEdgeInstanceRequest() (request *BindGatewayToEdgeInstanceRequest) {
+	request = &BindGatewayToEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BindGatewayToEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateBindGatewayToEdgeInstanceResponse creates a response to parse from BindGatewayToEdgeInstance response
+func CreateBindGatewayToEdgeInstanceResponse() (response *BindGatewayToEdgeInstanceResponse) {
+	response = &BindGatewayToEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/iot/clear_edge_instance_driver_configs.go

@@ -0,0 +1,108 @@
+package iot
+
+//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"
+)
+
+// ClearEdgeInstanceDriverConfigs invokes the iot.ClearEdgeInstanceDriverConfigs API synchronously
+// api document: https://help.aliyun.com/api/iot/clearedgeinstancedriverconfigs.html
+func (client *Client) ClearEdgeInstanceDriverConfigs(request *ClearEdgeInstanceDriverConfigsRequest) (response *ClearEdgeInstanceDriverConfigsResponse, err error) {
+	response = CreateClearEdgeInstanceDriverConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ClearEdgeInstanceDriverConfigsWithChan invokes the iot.ClearEdgeInstanceDriverConfigs API asynchronously
+// api document: https://help.aliyun.com/api/iot/clearedgeinstancedriverconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ClearEdgeInstanceDriverConfigsWithChan(request *ClearEdgeInstanceDriverConfigsRequest) (<-chan *ClearEdgeInstanceDriverConfigsResponse, <-chan error) {
+	responseChan := make(chan *ClearEdgeInstanceDriverConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ClearEdgeInstanceDriverConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ClearEdgeInstanceDriverConfigsWithCallback invokes the iot.ClearEdgeInstanceDriverConfigs API asynchronously
+// api document: https://help.aliyun.com/api/iot/clearedgeinstancedriverconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ClearEdgeInstanceDriverConfigsWithCallback(request *ClearEdgeInstanceDriverConfigsRequest, callback func(response *ClearEdgeInstanceDriverConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ClearEdgeInstanceDriverConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.ClearEdgeInstanceDriverConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ClearEdgeInstanceDriverConfigsRequest is the request struct for api ClearEdgeInstanceDriverConfigs
+type ClearEdgeInstanceDriverConfigsRequest struct {
+	*requests.RpcRequest
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	DriverId      string `position:"Query" name:"DriverId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// ClearEdgeInstanceDriverConfigsResponse is the response struct for api ClearEdgeInstanceDriverConfigs
+type ClearEdgeInstanceDriverConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateClearEdgeInstanceDriverConfigsRequest creates a request to invoke ClearEdgeInstanceDriverConfigs API
+func CreateClearEdgeInstanceDriverConfigsRequest() (request *ClearEdgeInstanceDriverConfigsRequest) {
+	request = &ClearEdgeInstanceDriverConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "ClearEdgeInstanceDriverConfigs", "iot", "openAPI")
+	return
+}
+
+// CreateClearEdgeInstanceDriverConfigsResponse creates a response to parse from ClearEdgeInstanceDriverConfigs response
+func CreateClearEdgeInstanceDriverConfigsResponse() (response *ClearEdgeInstanceDriverConfigsResponse) {
+	response = &ClearEdgeInstanceDriverConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 25 - 0
services/iot/client.go

@@ -16,6 +16,8 @@ package iot
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
 
 import (
 import (
+	"reflect"
+
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
@@ -26,10 +28,25 @@ type Client struct {
 	sdk.Client
 	sdk.Client
 }
 }
 
 
+// SetClientProperty Set Property by Reflect
+func SetClientProperty(client *Client, propertyName string, propertyValue interface{}) {
+	v := reflect.ValueOf(client).Elem()
+	if v.FieldByName(propertyName).IsValid() && v.FieldByName(propertyName).CanSet() {
+		v.FieldByName(propertyName).Set(reflect.ValueOf(propertyValue))
+	}
+}
+
+// SetEndpointDataToClient Set EndpointMap and ENdpointType
+func SetEndpointDataToClient(client *Client) {
+	SetClientProperty(client, "EndpointMap", GetEndpointMap())
+	SetClientProperty(client, "EndpointType", GetEndpointType())
+}
+
 // NewClient creates a sdk client with environment variables
 // NewClient creates a sdk client with environment variables
 func NewClient() (client *Client, err error) {
 func NewClient() (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.Init()
 	err = client.Init()
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -44,6 +61,7 @@ func NewClientWithProvider(regionId string, providers ...provider.Provider) (cli
 		pc = provider.NewProviderChain(providers)
 		pc = provider.NewProviderChain(providers)
 	}
 	}
 	err = client.InitWithProviderChain(regionId, pc)
 	err = client.InitWithProviderChain(regionId, pc)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -52,6 +70,7 @@ func NewClientWithProvider(regionId string, providers ...provider.Provider) (cli
 func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
 func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithOptions(regionId, config, credential)
 	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -60,6 +79,7 @@ func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.C
 func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
 func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
 	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -68,6 +88,7 @@ func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (clie
 func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
 func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
 	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -76,6 +97,7 @@ func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToke
 func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
 func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
 	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -84,6 +106,7 @@ func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, role
 func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
 func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
 	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -92,6 +115,7 @@ func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySec
 func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
 func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithEcsRamRole(regionId, roleName)
 	err = client.InitWithEcsRamRole(regionId, roleName)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }
 
 
@@ -100,5 +124,6 @@ func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client,
 func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
 func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
 	client = &Client{}
 	client = &Client{}
 	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
 	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	SetEndpointDataToClient(client)
 	return
 	return
 }
 }

+ 107 - 0
services/iot/close_edge_instance_deployment.go

@@ -0,0 +1,107 @@
+package iot
+
+//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"
+)
+
+// CloseEdgeInstanceDeployment invokes the iot.CloseEdgeInstanceDeployment API synchronously
+// api document: https://help.aliyun.com/api/iot/closeedgeinstancedeployment.html
+func (client *Client) CloseEdgeInstanceDeployment(request *CloseEdgeInstanceDeploymentRequest) (response *CloseEdgeInstanceDeploymentResponse, err error) {
+	response = CreateCloseEdgeInstanceDeploymentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CloseEdgeInstanceDeploymentWithChan invokes the iot.CloseEdgeInstanceDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/closeedgeinstancedeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CloseEdgeInstanceDeploymentWithChan(request *CloseEdgeInstanceDeploymentRequest) (<-chan *CloseEdgeInstanceDeploymentResponse, <-chan error) {
+	responseChan := make(chan *CloseEdgeInstanceDeploymentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CloseEdgeInstanceDeployment(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CloseEdgeInstanceDeploymentWithCallback invokes the iot.CloseEdgeInstanceDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/closeedgeinstancedeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CloseEdgeInstanceDeploymentWithCallback(request *CloseEdgeInstanceDeploymentRequest, callback func(response *CloseEdgeInstanceDeploymentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CloseEdgeInstanceDeploymentResponse
+		var err error
+		defer close(result)
+		response, err = client.CloseEdgeInstanceDeployment(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CloseEdgeInstanceDeploymentRequest is the request struct for api CloseEdgeInstanceDeployment
+type CloseEdgeInstanceDeploymentRequest struct {
+	*requests.RpcRequest
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// CloseEdgeInstanceDeploymentResponse is the response struct for api CloseEdgeInstanceDeployment
+type CloseEdgeInstanceDeploymentResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateCloseEdgeInstanceDeploymentRequest creates a request to invoke CloseEdgeInstanceDeployment API
+func CreateCloseEdgeInstanceDeploymentRequest() (request *CloseEdgeInstanceDeploymentRequest) {
+	request = &CloseEdgeInstanceDeploymentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "CloseEdgeInstanceDeployment", "iot", "openAPI")
+	return
+}
+
+// CreateCloseEdgeInstanceDeploymentResponse creates a response to parse from CloseEdgeInstanceDeployment response
+func CreateCloseEdgeInstanceDeploymentResponse() (response *CloseEdgeInstanceDeploymentResponse) {
+	response = &CloseEdgeInstanceDeploymentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 7 - 7
services/iot/create_data_api_service.go

@@ -76,18 +76,18 @@ func (client *Client) CreateDataAPIServiceWithCallback(request *CreateDataAPISer
 // CreateDataAPIServiceRequest is the request struct for api CreateDataAPIService
 // CreateDataAPIServiceRequest is the request struct for api CreateDataAPIService
 type CreateDataAPIServiceRequest struct {
 type CreateDataAPIServiceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	ResponseParam *[]CreateDataAPIServiceResponseParam `position:"Body" name:"ResponseParam"  type:"Repeated"`
-	OriginSql     string                               `position:"Query" name:"OriginSql"`
-	DisplayName   string                               `position:"Query" name:"DisplayName"`
 	ApiPath       string                               `position:"Query" name:"ApiPath"`
 	ApiPath       string                               `position:"Query" name:"ApiPath"`
 	RequestParam  *[]CreateDataAPIServiceRequestParam  `position:"Body" name:"RequestParam"  type:"Repeated"`
 	RequestParam  *[]CreateDataAPIServiceRequestParam  `position:"Body" name:"RequestParam"  type:"Repeated"`
 	FolderId      string                               `position:"Query" name:"FolderId"`
 	FolderId      string                               `position:"Query" name:"FolderId"`
 	TemplateSql   string                               `position:"Query" name:"TemplateSql"`
 	TemplateSql   string                               `position:"Query" name:"TemplateSql"`
+	ResponseParam *[]CreateDataAPIServiceResponseParam `position:"Body" name:"ResponseParam"  type:"Repeated"`
+	OriginSql     string                               `position:"Query" name:"OriginSql"`
+	DisplayName   string                               `position:"Query" name:"DisplayName"`
 	Desc          string                               `position:"Query" name:"Desc"`
 	Desc          string                               `position:"Query" name:"Desc"`
 }
 }
 
 
-// CreateDataAPIServiceResponseParam is a repeated param struct in CreateDataAPIServiceRequest
-type CreateDataAPIServiceResponseParam struct {
+// CreateDataAPIServiceRequestParam is a repeated param struct in CreateDataAPIServiceRequest
+type CreateDataAPIServiceRequestParam struct {
 	Name     string `name:"Name"`
 	Name     string `name:"Name"`
 	Type     string `name:"Type"`
 	Type     string `name:"Type"`
 	Required string `name:"Required"`
 	Required string `name:"Required"`
@@ -95,8 +95,8 @@ type CreateDataAPIServiceResponseParam struct {
 	Example  string `name:"Example"`
 	Example  string `name:"Example"`
 }
 }
 
 
-// CreateDataAPIServiceRequestParam is a repeated param struct in CreateDataAPIServiceRequest
-type CreateDataAPIServiceRequestParam struct {
+// CreateDataAPIServiceResponseParam is a repeated param struct in CreateDataAPIServiceRequest
+type CreateDataAPIServiceResponseParam struct {
 	Name     string `name:"Name"`
 	Name     string `name:"Name"`
 	Type     string `name:"Type"`
 	Type     string `name:"Type"`
 	Required string `name:"Required"`
 	Required string `name:"Required"`

+ 2 - 2
services/iot/create_device_group.go

@@ -76,10 +76,10 @@ func (client *Client) CreateDeviceGroupWithCallback(request *CreateDeviceGroupRe
 // CreateDeviceGroupRequest is the request struct for api CreateDeviceGroup
 // CreateDeviceGroupRequest is the request struct for api CreateDeviceGroup
 type CreateDeviceGroupRequest struct {
 type CreateDeviceGroupRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	GroupDesc     string `position:"Query" name:"GroupDesc"`
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	SuperGroupId  string `position:"Query" name:"SuperGroupId"`
 	SuperGroupId  string `position:"Query" name:"SuperGroupId"`
 	GroupName     string `position:"Query" name:"GroupName"`
 	GroupName     string `position:"Query" name:"GroupName"`
+	GroupDesc     string `position:"Query" name:"GroupDesc"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // CreateDeviceGroupResponse is the response struct for api CreateDeviceGroup
 // CreateDeviceGroupResponse is the response struct for api CreateDeviceGroup

+ 110 - 0
services/iot/create_edge_instance.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// CreateEdgeInstance invokes the iot.CreateEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/createedgeinstance.html
+func (client *Client) CreateEdgeInstance(request *CreateEdgeInstanceRequest) (response *CreateEdgeInstanceResponse, err error) {
+	response = CreateCreateEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateEdgeInstanceWithChan invokes the iot.CreateEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeInstanceWithChan(request *CreateEdgeInstanceRequest) (<-chan *CreateEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateEdgeInstanceWithCallback invokes the iot.CreateEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeInstanceWithCallback(request *CreateEdgeInstanceRequest, callback func(response *CreateEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateEdgeInstanceRequest is the request struct for api CreateEdgeInstance
+type CreateEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	Spec          requests.Integer `position:"Query" name:"Spec"`
+	Tags          string           `position:"Query" name:"Tags"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	Name          string           `position:"Query" name:"Name"`
+}
+
+// CreateEdgeInstanceResponse is the response struct for api CreateEdgeInstance
+type CreateEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Code         string `json:"Code" xml:"Code"`
+	InstanceId   string `json:"InstanceId" xml:"InstanceId"`
+}
+
+// CreateCreateEdgeInstanceRequest creates a request to invoke CreateEdgeInstance API
+func CreateCreateEdgeInstanceRequest() (request *CreateEdgeInstanceRequest) {
+	request = &CreateEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "CreateEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateCreateEdgeInstanceResponse creates a response to parse from CreateEdgeInstance response
+func CreateCreateEdgeInstanceResponse() (response *CreateEdgeInstanceResponse) {
+	response = &CreateEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/iot/create_edge_instance_deployment.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// CreateEdgeInstanceDeployment invokes the iot.CreateEdgeInstanceDeployment API synchronously
+// api document: https://help.aliyun.com/api/iot/createedgeinstancedeployment.html
+func (client *Client) CreateEdgeInstanceDeployment(request *CreateEdgeInstanceDeploymentRequest) (response *CreateEdgeInstanceDeploymentResponse, err error) {
+	response = CreateCreateEdgeInstanceDeploymentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateEdgeInstanceDeploymentWithChan invokes the iot.CreateEdgeInstanceDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgeinstancedeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeInstanceDeploymentWithChan(request *CreateEdgeInstanceDeploymentRequest) (<-chan *CreateEdgeInstanceDeploymentResponse, <-chan error) {
+	responseChan := make(chan *CreateEdgeInstanceDeploymentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateEdgeInstanceDeployment(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateEdgeInstanceDeploymentWithCallback invokes the iot.CreateEdgeInstanceDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgeinstancedeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeInstanceDeploymentWithCallback(request *CreateEdgeInstanceDeploymentRequest, callback func(response *CreateEdgeInstanceDeploymentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateEdgeInstanceDeploymentResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateEdgeInstanceDeployment(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateEdgeInstanceDeploymentRequest is the request struct for api CreateEdgeInstanceDeployment
+type CreateEdgeInstanceDeploymentRequest struct {
+	*requests.RpcRequest
+	Type          string `position:"Query" name:"Type"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// CreateEdgeInstanceDeploymentResponse is the response struct for api CreateEdgeInstanceDeployment
+type CreateEdgeInstanceDeploymentResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	DeploymentId string `json:"DeploymentId" xml:"DeploymentId"`
+}
+
+// CreateCreateEdgeInstanceDeploymentRequest creates a request to invoke CreateEdgeInstanceDeployment API
+func CreateCreateEdgeInstanceDeploymentRequest() (request *CreateEdgeInstanceDeploymentRequest) {
+	request = &CreateEdgeInstanceDeploymentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "CreateEdgeInstanceDeployment", "iot", "openAPI")
+	return
+}
+
+// CreateCreateEdgeInstanceDeploymentResponse creates a response to parse from CreateEdgeInstanceDeployment response
+func CreateCreateEdgeInstanceDeploymentResponse() (response *CreateEdgeInstanceDeploymentResponse) {
+	response = &CreateEdgeInstanceDeploymentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/create_lo_ra_nodes_task.go

@@ -76,8 +76,8 @@ func (client *Client) CreateLoRaNodesTaskWithCallback(request *CreateLoRaNodesTa
 // CreateLoRaNodesTaskRequest is the request struct for api CreateLoRaNodesTask
 // CreateLoRaNodesTaskRequest is the request struct for api CreateLoRaNodesTask
 type CreateLoRaNodesTaskRequest struct {
 type CreateLoRaNodesTaskRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string                           `position:"Query" name:"IotInstanceId"`
 	ProductKey    string                           `position:"Query" name:"ProductKey"`
 	ProductKey    string                           `position:"Query" name:"ProductKey"`
+	IotInstanceId string                           `position:"Query" name:"IotInstanceId"`
 	DeviceInfo    *[]CreateLoRaNodesTaskDeviceInfo `position:"Query" name:"DeviceInfo"  type:"Repeated"`
 	DeviceInfo    *[]CreateLoRaNodesTaskDeviceInfo `position:"Query" name:"DeviceInfo"  type:"Repeated"`
 }
 }
 
 

+ 8 - 6
services/iot/create_product.go

@@ -76,17 +76,19 @@ func (client *Client) CreateProductWithCallback(request *CreateProductRequest, c
 // CreateProductRequest is the request struct for api CreateProduct
 // CreateProductRequest is the request struct for api CreateProduct
 type CreateProductRequest struct {
 type CreateProductRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	DataFormat          requests.Integer `position:"Query" name:"DataFormat"`
 	NodeType            requests.Integer `position:"Query" name:"NodeType"`
 	NodeType            requests.Integer `position:"Query" name:"NodeType"`
-	Id2                 requests.Boolean `position:"Query" name:"Id2"`
+	Description         string           `position:"Query" name:"Description"`
+	JoinPermissionId    string           `position:"Query" name:"JoinPermissionId"`
+	AuthType            string           `position:"Query" name:"AuthType"`
+	ResourceGroupId     string           `position:"Query" name:"ResourceGroupId"`
 	IotInstanceId       string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId       string           `position:"Query" name:"IotInstanceId"`
-	NetType             string           `position:"Query" name:"NetType"`
 	ProductName         string           `position:"Query" name:"ProductName"`
 	ProductName         string           `position:"Query" name:"ProductName"`
-	Description         string           `position:"Query" name:"Description"`
-	ProtocolType        string           `position:"Query" name:"ProtocolType"`
 	AliyunCommodityCode string           `position:"Query" name:"AliyunCommodityCode"`
 	AliyunCommodityCode string           `position:"Query" name:"AliyunCommodityCode"`
-	JoinPermissionId    string           `position:"Query" name:"JoinPermissionId"`
 	CategoryId          requests.Integer `position:"Query" name:"CategoryId"`
 	CategoryId          requests.Integer `position:"Query" name:"CategoryId"`
+	DataFormat          requests.Integer `position:"Query" name:"DataFormat"`
+	Id2                 requests.Boolean `position:"Query" name:"Id2"`
+	NetType             string           `position:"Query" name:"NetType"`
+	ProtocolType        string           `position:"Query" name:"ProtocolType"`
 }
 }
 
 
 // CreateProductResponse is the response struct for api CreateProduct
 // CreateProductResponse is the response struct for api CreateProduct

+ 1 - 1
services/iot/create_product_tags.go

@@ -76,9 +76,9 @@ func (client *Client) CreateProductTagsWithCallback(request *CreateProductTagsRe
 // CreateProductTagsRequest is the request struct for api CreateProductTags
 // CreateProductTagsRequest is the request struct for api CreateProductTags
 type CreateProductTagsRequest struct {
 type CreateProductTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string                         `position:"Query" name:"ProductKey"`
 	ProductTag    *[]CreateProductTagsProductTag `position:"Query" name:"ProductTag"  type:"Repeated"`
 	ProductTag    *[]CreateProductTagsProductTag `position:"Query" name:"ProductTag"  type:"Repeated"`
 	IotInstanceId string                         `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string                         `position:"Query" name:"IotInstanceId"`
-	ProductKey    string                         `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // CreateProductTagsProductTag is a repeated param struct in CreateProductTagsRequest
 // CreateProductTagsProductTag is a repeated param struct in CreateProductTagsRequest

+ 1 - 1
services/iot/create_product_topic.go

@@ -76,8 +76,8 @@ func (client *Client) CreateProductTopicWithCallback(request *CreateProductTopic
 // CreateProductTopicRequest is the request struct for api CreateProductTopic
 // CreateProductTopicRequest is the request struct for api CreateProductTopic
 type CreateProductTopicRequest struct {
 type CreateProductTopicRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId  string `position:"Query" name:"IotInstanceId"`
 	ProductKey     string `position:"Query" name:"ProductKey"`
 	ProductKey     string `position:"Query" name:"ProductKey"`
+	IotInstanceId  string `position:"Query" name:"IotInstanceId"`
 	TopicShortName string `position:"Query" name:"TopicShortName"`
 	TopicShortName string `position:"Query" name:"TopicShortName"`
 	Operation      string `position:"Query" name:"Operation"`
 	Operation      string `position:"Query" name:"Operation"`
 	Desc           string `position:"Query" name:"Desc"`
 	Desc           string `position:"Query" name:"Desc"`

+ 2 - 2
services/iot/create_rule.go

@@ -78,13 +78,13 @@ type CreateRuleRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	Select        string           `position:"Query" name:"Select"`
 	Select        string           `position:"Query" name:"Select"`
 	RuleDesc      string           `position:"Query" name:"RuleDesc"`
 	RuleDesc      string           `position:"Query" name:"RuleDesc"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
+	ShortTopic    string           `position:"Query" name:"ShortTopic"`
 	DataType      string           `position:"Query" name:"DataType"`
 	DataType      string           `position:"Query" name:"DataType"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	Name          string           `position:"Query" name:"Name"`
 	Name          string           `position:"Query" name:"Name"`
 	Where         string           `position:"Query" name:"Where"`
 	Where         string           `position:"Query" name:"Where"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 	TopicType     requests.Integer `position:"Query" name:"TopicType"`
 	TopicType     requests.Integer `position:"Query" name:"TopicType"`
-	ShortTopic    string           `position:"Query" name:"ShortTopic"`
 }
 }
 
 
 // CreateRuleResponse is the response struct for api CreateRule
 // CreateRuleResponse is the response struct for api CreateRule

+ 1 - 1
services/iot/create_rule_action.go

@@ -77,9 +77,9 @@ func (client *Client) CreateRuleActionWithCallback(request *CreateRuleActionRequ
 type CreateRuleActionRequest struct {
 type CreateRuleActionRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	Configuration   string           `position:"Query" name:"Configuration"`
 	Configuration   string           `position:"Query" name:"Configuration"`
+	Type            string           `position:"Query" name:"Type"`
 	IotInstanceId   string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId   string           `position:"Query" name:"IotInstanceId"`
 	RuleId          requests.Integer `position:"Query" name:"RuleId"`
 	RuleId          requests.Integer `position:"Query" name:"RuleId"`
-	Type            string           `position:"Query" name:"Type"`
 	ErrorActionFlag requests.Boolean `position:"Query" name:"ErrorActionFlag"`
 	ErrorActionFlag requests.Boolean `position:"Query" name:"ErrorActionFlag"`
 }
 }
 
 

+ 1 - 1
services/iot/delete_device.go

@@ -76,10 +76,10 @@ func (client *Client) DeleteDeviceWithCallback(request *DeleteDeviceRequest, cal
 // DeleteDeviceRequest is the request struct for api DeleteDevice
 // DeleteDeviceRequest is the request struct for api DeleteDevice
 type DeleteDeviceRequest struct {
 type DeleteDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // DeleteDeviceResponse is the response struct for api DeleteDevice
 // DeleteDeviceResponse is the response struct for api DeleteDevice

+ 1 - 1
services/iot/delete_device_file.go

@@ -76,10 +76,10 @@ func (client *Client) DeleteDeviceFileWithCallback(request *DeleteDeviceFileRequ
 // DeleteDeviceFileRequest is the request struct for api DeleteDeviceFile
 // DeleteDeviceFileRequest is the request struct for api DeleteDeviceFile
 type DeleteDeviceFileRequest struct {
 type DeleteDeviceFileRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 	FileId        string `position:"Query" name:"FileId"`
 	FileId        string `position:"Query" name:"FileId"`
 }
 }
 
 

+ 1 - 1
services/iot/delete_device_group.go

@@ -76,8 +76,8 @@ func (client *Client) DeleteDeviceGroupWithCallback(request *DeleteDeviceGroupRe
 // DeleteDeviceGroupRequest is the request struct for api DeleteDeviceGroup
 // DeleteDeviceGroupRequest is the request struct for api DeleteDeviceGroup
 type DeleteDeviceGroupRequest struct {
 type DeleteDeviceGroupRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	GroupId       string `position:"Query" name:"GroupId"`
 	GroupId       string `position:"Query" name:"GroupId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // DeleteDeviceGroupResponse is the response struct for api DeleteDeviceGroup
 // DeleteDeviceGroupResponse is the response struct for api DeleteDeviceGroup

+ 2 - 2
services/iot/delete_device_prop.go

@@ -76,11 +76,11 @@ func (client *Client) DeleteDevicePropWithCallback(request *DeleteDevicePropRequ
 // DeleteDevicePropRequest is the request struct for api DeleteDeviceProp
 // DeleteDevicePropRequest is the request struct for api DeleteDeviceProp
 type DeleteDevicePropRequest struct {
 type DeleteDevicePropRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	PropKey       string `position:"Query" name:"PropKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
-	PropKey       string `position:"Query" name:"PropKey"`
 }
 }
 
 
 // DeleteDevicePropResponse is the response struct for api DeleteDeviceProp
 // DeleteDevicePropResponse is the response struct for api DeleteDeviceProp

+ 107 - 0
services/iot/delete_edge_instance.go

@@ -0,0 +1,107 @@
+package iot
+
+//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"
+)
+
+// DeleteEdgeInstance invokes the iot.DeleteEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgeinstance.html
+func (client *Client) DeleteEdgeInstance(request *DeleteEdgeInstanceRequest) (response *DeleteEdgeInstanceResponse, err error) {
+	response = CreateDeleteEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteEdgeInstanceWithChan invokes the iot.DeleteEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteEdgeInstanceWithChan(request *DeleteEdgeInstanceRequest) (<-chan *DeleteEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *DeleteEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteEdgeInstanceWithCallback invokes the iot.DeleteEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteEdgeInstanceWithCallback(request *DeleteEdgeInstanceRequest, callback func(response *DeleteEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteEdgeInstanceRequest is the request struct for api DeleteEdgeInstance
+type DeleteEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// DeleteEdgeInstanceResponse is the response struct for api DeleteEdgeInstance
+type DeleteEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+}
+
+// CreateDeleteEdgeInstanceRequest creates a request to invoke DeleteEdgeInstance API
+func CreateDeleteEdgeInstanceRequest() (request *DeleteEdgeInstanceRequest) {
+	request = &DeleteEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "DeleteEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateDeleteEdgeInstanceResponse creates a response to parse from DeleteEdgeInstance response
+func CreateDeleteEdgeInstanceResponse() (response *DeleteEdgeInstanceResponse) {
+	response = &DeleteEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/delete_product.go

@@ -76,8 +76,8 @@ func (client *Client) DeleteProductWithCallback(request *DeleteProductRequest, c
 // DeleteProductRequest is the request struct for api DeleteProduct
 // DeleteProductRequest is the request struct for api DeleteProduct
 type DeleteProductRequest struct {
 type DeleteProductRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // DeleteProductResponse is the response struct for api DeleteProduct
 // DeleteProductResponse is the response struct for api DeleteProduct

+ 1 - 1
services/iot/delete_product_tags.go

@@ -76,9 +76,9 @@ func (client *Client) DeleteProductTagsWithCallback(request *DeleteProductTagsRe
 // DeleteProductTagsRequest is the request struct for api DeleteProductTags
 // DeleteProductTagsRequest is the request struct for api DeleteProductTags
 type DeleteProductTagsRequest struct {
 type DeleteProductTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string    `position:"Query" name:"ProductKey"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	ProductTagKey *[]string `position:"Query" name:"ProductTagKey"  type:"Repeated"`
 	ProductTagKey *[]string `position:"Query" name:"ProductTagKey"  type:"Repeated"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // DeleteProductTagsResponse is the response struct for api DeleteProductTags
 // DeleteProductTagsResponse is the response struct for api DeleteProductTags

+ 1 - 1
services/iot/disable_thing.go

@@ -76,10 +76,10 @@ func (client *Client) DisableThingWithCallback(request *DisableThingRequest, cal
 // DisableThingRequest is the request struct for api DisableThing
 // DisableThingRequest is the request struct for api DisableThing
 type DisableThingRequest struct {
 type DisableThingRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // DisableThingResponse is the response struct for api DisableThing
 // DisableThingResponse is the response struct for api DisableThing

+ 1 - 1
services/iot/enable_thing.go

@@ -76,10 +76,10 @@ func (client *Client) EnableThingWithCallback(request *EnableThingRequest, callb
 // EnableThingRequest is the request struct for api EnableThing
 // EnableThingRequest is the request struct for api EnableThing
 type EnableThingRequest struct {
 type EnableThingRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // EnableThingResponse is the response struct for api EnableThing
 // EnableThingResponse is the response struct for api EnableThing

+ 68 - 0
services/iot/endpoint.go

@@ -0,0 +1,68 @@
+package iot
+
+// EndpointMap Endpoint Data
+var EndpointMap map[string]string
+
+// EndpointType regional or central
+var EndpointType = "regional"
+
+// GetEndpointMap Get Endpoint Data Map
+func GetEndpointMap() map[string]string {
+	if EndpointMap == nil {
+		EndpointMap = map[string]string{
+			"cn-shanghai-internal-test-1": "iot.aliyuncs.com",
+			"cn-beijing-gov-1":            "iot.aliyuncs.com",
+			"cn-shenzhen-su18-b01":        "iot.aliyuncs.com",
+			"cn-beijing":                  "iot.aliyuncs.com",
+			"ap-south-1":                  "iot.ap-northeast-1.aliyuncs.com",
+			"cn-shanghai-inner":           "iot.aliyuncs.com",
+			"cn-shenzhen-st4-d01":         "iot.aliyuncs.com",
+			"cn-haidian-cm12-c01":         "iot.aliyuncs.com",
+			"cn-hangzhou-internal-prod-1": "iot.aliyuncs.com",
+			"cn-north-2-gov-1":            "iot.aliyuncs.com",
+			"cn-yushanfang":               "iot.aliyuncs.com",
+			"cn-qingdao":                  "iot.aliyuncs.com",
+			"cn-hongkong-finance-pop":     "iot.aliyuncs.com",
+			"cn-qingdao-nebula":           "iot.aliyuncs.com",
+			"cn-shanghai-finance-1":       "iot.aliyuncs.com",
+			"cn-hongkong":                 "iot.aliyuncs.com",
+			"cn-beijing-finance-pop":      "iot.aliyuncs.com",
+			"cn-wuhan":                    "iot.aliyuncs.com",
+			"cn-zhangjiakou":              "iot.aliyuncs.com",
+			"cn-shenzhen":                 "iot.aliyuncs.com",
+			"cn-zhengzhou-nebula-1":       "iot.aliyuncs.com",
+			"rus-west-1-pop":              "iot.ap-northeast-1.aliyuncs.com",
+			"cn-shanghai-et15-b01":        "iot.aliyuncs.com",
+			"cn-hangzhou-bj-b01":          "iot.aliyuncs.com",
+			"eu-west-1":                   "iot.ap-northeast-1.aliyuncs.com",
+			"cn-hangzhou-internal-test-1": "iot.aliyuncs.com",
+			"eu-west-1-oxs":               "iot.ap-northeast-1.aliyuncs.com",
+			"cn-zhangbei-na61-b01":        "iot.aliyuncs.com",
+			"cn-beijing-finance-1":        "iot.aliyuncs.com",
+			"cn-hangzhou-internal-test-3": "iot.aliyuncs.com",
+			"cn-hangzhou-internal-test-2": "iot.aliyuncs.com",
+			"cn-shenzhen-finance-1":       "iot.aliyuncs.com",
+			"me-east-1":                   "iot.ap-northeast-1.aliyuncs.com",
+			"cn-chengdu":                  "iot.aliyuncs.com",
+			"cn-hangzhou-test-306":        "iot.aliyuncs.com",
+			"cn-shanghai-et2-b01":         "iot.aliyuncs.com",
+			"cn-hangzhou-finance":         "iot.aliyuncs.com",
+			"cn-beijing-nu16-b01":         "iot.aliyuncs.com",
+			"cn-edge-1":                   "iot.aliyuncs.com",
+			"ap-southeast-2":              "iot.ap-northeast-1.aliyuncs.com",
+			"ap-southeast-3":              "iot.ap-northeast-1.aliyuncs.com",
+			"cn-huhehaote":                "iot.aliyuncs.com",
+			"ap-southeast-5":              "iot.ap-northeast-1.aliyuncs.com",
+			"cn-fujian":                   "iot.aliyuncs.com",
+			"ap-northeast-2-pop":          "iot.ap-northeast-1.aliyuncs.com",
+			"cn-shenzhen-inner":           "iot.aliyuncs.com",
+			"cn-zhangjiakou-na62-a01":     "iot.aliyuncs.com",
+		}
+	}
+	return EndpointMap
+}
+
+// GetEndpointType Get Endpoint Type Value
+func GetEndpointType() string {
+	return EndpointType
+}

+ 109 - 0
services/iot/get_device_list_by_iot_ids.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// GetDeviceListByIotIds invokes the iot.GetDeviceListByIotIds API synchronously
+// api document: https://help.aliyun.com/api/iot/getdevicelistbyiotids.html
+func (client *Client) GetDeviceListByIotIds(request *GetDeviceListByIotIdsRequest) (response *GetDeviceListByIotIdsResponse, err error) {
+	response = CreateGetDeviceListByIotIdsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetDeviceListByIotIdsWithChan invokes the iot.GetDeviceListByIotIds API asynchronously
+// api document: https://help.aliyun.com/api/iot/getdevicelistbyiotids.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetDeviceListByIotIdsWithChan(request *GetDeviceListByIotIdsRequest) (<-chan *GetDeviceListByIotIdsResponse, <-chan error) {
+	responseChan := make(chan *GetDeviceListByIotIdsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetDeviceListByIotIds(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetDeviceListByIotIdsWithCallback invokes the iot.GetDeviceListByIotIds API asynchronously
+// api document: https://help.aliyun.com/api/iot/getdevicelistbyiotids.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetDeviceListByIotIdsWithCallback(request *GetDeviceListByIotIdsRequest, callback func(response *GetDeviceListByIotIdsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetDeviceListByIotIdsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetDeviceListByIotIds(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetDeviceListByIotIdsRequest is the request struct for api GetDeviceListByIotIds
+type GetDeviceListByIotIdsRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	IotIds          string `position:"Query" name:"IotIds"`
+	IotInstanceId   string `position:"Query" name:"IotInstanceId"`
+}
+
+// GetDeviceListByIotIdsResponse is the response struct for api GetDeviceListByIotIds
+type GetDeviceListByIotIdsResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Code         string `json:"Code" xml:"Code"`
+	Data         string `json:"Data" xml:"Data"`
+}
+
+// CreateGetDeviceListByIotIdsRequest creates a request to invoke GetDeviceListByIotIds API
+func CreateGetDeviceListByIotIdsRequest() (request *GetDeviceListByIotIdsRequest) {
+	request = &GetDeviceListByIotIdsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GetDeviceListByIotIds", "iot", "openAPI")
+	return
+}
+
+// CreateGetDeviceListByIotIdsResponse creates a response to parse from GetDeviceListByIotIds response
+func CreateGetDeviceListByIotIdsResponse() (response *GetDeviceListByIotIdsResponse) {
+	response = &GetDeviceListByIotIdsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/get_device_shadow.go

@@ -77,9 +77,9 @@ func (client *Client) GetDeviceShadowWithCallback(request *GetDeviceShadowReques
 type GetDeviceShadowRequest struct {
 type GetDeviceShadowRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	ShadowMessage string `position:"Query" name:"ShadowMessage"`
 	ShadowMessage string `position:"Query" name:"ShadowMessage"`
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // GetDeviceShadowResponse is the response struct for api GetDeviceShadow
 // GetDeviceShadowResponse is the response struct for api GetDeviceShadow

+ 1 - 1
services/iot/get_device_status.go

@@ -76,10 +76,10 @@ func (client *Client) GetDeviceStatusWithCallback(request *GetDeviceStatusReques
 // GetDeviceStatusRequest is the request struct for api GetDeviceStatus
 // GetDeviceStatusRequest is the request struct for api GetDeviceStatus
 type GetDeviceStatusRequest struct {
 type GetDeviceStatusRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // GetDeviceStatusResponse is the response struct for api GetDeviceStatus
 // GetDeviceStatusResponse is the response struct for api GetDeviceStatus

+ 108 - 0
services/iot/get_edge_instance.go

@@ -0,0 +1,108 @@
+package iot
+
+//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"
+)
+
+// GetEdgeInstance invokes the iot.GetEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/getedgeinstance.html
+func (client *Client) GetEdgeInstance(request *GetEdgeInstanceRequest) (response *GetEdgeInstanceResponse, err error) {
+	response = CreateGetEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetEdgeInstanceWithChan invokes the iot.GetEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/getedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetEdgeInstanceWithChan(request *GetEdgeInstanceRequest) (<-chan *GetEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *GetEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetEdgeInstanceWithCallback invokes the iot.GetEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/getedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetEdgeInstanceWithCallback(request *GetEdgeInstanceRequest, callback func(response *GetEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetEdgeInstanceRequest is the request struct for api GetEdgeInstance
+type GetEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// GetEdgeInstanceResponse is the response struct for api GetEdgeInstance
+type GetEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         Data   `json:"Data" xml:"Data"`
+}
+
+// CreateGetEdgeInstanceRequest creates a request to invoke GetEdgeInstance API
+func CreateGetEdgeInstanceRequest() (request *GetEdgeInstanceRequest) {
+	request = &GetEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GetEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateGetEdgeInstanceResponse creates a response to parse from GetEdgeInstance response
+func CreateGetEdgeInstanceResponse() (response *GetEdgeInstanceResponse) {
+	response = &GetEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/iot/get_edge_instance_deployment.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// GetEdgeInstanceDeployment invokes the iot.GetEdgeInstanceDeployment API synchronously
+// api document: https://help.aliyun.com/api/iot/getedgeinstancedeployment.html
+func (client *Client) GetEdgeInstanceDeployment(request *GetEdgeInstanceDeploymentRequest) (response *GetEdgeInstanceDeploymentResponse, err error) {
+	response = CreateGetEdgeInstanceDeploymentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetEdgeInstanceDeploymentWithChan invokes the iot.GetEdgeInstanceDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/getedgeinstancedeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetEdgeInstanceDeploymentWithChan(request *GetEdgeInstanceDeploymentRequest) (<-chan *GetEdgeInstanceDeploymentResponse, <-chan error) {
+	responseChan := make(chan *GetEdgeInstanceDeploymentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetEdgeInstanceDeployment(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetEdgeInstanceDeploymentWithCallback invokes the iot.GetEdgeInstanceDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/getedgeinstancedeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetEdgeInstanceDeploymentWithCallback(request *GetEdgeInstanceDeploymentRequest, callback func(response *GetEdgeInstanceDeploymentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetEdgeInstanceDeploymentResponse
+		var err error
+		defer close(result)
+		response, err = client.GetEdgeInstanceDeployment(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetEdgeInstanceDeploymentRequest is the request struct for api GetEdgeInstanceDeployment
+type GetEdgeInstanceDeploymentRequest struct {
+	*requests.RpcRequest
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	DeploymentId  string `position:"Query" name:"DeploymentId"`
+}
+
+// GetEdgeInstanceDeploymentResponse is the response struct for api GetEdgeInstanceDeployment
+type GetEdgeInstanceDeploymentResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         Data   `json:"Data" xml:"Data"`
+}
+
+// CreateGetEdgeInstanceDeploymentRequest creates a request to invoke GetEdgeInstanceDeployment API
+func CreateGetEdgeInstanceDeploymentRequest() (request *GetEdgeInstanceDeploymentRequest) {
+	request = &GetEdgeInstanceDeploymentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GetEdgeInstanceDeployment", "iot", "openAPI")
+	return
+}
+
+// CreateGetEdgeInstanceDeploymentResponse creates a response to parse from GetEdgeInstanceDeployment response
+func CreateGetEdgeInstanceDeploymentResponse() (response *GetEdgeInstanceDeploymentResponse) {
+	response = &GetEdgeInstanceDeploymentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/get_gateway_by_sub_device.go

@@ -76,10 +76,10 @@ func (client *Client) GetGatewayBySubDeviceWithCallback(request *GetGatewayBySub
 // GetGatewayBySubDeviceRequest is the request struct for api GetGatewayBySubDevice
 // GetGatewayBySubDeviceRequest is the request struct for api GetGatewayBySubDevice
 type GetGatewayBySubDeviceRequest struct {
 type GetGatewayBySubDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // GetGatewayBySubDeviceResponse is the response struct for api GetGatewayBySubDevice
 // GetGatewayBySubDeviceResponse is the response struct for api GetGatewayBySubDevice

+ 110 - 0
services/iot/get_product_key_list_by_name.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// GetProductKeyListByName invokes the iot.GetProductKeyListByName API synchronously
+// api document: https://help.aliyun.com/api/iot/getproductkeylistbyname.html
+func (client *Client) GetProductKeyListByName(request *GetProductKeyListByNameRequest) (response *GetProductKeyListByNameResponse, err error) {
+	response = CreateGetProductKeyListByNameResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetProductKeyListByNameWithChan invokes the iot.GetProductKeyListByName API asynchronously
+// api document: https://help.aliyun.com/api/iot/getproductkeylistbyname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProductKeyListByNameWithChan(request *GetProductKeyListByNameRequest) (<-chan *GetProductKeyListByNameResponse, <-chan error) {
+	responseChan := make(chan *GetProductKeyListByNameResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetProductKeyListByName(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetProductKeyListByNameWithCallback invokes the iot.GetProductKeyListByName API asynchronously
+// api document: https://help.aliyun.com/api/iot/getproductkeylistbyname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProductKeyListByNameWithCallback(request *GetProductKeyListByNameRequest, callback func(response *GetProductKeyListByNameResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetProductKeyListByNameResponse
+		var err error
+		defer close(result)
+		response, err = client.GetProductKeyListByName(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetProductKeyListByNameRequest is the request struct for api GetProductKeyListByName
+type GetProductKeyListByNameRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	IotInstanceId   string `position:"Query" name:"IotInstanceId"`
+	ProductName     string `position:"Query" name:"ProductName"`
+	Page            string `position:"Query" name:"Page"`
+}
+
+// GetProductKeyListByNameResponse is the response struct for api GetProductKeyListByName
+type GetProductKeyListByNameResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Code         string `json:"Code" xml:"Code"`
+	Data         string `json:"Data" xml:"Data"`
+}
+
+// CreateGetProductKeyListByNameRequest creates a request to invoke GetProductKeyListByName API
+func CreateGetProductKeyListByNameRequest() (request *GetProductKeyListByNameRequest) {
+	request = &GetProductKeyListByNameRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GetProductKeyListByName", "iot", "openAPI")
+	return
+}
+
+// CreateGetProductKeyListByNameResponse creates a response to parse from GetProductKeyListByName response
+func CreateGetProductKeyListByNameResponse() (response *GetProductKeyListByNameResponse) {
+	response = &GetProductKeyListByNameResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/iot/get_product_meta_list_by_name.go

@@ -0,0 +1,111 @@
+package iot
+
+//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"
+)
+
+// GetProductMetaListByName invokes the iot.GetProductMetaListByName API synchronously
+// api document: https://help.aliyun.com/api/iot/getproductmetalistbyname.html
+func (client *Client) GetProductMetaListByName(request *GetProductMetaListByNameRequest) (response *GetProductMetaListByNameResponse, err error) {
+	response = CreateGetProductMetaListByNameResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetProductMetaListByNameWithChan invokes the iot.GetProductMetaListByName API asynchronously
+// api document: https://help.aliyun.com/api/iot/getproductmetalistbyname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProductMetaListByNameWithChan(request *GetProductMetaListByNameRequest) (<-chan *GetProductMetaListByNameResponse, <-chan error) {
+	responseChan := make(chan *GetProductMetaListByNameResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetProductMetaListByName(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetProductMetaListByNameWithCallback invokes the iot.GetProductMetaListByName API asynchronously
+// api document: https://help.aliyun.com/api/iot/getproductmetalistbyname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetProductMetaListByNameWithCallback(request *GetProductMetaListByNameRequest, callback func(response *GetProductMetaListByNameResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetProductMetaListByNameResponse
+		var err error
+		defer close(result)
+		response, err = client.GetProductMetaListByName(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetProductMetaListByNameRequest is the request struct for api GetProductMetaListByName
+type GetProductMetaListByNameRequest struct {
+	*requests.RpcRequest
+	ProductKey      string `position:"Body" name:"ProductKey"`
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	IotInstanceId   string `position:"Query" name:"IotInstanceId"`
+	DeviceName      string `position:"Body" name:"DeviceName"`
+	Page            string `position:"Body" name:"Page"`
+}
+
+// GetProductMetaListByNameResponse is the response struct for api GetProductMetaListByName
+type GetProductMetaListByNameResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Code         string `json:"Code" xml:"Code"`
+	Data         string `json:"Data" xml:"Data"`
+}
+
+// CreateGetProductMetaListByNameRequest creates a request to invoke GetProductMetaListByName API
+func CreateGetProductMetaListByNameRequest() (request *GetProductMetaListByNameRequest) {
+	request = &GetProductMetaListByNameRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GetProductMetaListByName", "iot", "openAPI")
+	return
+}
+
+// CreateGetProductMetaListByNameResponse creates a response to parse from GetProductMetaListByName response
+func CreateGetProductMetaListByNameResponse() (response *GetProductMetaListByNameResponse) {
+	response = &GetProductMetaListByNameResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 6 - 6
services/iot/get_thing_topo.go

@@ -76,22 +76,22 @@ func (client *Client) GetThingTopoWithCallback(request *GetThingTopoRequest, cal
 // GetThingTopoRequest is the request struct for api GetThingTopo
 // GetThingTopoRequest is the request struct for api GetThingTopo
 type GetThingTopoRequest struct {
 type GetThingTopoRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string           `position:"Query" name:"ProductKey"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotId         string           `position:"Query" name:"IotId"`
 	PageNo        requests.Integer `position:"Query" name:"PageNo"`
 	PageNo        requests.Integer `position:"Query" name:"PageNo"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // GetThingTopoResponse is the response struct for api GetThingTopo
 // GetThingTopoResponse is the response struct for api GetThingTopo
 type GetThingTopoResponse struct {
 type GetThingTopoResponse struct {
 	*responses.BaseResponse
 	*responses.BaseResponse
-	RequestId    string             `json:"RequestId" xml:"RequestId"`
-	Success      bool               `json:"Success" xml:"Success"`
-	Code         string             `json:"Code" xml:"Code"`
-	ErrorMessage string             `json:"ErrorMessage" xml:"ErrorMessage"`
-	Data         DataInGetThingTopo `json:"Data" xml:"Data"`
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         Data   `json:"Data" xml:"Data"`
 }
 }
 
 
 // CreateGetThingTopoRequest creates a request to invoke GetThingTopo API
 // CreateGetThingTopoRequest creates a request to invoke GetThingTopo API

+ 110 - 0
services/iot/gis_query_device_location.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// GisQueryDeviceLocation invokes the iot.GisQueryDeviceLocation API synchronously
+// api document: https://help.aliyun.com/api/iot/gisquerydevicelocation.html
+func (client *Client) GisQueryDeviceLocation(request *GisQueryDeviceLocationRequest) (response *GisQueryDeviceLocationResponse, err error) {
+	response = CreateGisQueryDeviceLocationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GisQueryDeviceLocationWithChan invokes the iot.GisQueryDeviceLocation API asynchronously
+// api document: https://help.aliyun.com/api/iot/gisquerydevicelocation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GisQueryDeviceLocationWithChan(request *GisQueryDeviceLocationRequest) (<-chan *GisQueryDeviceLocationResponse, <-chan error) {
+	responseChan := make(chan *GisQueryDeviceLocationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GisQueryDeviceLocation(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GisQueryDeviceLocationWithCallback invokes the iot.GisQueryDeviceLocation API asynchronously
+// api document: https://help.aliyun.com/api/iot/gisquerydevicelocation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GisQueryDeviceLocationWithCallback(request *GisQueryDeviceLocationRequest, callback func(response *GisQueryDeviceLocationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GisQueryDeviceLocationResponse
+		var err error
+		defer close(result)
+		response, err = client.GisQueryDeviceLocation(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GisQueryDeviceLocationRequest is the request struct for api GisQueryDeviceLocation
+type GisQueryDeviceLocationRequest struct {
+	*requests.RpcRequest
+	ThingList     string `position:"Query" name:"ThingList"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
+}
+
+// GisQueryDeviceLocationResponse is the response struct for api GisQueryDeviceLocation
+type GisQueryDeviceLocationResponse struct {
+	*responses.BaseResponse
+	RequestId    string                 `json:"RequestId" xml:"RequestId"`
+	Success      bool                   `json:"Success" xml:"Success"`
+	Code         string                 `json:"Code" xml:"Code"`
+	ErrorMessage string                 `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         map[string]interface{} `json:"Data" xml:"Data"`
+}
+
+// CreateGisQueryDeviceLocationRequest creates a request to invoke GisQueryDeviceLocation API
+func CreateGisQueryDeviceLocationRequest() (request *GisQueryDeviceLocationRequest) {
+	request = &GisQueryDeviceLocationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GisQueryDeviceLocation", "iot", "openAPI")
+	return
+}
+
+// CreateGisQueryDeviceLocationResponse creates a response to parse from GisQueryDeviceLocation response
+func CreateGisQueryDeviceLocationResponse() (response *GisQueryDeviceLocationResponse) {
+	response = &GisQueryDeviceLocationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/iot/invoke_thing_service.go

@@ -76,12 +76,12 @@ func (client *Client) InvokeThingServiceWithCallback(request *InvokeThingService
 // InvokeThingServiceRequest is the request struct for api InvokeThingService
 // InvokeThingServiceRequest is the request struct for api InvokeThingService
 type InvokeThingServiceRequest struct {
 type InvokeThingServiceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	Args          string `position:"Query" name:"Args"`
 	Identifier    string `position:"Query" name:"Identifier"`
 	Identifier    string `position:"Query" name:"Identifier"`
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	Args          string `position:"Query" name:"Args"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // InvokeThingServiceResponse is the response struct for api InvokeThingService
 // InvokeThingServiceResponse is the response struct for api InvokeThingService

+ 2 - 2
services/iot/invoke_things_service.go

@@ -76,11 +76,11 @@ func (client *Client) InvokeThingsServiceWithCallback(request *InvokeThingsServi
 // InvokeThingsServiceRequest is the request struct for api InvokeThingsService
 // InvokeThingsServiceRequest is the request struct for api InvokeThingsService
 type InvokeThingsServiceRequest struct {
 type InvokeThingsServiceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	Args          string    `position:"Query" name:"Args"`
 	Identifier    string    `position:"Query" name:"Identifier"`
 	Identifier    string    `position:"Query" name:"Identifier"`
+	ProductKey    string    `position:"Query" name:"ProductKey"`
+	Args          string    `position:"Query" name:"Args"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // InvokeThingsServiceResponse is the response struct for api InvokeThingsService
 // InvokeThingsServiceResponse is the response struct for api InvokeThingsService

+ 1 - 1
services/iot/list_product_by_tags.go

@@ -76,10 +76,10 @@ func (client *Client) ListProductByTagsWithCallback(request *ListProductByTagsRe
 // ListProductByTagsRequest is the request struct for api ListProductByTags
 // ListProductByTagsRequest is the request struct for api ListProductByTags
 type ListProductByTagsRequest struct {
 type ListProductByTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage   requests.Integer               `position:"Query" name:"CurrentPage"`
 	ProductTag    *[]ListProductByTagsProductTag `position:"Query" name:"ProductTag"  type:"Repeated"`
 	ProductTag    *[]ListProductByTagsProductTag `position:"Query" name:"ProductTag"  type:"Repeated"`
 	IotInstanceId string                         `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string                         `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer               `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer               `position:"Query" name:"PageSize"`
-	CurrentPage   requests.Integer               `position:"Query" name:"CurrentPage"`
 }
 }
 
 
 // ListProductByTagsProductTag is a repeated param struct in ListProductByTagsRequest
 // ListProductByTagsProductTag is a repeated param struct in ListProductByTagsRequest

+ 1 - 1
services/iot/list_product_tags.go

@@ -76,8 +76,8 @@ func (client *Client) ListProductTagsWithCallback(request *ListProductTagsReques
 // ListProductTagsRequest is the request struct for api ListProductTags
 // ListProductTagsRequest is the request struct for api ListProductTags
 type ListProductTagsRequest struct {
 type ListProductTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // ListProductTagsResponse is the response struct for api ListProductTags
 // ListProductTagsResponse is the response struct for api ListProductTags

+ 1 - 1
services/iot/list_rule.go

@@ -77,9 +77,9 @@ func (client *Client) ListRuleWithCallback(request *ListRuleRequest, callback fu
 type ListRuleRequest struct {
 type ListRuleRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	SearchName    string           `position:"Query" name:"SearchName"`
 	SearchName    string           `position:"Query" name:"SearchName"`
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 }
 }
 
 
 // ListRuleResponse is the response struct for api ListRule
 // ListRuleResponse is the response struct for api ListRule

+ 1 - 1
services/iot/notify_add_thing_topo.go

@@ -77,10 +77,10 @@ func (client *Client) NotifyAddThingTopoWithCallback(request *NotifyAddThingTopo
 type NotifyAddThingTopoRequest struct {
 type NotifyAddThingTopoRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	GwProductKey  string `position:"Query" name:"GwProductKey"`
 	GwProductKey  string `position:"Query" name:"GwProductKey"`
+	DeviceListStr string `position:"Query" name:"DeviceListStr"`
 	GwDeviceName  string `position:"Query" name:"GwDeviceName"`
 	GwDeviceName  string `position:"Query" name:"GwDeviceName"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	GwIotId       string `position:"Query" name:"GwIotId"`
 	GwIotId       string `position:"Query" name:"GwIotId"`
-	DeviceListStr string `position:"Query" name:"DeviceListStr"`
 }
 }
 
 
 // NotifyAddThingTopoResponse is the response struct for api NotifyAddThingTopo
 // NotifyAddThingTopoResponse is the response struct for api NotifyAddThingTopo

+ 2 - 2
services/iot/pub.go

@@ -77,10 +77,10 @@ func (client *Client) PubWithCallback(request *PubRequest, callback func(respons
 type PubRequest struct {
 type PubRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	TopicFullName  string           `position:"Query" name:"TopicFullName"`
 	TopicFullName  string           `position:"Query" name:"TopicFullName"`
-	Qos            requests.Integer `position:"Query" name:"Qos"`
 	MessageContent string           `position:"Query" name:"MessageContent"`
 	MessageContent string           `position:"Query" name:"MessageContent"`
-	IotInstanceId  string           `position:"Query" name:"IotInstanceId"`
 	ProductKey     string           `position:"Query" name:"ProductKey"`
 	ProductKey     string           `position:"Query" name:"ProductKey"`
+	Qos            requests.Integer `position:"Query" name:"Qos"`
+	IotInstanceId  string           `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // PubResponse is the response struct for api Pub
 // PubResponse is the response struct for api Pub

+ 1 - 1
services/iot/pub_broadcast.go

@@ -78,8 +78,8 @@ type PubBroadcastRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	TopicFullName  string `position:"Query" name:"TopicFullName"`
 	TopicFullName  string `position:"Query" name:"TopicFullName"`
 	MessageContent string `position:"Query" name:"MessageContent"`
 	MessageContent string `position:"Query" name:"MessageContent"`
-	IotInstanceId  string `position:"Query" name:"IotInstanceId"`
 	ProductKey     string `position:"Query" name:"ProductKey"`
 	ProductKey     string `position:"Query" name:"ProductKey"`
+	IotInstanceId  string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // PubBroadcastResponse is the response struct for api PubBroadcast
 // PubBroadcastResponse is the response struct for api PubBroadcast

+ 2 - 2
services/iot/query_app_device_list.go

@@ -76,13 +76,13 @@ func (client *Client) QueryAppDeviceListWithCallback(request *QueryAppDeviceList
 // QueryAppDeviceListRequest is the request struct for api QueryAppDeviceList
 // QueryAppDeviceListRequest is the request struct for api QueryAppDeviceList
 type QueryAppDeviceListRequest struct {
 type QueryAppDeviceListRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage     requests.Integer             `position:"Query" name:"CurrentPage"`
+	TagList         *[]QueryAppDeviceListTagList `position:"Query" name:"TagList"  type:"Repeated"`
 	ProductKeyList  *[]string                    `position:"Query" name:"ProductKeyList"  type:"Repeated"`
 	ProductKeyList  *[]string                    `position:"Query" name:"ProductKeyList"  type:"Repeated"`
 	CategoryKeyList *[]string                    `position:"Query" name:"CategoryKeyList"  type:"Repeated"`
 	CategoryKeyList *[]string                    `position:"Query" name:"CategoryKeyList"  type:"Repeated"`
 	IotInstanceId   string                       `position:"Query" name:"IotInstanceId"`
 	IotInstanceId   string                       `position:"Query" name:"IotInstanceId"`
 	PageSize        requests.Integer             `position:"Query" name:"PageSize"`
 	PageSize        requests.Integer             `position:"Query" name:"PageSize"`
-	CurrentPage     requests.Integer             `position:"Query" name:"CurrentPage"`
 	AppKey          string                       `position:"Query" name:"AppKey"`
 	AppKey          string                       `position:"Query" name:"AppKey"`
-	TagList         *[]QueryAppDeviceListTagList `position:"Query" name:"TagList"  type:"Repeated"`
 }
 }
 
 
 // QueryAppDeviceListTagList is a repeated param struct in QueryAppDeviceListRequest
 // QueryAppDeviceListTagList is a repeated param struct in QueryAppDeviceListRequest

+ 1 - 1
services/iot/query_batch_register_device_status.go

@@ -76,9 +76,9 @@ func (client *Client) QueryBatchRegisterDeviceStatusWithCallback(request *QueryB
 // QueryBatchRegisterDeviceStatusRequest is the request struct for api QueryBatchRegisterDeviceStatus
 // QueryBatchRegisterDeviceStatusRequest is the request struct for api QueryBatchRegisterDeviceStatus
 type QueryBatchRegisterDeviceStatusRequest struct {
 type QueryBatchRegisterDeviceStatusRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string           `position:"Query" name:"ProductKey"`
 	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryBatchRegisterDeviceStatusResponse is the response struct for api QueryBatchRegisterDeviceStatus
 // QueryBatchRegisterDeviceStatusResponse is the response struct for api QueryBatchRegisterDeviceStatus

+ 108 - 0
services/iot/query_cert_url_by_apply_id.go

@@ -0,0 +1,108 @@
+package iot
+
+//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"
+)
+
+// QueryCertUrlByApplyId invokes the iot.QueryCertUrlByApplyId API synchronously
+// api document: https://help.aliyun.com/api/iot/querycerturlbyapplyid.html
+func (client *Client) QueryCertUrlByApplyId(request *QueryCertUrlByApplyIdRequest) (response *QueryCertUrlByApplyIdResponse, err error) {
+	response = CreateQueryCertUrlByApplyIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryCertUrlByApplyIdWithChan invokes the iot.QueryCertUrlByApplyId API asynchronously
+// api document: https://help.aliyun.com/api/iot/querycerturlbyapplyid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryCertUrlByApplyIdWithChan(request *QueryCertUrlByApplyIdRequest) (<-chan *QueryCertUrlByApplyIdResponse, <-chan error) {
+	responseChan := make(chan *QueryCertUrlByApplyIdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryCertUrlByApplyId(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryCertUrlByApplyIdWithCallback invokes the iot.QueryCertUrlByApplyId API asynchronously
+// api document: https://help.aliyun.com/api/iot/querycerturlbyapplyid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryCertUrlByApplyIdWithCallback(request *QueryCertUrlByApplyIdRequest, callback func(response *QueryCertUrlByApplyIdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryCertUrlByApplyIdResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryCertUrlByApplyId(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryCertUrlByApplyIdRequest is the request struct for api QueryCertUrlByApplyId
+type QueryCertUrlByApplyIdRequest struct {
+	*requests.RpcRequest
+	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+}
+
+// QueryCertUrlByApplyIdResponse is the response struct for api QueryCertUrlByApplyId
+type QueryCertUrlByApplyIdResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	Success      bool   `json:"Success" xml:"Success"`
+	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	CertUrl      string `json:"CertUrl" xml:"CertUrl"`
+}
+
+// CreateQueryCertUrlByApplyIdRequest creates a request to invoke QueryCertUrlByApplyId API
+func CreateQueryCertUrlByApplyIdRequest() (request *QueryCertUrlByApplyIdRequest) {
+	request = &QueryCertUrlByApplyIdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryCertUrlByApplyId", "iot", "openAPI")
+	return
+}
+
+// CreateQueryCertUrlByApplyIdResponse creates a response to parse from QueryCertUrlByApplyId response
+func CreateQueryCertUrlByApplyIdResponse() (response *QueryCertUrlByApplyIdResponse) {
+	response = &QueryCertUrlByApplyIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/iot/query_device.go

@@ -76,10 +76,10 @@ func (client *Client) QueryDeviceWithCallback(request *QueryDeviceRequest, callb
 // QueryDeviceRequest is the request struct for api QueryDevice
 // QueryDeviceRequest is the request struct for api QueryDevice
 type QueryDeviceRequest struct {
 type QueryDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
-	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 }
 }
 
 
 // QueryDeviceResponse is the response struct for api QueryDevice
 // QueryDeviceResponse is the response struct for api QueryDevice

+ 111 - 0
services/iot/query_device_by_driver.go

@@ -0,0 +1,111 @@
+package iot
+
+//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"
+)
+
+// QueryDeviceByDriver invokes the iot.QueryDeviceByDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/querydevicebydriver.html
+func (client *Client) QueryDeviceByDriver(request *QueryDeviceByDriverRequest) (response *QueryDeviceByDriverResponse, err error) {
+	response = CreateQueryDeviceByDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryDeviceByDriverWithChan invokes the iot.QueryDeviceByDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/querydevicebydriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryDeviceByDriverWithChan(request *QueryDeviceByDriverRequest) (<-chan *QueryDeviceByDriverResponse, <-chan error) {
+	responseChan := make(chan *QueryDeviceByDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryDeviceByDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryDeviceByDriverWithCallback invokes the iot.QueryDeviceByDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/querydevicebydriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryDeviceByDriverWithCallback(request *QueryDeviceByDriverRequest, callback func(response *QueryDeviceByDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryDeviceByDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryDeviceByDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryDeviceByDriverRequest is the request struct for api QueryDeviceByDriver
+type QueryDeviceByDriverRequest struct {
+	*requests.RpcRequest
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	DriverId      string           `position:"Query" name:"DriverId"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// QueryDeviceByDriverResponse is the response struct for api QueryDeviceByDriver
+type QueryDeviceByDriverResponse struct {
+	*responses.BaseResponse
+	RequestId    string                    `json:"RequestId" xml:"RequestId"`
+	Success      bool                      `json:"Success" xml:"Success"`
+	Code         string                    `json:"Code" xml:"Code"`
+	ErrorMessage string                    `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryDeviceByDriver `json:"Data" xml:"Data"`
+}
+
+// CreateQueryDeviceByDriverRequest creates a request to invoke QueryDeviceByDriver API
+func CreateQueryDeviceByDriverRequest() (request *QueryDeviceByDriverRequest) {
+	request = &QueryDeviceByDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryDeviceByDriver", "iot", "openAPI")
+	return
+}
+
+// CreateQueryDeviceByDriverResponse creates a response to parse from QueryDeviceByDriver response
+func CreateQueryDeviceByDriverResponse() (response *QueryDeviceByDriverResponse) {
+	response = &QueryDeviceByDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/query_device_by_tags.go

@@ -76,9 +76,9 @@ func (client *Client) QueryDeviceByTagsWithCallback(request *QueryDeviceByTagsRe
 // QueryDeviceByTagsRequest is the request struct for api QueryDeviceByTags
 // QueryDeviceByTagsRequest is the request struct for api QueryDeviceByTags
 type QueryDeviceByTagsRequest struct {
 type QueryDeviceByTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage   requests.Integer        `position:"Query" name:"CurrentPage"`
 	IotInstanceId string                  `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string                  `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer        `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer        `position:"Query" name:"PageSize"`
-	CurrentPage   requests.Integer        `position:"Query" name:"CurrentPage"`
 	Tag           *[]QueryDeviceByTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
 	Tag           *[]QueryDeviceByTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
 }
 }
 
 

+ 109 - 0
services/iot/query_device_cert.go

@@ -0,0 +1,109 @@
+package iot
+
+//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"
+)
+
+// QueryDeviceCert invokes the iot.QueryDeviceCert API synchronously
+// api document: https://help.aliyun.com/api/iot/querydevicecert.html
+func (client *Client) QueryDeviceCert(request *QueryDeviceCertRequest) (response *QueryDeviceCertResponse, err error) {
+	response = CreateQueryDeviceCertResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryDeviceCertWithChan invokes the iot.QueryDeviceCert API asynchronously
+// api document: https://help.aliyun.com/api/iot/querydevicecert.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryDeviceCertWithChan(request *QueryDeviceCertRequest) (<-chan *QueryDeviceCertResponse, <-chan error) {
+	responseChan := make(chan *QueryDeviceCertResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryDeviceCert(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryDeviceCertWithCallback invokes the iot.QueryDeviceCert API asynchronously
+// api document: https://help.aliyun.com/api/iot/querydevicecert.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryDeviceCertWithCallback(request *QueryDeviceCertRequest, callback func(response *QueryDeviceCertResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryDeviceCertResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryDeviceCert(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryDeviceCertRequest is the request struct for api QueryDeviceCert
+type QueryDeviceCertRequest struct {
+	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	DeviceName    string `position:"Query" name:"DeviceName"`
+}
+
+// QueryDeviceCertResponse is the response struct for api QueryDeviceCert
+type QueryDeviceCertResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	Code           string         `json:"Code" xml:"Code"`
+	ErrorMessage   string         `json:"ErrorMessage" xml:"ErrorMessage"`
+	DeviceCertInfo DeviceCertInfo `json:"DeviceCertInfo" xml:"DeviceCertInfo"`
+}
+
+// CreateQueryDeviceCertRequest creates a request to invoke QueryDeviceCert API
+func CreateQueryDeviceCertRequest() (request *QueryDeviceCertRequest) {
+	request = &QueryDeviceCertRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryDeviceCert", "iot", "openAPI")
+	return
+}
+
+// CreateQueryDeviceCertResponse creates a response to parse from QueryDeviceCert response
+func CreateQueryDeviceCertResponse() (response *QueryDeviceCertResponse) {
+	response = &QueryDeviceCertResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 6 - 6
services/iot/query_device_desired_property.go

@@ -77,20 +77,20 @@ func (client *Client) QueryDeviceDesiredPropertyWithCallback(request *QueryDevic
 type QueryDeviceDesiredPropertyRequest struct {
 type QueryDeviceDesiredPropertyRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	Identifier    *[]string `position:"Query" name:"Identifier"  type:"Repeated"`
 	Identifier    *[]string `position:"Query" name:"Identifier"  type:"Repeated"`
+	ProductKey    string    `position:"Query" name:"ProductKey"`
 	IotId         string    `position:"Query" name:"IotId"`
 	IotId         string    `position:"Query" name:"IotId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	DeviceName    string    `position:"Query" name:"DeviceName"`
 	DeviceName    string    `position:"Query" name:"DeviceName"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDeviceDesiredPropertyResponse is the response struct for api QueryDeviceDesiredProperty
 // QueryDeviceDesiredPropertyResponse is the response struct for api QueryDeviceDesiredProperty
 type QueryDeviceDesiredPropertyResponse struct {
 type QueryDeviceDesiredPropertyResponse struct {
 	*responses.BaseResponse
 	*responses.BaseResponse
-	RequestId    string `json:"RequestId" xml:"RequestId"`
-	Success      bool   `json:"Success" xml:"Success"`
-	Code         string `json:"Code" xml:"Code"`
-	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
-	Data         Data   `json:"Data" xml:"Data"`
+	RequestId    string                           `json:"RequestId" xml:"RequestId"`
+	Success      bool                             `json:"Success" xml:"Success"`
+	Code         string                           `json:"Code" xml:"Code"`
+	ErrorMessage string                           `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryDeviceDesiredProperty `json:"Data" xml:"Data"`
 }
 }
 
 
 // CreateQueryDeviceDesiredPropertyRequest creates a request to invoke QueryDeviceDesiredProperty API
 // CreateQueryDeviceDesiredPropertyRequest creates a request to invoke QueryDeviceDesiredProperty API

+ 1 - 1
services/iot/query_device_detail.go

@@ -76,10 +76,10 @@ func (client *Client) QueryDeviceDetailWithCallback(request *QueryDeviceDetailRe
 // QueryDeviceDetailRequest is the request struct for api QueryDeviceDetail
 // QueryDeviceDetailRequest is the request struct for api QueryDeviceDetail
 type QueryDeviceDetailRequest struct {
 type QueryDeviceDetailRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDeviceDetailResponse is the response struct for api QueryDeviceDetail
 // QueryDeviceDetailResponse is the response struct for api QueryDeviceDetail

+ 4 - 4
services/iot/query_device_event_data.go

@@ -76,16 +76,16 @@ func (client *Client) QueryDeviceEventDataWithCallback(request *QueryDeviceEvent
 // QueryDeviceEventDataRequest is the request struct for api QueryDeviceEventData
 // QueryDeviceEventDataRequest is the request struct for api QueryDeviceEventData
 type QueryDeviceEventDataRequest struct {
 type QueryDeviceEventDataRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	Asc           requests.Integer `position:"Query" name:"Asc"`
-	Identifier    string           `position:"Query" name:"Identifier"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Identifier    string           `position:"Query" name:"Identifier"`
 	EndTime       requests.Integer `position:"Query" name:"EndTime"`
 	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
+	Asc           requests.Integer `position:"Query" name:"Asc"`
 	EventType     string           `position:"Query" name:"EventType"`
 	EventType     string           `position:"Query" name:"EventType"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
-	StartTime     requests.Integer `position:"Query" name:"StartTime"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDeviceEventDataResponse is the response struct for api QueryDeviceEventData
 // QueryDeviceEventDataResponse is the response struct for api QueryDeviceEventData

+ 1 - 1
services/iot/query_device_file.go

@@ -76,10 +76,10 @@ func (client *Client) QueryDeviceFileWithCallback(request *QueryDeviceFileReques
 // QueryDeviceFileRequest is the request struct for api QueryDeviceFile
 // QueryDeviceFileRequest is the request struct for api QueryDeviceFile
 type QueryDeviceFileRequest struct {
 type QueryDeviceFileRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 	FileId        string `position:"Query" name:"FileId"`
 	FileId        string `position:"Query" name:"FileId"`
 }
 }
 
 

+ 2 - 2
services/iot/query_device_file_list.go

@@ -76,12 +76,12 @@ func (client *Client) QueryDeviceFileListWithCallback(request *QueryDeviceFileLi
 // QueryDeviceFileListRequest is the request struct for api QueryDeviceFileList
 // QueryDeviceFileListRequest is the request struct for api QueryDeviceFileList
 type QueryDeviceFileListRequest struct {
 type QueryDeviceFileListRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDeviceFileListResponse is the response struct for api QueryDeviceFileList
 // QueryDeviceFileListResponse is the response struct for api QueryDeviceFileList

+ 1 - 1
services/iot/query_device_group_by_device.go

@@ -76,9 +76,9 @@ func (client *Client) QueryDeviceGroupByDeviceWithCallback(request *QueryDeviceG
 // QueryDeviceGroupByDeviceRequest is the request struct for api QueryDeviceGroupByDevice
 // QueryDeviceGroupByDeviceRequest is the request struct for api QueryDeviceGroupByDevice
 type QueryDeviceGroupByDeviceRequest struct {
 type QueryDeviceGroupByDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDeviceGroupByDeviceResponse is the response struct for api QueryDeviceGroupByDevice
 // QueryDeviceGroupByDeviceResponse is the response struct for api QueryDeviceGroupByDevice

+ 1 - 1
services/iot/query_device_group_by_tags.go

@@ -76,9 +76,9 @@ func (client *Client) QueryDeviceGroupByTagsWithCallback(request *QueryDeviceGro
 // QueryDeviceGroupByTagsRequest is the request struct for api QueryDeviceGroupByTags
 // QueryDeviceGroupByTagsRequest is the request struct for api QueryDeviceGroupByTags
 type QueryDeviceGroupByTagsRequest struct {
 type QueryDeviceGroupByTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage   requests.Integer             `position:"Query" name:"CurrentPage"`
 	IotInstanceId string                       `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string                       `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer             `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer             `position:"Query" name:"PageSize"`
-	CurrentPage   requests.Integer             `position:"Query" name:"CurrentPage"`
 	Tag           *[]QueryDeviceGroupByTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
 	Tag           *[]QueryDeviceGroupByTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
 }
 }
 
 

+ 1 - 1
services/iot/query_device_group_info.go

@@ -76,8 +76,8 @@ func (client *Client) QueryDeviceGroupInfoWithCallback(request *QueryDeviceGroup
 // QueryDeviceGroupInfoRequest is the request struct for api QueryDeviceGroupInfo
 // QueryDeviceGroupInfoRequest is the request struct for api QueryDeviceGroupInfo
 type QueryDeviceGroupInfoRequest struct {
 type QueryDeviceGroupInfoRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	GroupId       string `position:"Query" name:"GroupId"`
 	GroupId       string `position:"Query" name:"GroupId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // QueryDeviceGroupInfoResponse is the response struct for api QueryDeviceGroupInfo
 // QueryDeviceGroupInfoResponse is the response struct for api QueryDeviceGroupInfo

+ 2 - 2
services/iot/query_device_group_list.go

@@ -76,11 +76,11 @@ func (client *Client) QueryDeviceGroupListWithCallback(request *QueryDeviceGroup
 // QueryDeviceGroupListRequest is the request struct for api QueryDeviceGroupList
 // QueryDeviceGroupListRequest is the request struct for api QueryDeviceGroupList
 type QueryDeviceGroupListRequest struct {
 type QueryDeviceGroupListRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	SuperGroupId  string           `position:"Query" name:"SuperGroupId"`
 	SuperGroupId  string           `position:"Query" name:"SuperGroupId"`
-	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	GroupName     string           `position:"Query" name:"GroupName"`
 	GroupName     string           `position:"Query" name:"GroupName"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 }
 }
 
 
 // QueryDeviceGroupListResponse is the response struct for api QueryDeviceGroupList
 // QueryDeviceGroupListResponse is the response struct for api QueryDeviceGroupList

+ 1 - 1
services/iot/query_device_group_tag_list.go

@@ -76,8 +76,8 @@ func (client *Client) QueryDeviceGroupTagListWithCallback(request *QueryDeviceGr
 // QueryDeviceGroupTagListRequest is the request struct for api QueryDeviceGroupTagList
 // QueryDeviceGroupTagListRequest is the request struct for api QueryDeviceGroupTagList
 type QueryDeviceGroupTagListRequest struct {
 type QueryDeviceGroupTagListRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	GroupId       string `position:"Query" name:"GroupId"`
 	GroupId       string `position:"Query" name:"GroupId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // QueryDeviceGroupTagListResponse is the response struct for api QueryDeviceGroupTagList
 // QueryDeviceGroupTagListResponse is the response struct for api QueryDeviceGroupTagList

+ 2 - 2
services/iot/query_device_list_by_device_group.go

@@ -76,10 +76,10 @@ func (client *Client) QueryDeviceListByDeviceGroupWithCallback(request *QueryDev
 // QueryDeviceListByDeviceGroupRequest is the request struct for api QueryDeviceListByDeviceGroup
 // QueryDeviceListByDeviceGroupRequest is the request struct for api QueryDeviceListByDeviceGroup
 type QueryDeviceListByDeviceGroupRequest struct {
 type QueryDeviceListByDeviceGroupRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	GroupId       string           `position:"Query" name:"GroupId"`
 	GroupId       string           `position:"Query" name:"GroupId"`
-	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 }
 }
 
 
 // QueryDeviceListByDeviceGroupResponse is the response struct for api QueryDeviceListByDeviceGroup
 // QueryDeviceListByDeviceGroupResponse is the response struct for api QueryDeviceListByDeviceGroup

+ 1 - 1
services/iot/query_device_prop.go

@@ -76,10 +76,10 @@ func (client *Client) QueryDevicePropWithCallback(request *QueryDevicePropReques
 // QueryDevicePropRequest is the request struct for api QueryDeviceProp
 // QueryDevicePropRequest is the request struct for api QueryDeviceProp
 type QueryDevicePropRequest struct {
 type QueryDevicePropRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDevicePropResponse is the response struct for api QueryDeviceProp
 // QueryDevicePropResponse is the response struct for api QueryDeviceProp

+ 4 - 4
services/iot/query_device_properties_data.go

@@ -76,15 +76,15 @@ func (client *Client) QueryDevicePropertiesDataWithCallback(request *QueryDevice
 // QueryDevicePropertiesDataRequest is the request struct for api QueryDevicePropertiesData
 // QueryDevicePropertiesDataRequest is the request struct for api QueryDevicePropertiesData
 type QueryDevicePropertiesDataRequest struct {
 type QueryDevicePropertiesDataRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	Asc           requests.Integer `position:"Query" name:"Asc"`
-	Identifier    *[]string        `position:"Query" name:"Identifier"  type:"Repeated"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Identifier    *[]string        `position:"Query" name:"Identifier"  type:"Repeated"`
 	EndTime       requests.Integer `position:"Query" name:"EndTime"`
 	EndTime       requests.Integer `position:"Query" name:"EndTime"`
-	DeviceName    string           `position:"Query" name:"DeviceName"`
-	StartTime     requests.Integer `position:"Query" name:"StartTime"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
+	Asc           requests.Integer `position:"Query" name:"Asc"`
+	DeviceName    string           `position:"Query" name:"DeviceName"`
 }
 }
 
 
 // QueryDevicePropertiesDataResponse is the response struct for api QueryDevicePropertiesData
 // QueryDevicePropertiesDataResponse is the response struct for api QueryDevicePropertiesData

+ 4 - 4
services/iot/query_device_property_data.go

@@ -76,15 +76,15 @@ func (client *Client) QueryDevicePropertyDataWithCallback(request *QueryDevicePr
 // QueryDevicePropertyDataRequest is the request struct for api QueryDevicePropertyData
 // QueryDevicePropertyDataRequest is the request struct for api QueryDevicePropertyData
 type QueryDevicePropertyDataRequest struct {
 type QueryDevicePropertyDataRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	Asc           requests.Integer `position:"Query" name:"Asc"`
 	Identifier    string           `position:"Query" name:"Identifier"`
 	Identifier    string           `position:"Query" name:"Identifier"`
+	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
+	Asc           requests.Integer `position:"Query" name:"Asc"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
-	EndTime       requests.Integer `position:"Query" name:"EndTime"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
-	StartTime     requests.Integer `position:"Query" name:"StartTime"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDevicePropertyDataResponse is the response struct for api QueryDevicePropertyData
 // QueryDevicePropertyDataResponse is the response struct for api QueryDevicePropertyData

+ 1 - 1
services/iot/query_device_property_status.go

@@ -76,10 +76,10 @@ func (client *Client) QueryDevicePropertyStatusWithCallback(request *QueryDevice
 // QueryDevicePropertyStatusRequest is the request struct for api QueryDevicePropertyStatus
 // QueryDevicePropertyStatusRequest is the request struct for api QueryDevicePropertyStatus
 type QueryDevicePropertyStatusRequest struct {
 type QueryDevicePropertyStatusRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDevicePropertyStatusResponse is the response struct for api QueryDevicePropertyStatus
 // QueryDevicePropertyStatusResponse is the response struct for api QueryDevicePropertyStatus

+ 4 - 4
services/iot/query_device_service_data.go

@@ -76,15 +76,15 @@ func (client *Client) QueryDeviceServiceDataWithCallback(request *QueryDeviceSer
 // QueryDeviceServiceDataRequest is the request struct for api QueryDeviceServiceData
 // QueryDeviceServiceDataRequest is the request struct for api QueryDeviceServiceData
 type QueryDeviceServiceDataRequest struct {
 type QueryDeviceServiceDataRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	Asc           requests.Integer `position:"Query" name:"Asc"`
 	Identifier    string           `position:"Query" name:"Identifier"`
 	Identifier    string           `position:"Query" name:"Identifier"`
+	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
+	Asc           requests.Integer `position:"Query" name:"Asc"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotId         string           `position:"Query" name:"IotId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
-	EndTime       requests.Integer `position:"Query" name:"EndTime"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
 	DeviceName    string           `position:"Query" name:"DeviceName"`
-	StartTime     requests.Integer `position:"Query" name:"StartTime"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // QueryDeviceServiceDataResponse is the response struct for api QueryDeviceServiceData
 // QueryDeviceServiceDataResponse is the response struct for api QueryDeviceServiceData

+ 1 - 1
services/iot/query_device_statistics.go

@@ -76,8 +76,8 @@ func (client *Client) QueryDeviceStatisticsWithCallback(request *QueryDeviceStat
 // QueryDeviceStatisticsRequest is the request struct for api QueryDeviceStatistics
 // QueryDeviceStatisticsRequest is the request struct for api QueryDeviceStatistics
 type QueryDeviceStatisticsRequest struct {
 type QueryDeviceStatisticsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // QueryDeviceStatisticsResponse is the response struct for api QueryDeviceStatistics
 // QueryDeviceStatisticsResponse is the response struct for api QueryDeviceStatistics

+ 110 - 0
services/iot/query_edge_instance.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// QueryEdgeInstance invokes the iot.QueryEdgeInstance API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstance.html
+func (client *Client) QueryEdgeInstance(request *QueryEdgeInstanceRequest) (response *QueryEdgeInstanceResponse, err error) {
+	response = CreateQueryEdgeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeInstanceWithChan invokes the iot.QueryEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceWithChan(request *QueryEdgeInstanceRequest) (<-chan *QueryEdgeInstanceResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeInstanceWithCallback invokes the iot.QueryEdgeInstance API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceWithCallback(request *QueryEdgeInstanceRequest, callback func(response *QueryEdgeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeInstanceRequest is the request struct for api QueryEdgeInstance
+type QueryEdgeInstanceRequest struct {
+	*requests.RpcRequest
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Name          string           `position:"Query" name:"Name"`
+}
+
+// QueryEdgeInstanceResponse is the response struct for api QueryEdgeInstance
+type QueryEdgeInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId    string                  `json:"RequestId" xml:"RequestId"`
+	Success      bool                    `json:"Success" xml:"Success"`
+	Code         string                  `json:"Code" xml:"Code"`
+	ErrorMessage string                  `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryEdgeInstance `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEdgeInstanceRequest creates a request to invoke QueryEdgeInstance API
+func CreateQueryEdgeInstanceRequest() (request *QueryEdgeInstanceRequest) {
+	request = &QueryEdgeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeInstance", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeInstanceResponse creates a response to parse from QueryEdgeInstance response
+func CreateQueryEdgeInstanceResponse() (response *QueryEdgeInstanceResponse) {
+	response = &QueryEdgeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/iot/query_edge_instance_device.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// QueryEdgeInstanceDevice invokes the iot.QueryEdgeInstanceDevice API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancedevice.html
+func (client *Client) QueryEdgeInstanceDevice(request *QueryEdgeInstanceDeviceRequest) (response *QueryEdgeInstanceDeviceResponse, err error) {
+	response = CreateQueryEdgeInstanceDeviceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeInstanceDeviceWithChan invokes the iot.QueryEdgeInstanceDevice API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancedevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceDeviceWithChan(request *QueryEdgeInstanceDeviceRequest) (<-chan *QueryEdgeInstanceDeviceResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeInstanceDeviceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeInstanceDevice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeInstanceDeviceWithCallback invokes the iot.QueryEdgeInstanceDevice API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancedevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceDeviceWithCallback(request *QueryEdgeInstanceDeviceRequest, callback func(response *QueryEdgeInstanceDeviceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeInstanceDeviceResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeInstanceDevice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeInstanceDeviceRequest is the request struct for api QueryEdgeInstanceDevice
+type QueryEdgeInstanceDeviceRequest struct {
+	*requests.RpcRequest
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// QueryEdgeInstanceDeviceResponse is the response struct for api QueryEdgeInstanceDevice
+type QueryEdgeInstanceDeviceResponse struct {
+	*responses.BaseResponse
+	RequestId    string                        `json:"RequestId" xml:"RequestId"`
+	Success      bool                          `json:"Success" xml:"Success"`
+	Code         string                        `json:"Code" xml:"Code"`
+	ErrorMessage string                        `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryEdgeInstanceDevice `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEdgeInstanceDeviceRequest creates a request to invoke QueryEdgeInstanceDevice API
+func CreateQueryEdgeInstanceDeviceRequest() (request *QueryEdgeInstanceDeviceRequest) {
+	request = &QueryEdgeInstanceDeviceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeInstanceDevice", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeInstanceDeviceResponse creates a response to parse from QueryEdgeInstanceDevice response
+func CreateQueryEdgeInstanceDeviceResponse() (response *QueryEdgeInstanceDeviceResponse) {
+	response = &QueryEdgeInstanceDeviceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/iot/query_edge_instance_driver.go

@@ -0,0 +1,110 @@
+package iot
+
+//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"
+)
+
+// QueryEdgeInstanceDriver invokes the iot.QueryEdgeInstanceDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancedriver.html
+func (client *Client) QueryEdgeInstanceDriver(request *QueryEdgeInstanceDriverRequest) (response *QueryEdgeInstanceDriverResponse, err error) {
+	response = CreateQueryEdgeInstanceDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeInstanceDriverWithChan invokes the iot.QueryEdgeInstanceDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceDriverWithChan(request *QueryEdgeInstanceDriverRequest) (<-chan *QueryEdgeInstanceDriverResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeInstanceDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeInstanceDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeInstanceDriverWithCallback invokes the iot.QueryEdgeInstanceDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceDriverWithCallback(request *QueryEdgeInstanceDriverRequest, callback func(response *QueryEdgeInstanceDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeInstanceDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeInstanceDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeInstanceDriverRequest is the request struct for api QueryEdgeInstanceDriver
+type QueryEdgeInstanceDriverRequest struct {
+	*requests.RpcRequest
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// QueryEdgeInstanceDriverResponse is the response struct for api QueryEdgeInstanceDriver
+type QueryEdgeInstanceDriverResponse struct {
+	*responses.BaseResponse
+	RequestId    string                        `json:"RequestId" xml:"RequestId"`
+	Success      bool                          `json:"Success" xml:"Success"`
+	Code         string                        `json:"Code" xml:"Code"`
+	ErrorMessage string                        `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryEdgeInstanceDriver `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEdgeInstanceDriverRequest creates a request to invoke QueryEdgeInstanceDriver API
+func CreateQueryEdgeInstanceDriverRequest() (request *QueryEdgeInstanceDriverRequest) {
+	request = &QueryEdgeInstanceDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeInstanceDriver", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeInstanceDriverResponse creates a response to parse from QueryEdgeInstanceDriver response
+func CreateQueryEdgeInstanceDriverResponse() (response *QueryEdgeInstanceDriverResponse) {
+	response = &QueryEdgeInstanceDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/iot/query_edge_instance_gateway.go

@@ -0,0 +1,108 @@
+package iot
+
+//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"
+)
+
+// QueryEdgeInstanceGateway invokes the iot.QueryEdgeInstanceGateway API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancegateway.html
+func (client *Client) QueryEdgeInstanceGateway(request *QueryEdgeInstanceGatewayRequest) (response *QueryEdgeInstanceGatewayResponse, err error) {
+	response = CreateQueryEdgeInstanceGatewayResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeInstanceGatewayWithChan invokes the iot.QueryEdgeInstanceGateway API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancegateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceGatewayWithChan(request *QueryEdgeInstanceGatewayRequest) (<-chan *QueryEdgeInstanceGatewayResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeInstanceGatewayResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeInstanceGateway(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeInstanceGatewayWithCallback invokes the iot.QueryEdgeInstanceGateway API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancegateway.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceGatewayWithCallback(request *QueryEdgeInstanceGatewayRequest, callback func(response *QueryEdgeInstanceGatewayResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeInstanceGatewayResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeInstanceGateway(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeInstanceGatewayRequest is the request struct for api QueryEdgeInstanceGateway
+type QueryEdgeInstanceGatewayRequest struct {
+	*requests.RpcRequest
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+}
+
+// QueryEdgeInstanceGatewayResponse is the response struct for api QueryEdgeInstanceGateway
+type QueryEdgeInstanceGatewayResponse struct {
+	*responses.BaseResponse
+	RequestId    string    `json:"RequestId" xml:"RequestId"`
+	Success      bool      `json:"Success" xml:"Success"`
+	Code         string    `json:"Code" xml:"Code"`
+	ErrorMessage string    `json:"ErrorMessage" xml:"ErrorMessage"`
+	GatewayList  []Gateway `json:"GatewayList" xml:"GatewayList"`
+}
+
+// CreateQueryEdgeInstanceGatewayRequest creates a request to invoke QueryEdgeInstanceGateway API
+func CreateQueryEdgeInstanceGatewayRequest() (request *QueryEdgeInstanceGatewayRequest) {
+	request = &QueryEdgeInstanceGatewayRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeInstanceGateway", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeInstanceGatewayResponse creates a response to parse from QueryEdgeInstanceGateway response
+func CreateQueryEdgeInstanceGatewayResponse() (response *QueryEdgeInstanceGatewayResponse) {
+	response = &QueryEdgeInstanceGatewayResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/iot/query_edge_instance_historic_deployment.go

@@ -0,0 +1,112 @@
+package iot
+
+//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"
+)
+
+// QueryEdgeInstanceHistoricDeployment invokes the iot.QueryEdgeInstanceHistoricDeployment API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancehistoricdeployment.html
+func (client *Client) QueryEdgeInstanceHistoricDeployment(request *QueryEdgeInstanceHistoricDeploymentRequest) (response *QueryEdgeInstanceHistoricDeploymentResponse, err error) {
+	response = CreateQueryEdgeInstanceHistoricDeploymentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeInstanceHistoricDeploymentWithChan invokes the iot.QueryEdgeInstanceHistoricDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancehistoricdeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceHistoricDeploymentWithChan(request *QueryEdgeInstanceHistoricDeploymentRequest) (<-chan *QueryEdgeInstanceHistoricDeploymentResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeInstanceHistoricDeploymentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeInstanceHistoricDeployment(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeInstanceHistoricDeploymentWithCallback invokes the iot.QueryEdgeInstanceHistoricDeployment API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgeinstancehistoricdeployment.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeInstanceHistoricDeploymentWithCallback(request *QueryEdgeInstanceHistoricDeploymentRequest, callback func(response *QueryEdgeInstanceHistoricDeploymentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeInstanceHistoricDeploymentResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeInstanceHistoricDeployment(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeInstanceHistoricDeploymentRequest is the request struct for api QueryEdgeInstanceHistoricDeployment
+type QueryEdgeInstanceHistoricDeploymentRequest struct {
+	*requests.RpcRequest
+	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// QueryEdgeInstanceHistoricDeploymentResponse is the response struct for api QueryEdgeInstanceHistoricDeployment
+type QueryEdgeInstanceHistoricDeploymentResponse struct {
+	*responses.BaseResponse
+	RequestId    string                                    `json:"RequestId" xml:"RequestId"`
+	Success      bool                                      `json:"Success" xml:"Success"`
+	Code         string                                    `json:"Code" xml:"Code"`
+	ErrorMessage string                                    `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryEdgeInstanceHistoricDeployment `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEdgeInstanceHistoricDeploymentRequest creates a request to invoke QueryEdgeInstanceHistoricDeployment API
+func CreateQueryEdgeInstanceHistoricDeploymentRequest() (request *QueryEdgeInstanceHistoricDeploymentRequest) {
+	request = &QueryEdgeInstanceHistoricDeploymentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeInstanceHistoricDeployment", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeInstanceHistoricDeploymentResponse creates a response to parse from QueryEdgeInstanceHistoricDeployment response
+func CreateQueryEdgeInstanceHistoricDeploymentResponse() (response *QueryEdgeInstanceHistoricDeploymentResponse) {
+	response = &QueryEdgeInstanceHistoricDeploymentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/iot/query_page_by_apply_id.go

@@ -76,10 +76,10 @@ func (client *Client) QueryPageByApplyIdWithCallback(request *QueryPageByApplyId
 // QueryPageByApplyIdRequest is the request struct for api QueryPageByApplyId
 // QueryPageByApplyIdRequest is the request struct for api QueryPageByApplyId
 type QueryPageByApplyIdRequest struct {
 type QueryPageByApplyIdRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
 	PageSize      requests.Integer `position:"Query" name:"PageSize"`
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 }
 }
 
 
 // QueryPageByApplyIdResponse is the response struct for api QueryPageByApplyId
 // QueryPageByApplyIdResponse is the response struct for api QueryPageByApplyId

+ 6 - 6
services/iot/query_product.go

@@ -76,18 +76,18 @@ func (client *Client) QueryProductWithCallback(request *QueryProductRequest, cal
 // QueryProductRequest is the request struct for api QueryProduct
 // QueryProductRequest is the request struct for api QueryProduct
 type QueryProductRequest struct {
 type QueryProductRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // QueryProductResponse is the response struct for api QueryProduct
 // QueryProductResponse is the response struct for api QueryProduct
 type QueryProductResponse struct {
 type QueryProductResponse struct {
 	*responses.BaseResponse
 	*responses.BaseResponse
-	RequestId    string `json:"RequestId" xml:"RequestId"`
-	Success      bool   `json:"Success" xml:"Success"`
-	Code         string `json:"Code" xml:"Code"`
-	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
-	Data         Data   `json:"Data" xml:"Data"`
+	RequestId    string             `json:"RequestId" xml:"RequestId"`
+	Success      bool               `json:"Success" xml:"Success"`
+	Code         string             `json:"Code" xml:"Code"`
+	ErrorMessage string             `json:"ErrorMessage" xml:"ErrorMessage"`
+	Data         DataInQueryProduct `json:"Data" xml:"Data"`
 }
 }
 
 
 // CreateQueryProductRequest creates a request to invoke QueryProduct API
 // CreateQueryProductRequest creates a request to invoke QueryProduct API

+ 2 - 1
services/iot/query_product_list.go

@@ -76,9 +76,10 @@ func (client *Client) QueryProductListWithCallback(request *QueryProductListRequ
 // QueryProductListRequest is the request struct for api QueryProductList
 // QueryProductListRequest is the request struct for api QueryProductList
 type QueryProductListRequest struct {
 type QueryProductListRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	CurrentPage         requests.Integer `position:"Query" name:"CurrentPage"`
+	ResourceGroupId     string           `position:"Query" name:"ResourceGroupId"`
 	IotInstanceId       string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId       string           `position:"Query" name:"IotInstanceId"`
 	PageSize            requests.Integer `position:"Query" name:"PageSize"`
 	PageSize            requests.Integer `position:"Query" name:"PageSize"`
-	CurrentPage         requests.Integer `position:"Query" name:"CurrentPage"`
 	AliyunCommodityCode string           `position:"Query" name:"AliyunCommodityCode"`
 	AliyunCommodityCode string           `position:"Query" name:"AliyunCommodityCode"`
 }
 }
 
 

+ 1 - 1
services/iot/query_product_topic.go

@@ -76,8 +76,8 @@ func (client *Client) QueryProductTopicWithCallback(request *QueryProductTopicRe
 // QueryProductTopicRequest is the request struct for api QueryProductTopic
 // QueryProductTopicRequest is the request struct for api QueryProductTopic
 type QueryProductTopicRequest struct {
 type QueryProductTopicRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
 	ProductKey    string `position:"Query" name:"ProductKey"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // QueryProductTopicResponse is the response struct for api QueryProductTopic
 // QueryProductTopicResponse is the response struct for api QueryProductTopic

+ 1 - 1
services/iot/query_super_device_group.go

@@ -76,8 +76,8 @@ func (client *Client) QuerySuperDeviceGroupWithCallback(request *QuerySuperDevic
 // QuerySuperDeviceGroupRequest is the request struct for api QuerySuperDeviceGroup
 // QuerySuperDeviceGroupRequest is the request struct for api QuerySuperDeviceGroup
 type QuerySuperDeviceGroupRequest struct {
 type QuerySuperDeviceGroupRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	GroupId       string `position:"Query" name:"GroupId"`
 	GroupId       string `position:"Query" name:"GroupId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // QuerySuperDeviceGroupResponse is the response struct for api QuerySuperDeviceGroup
 // QuerySuperDeviceGroupResponse is the response struct for api QuerySuperDeviceGroup

+ 3 - 3
services/iot/r_rpc.go

@@ -76,12 +76,12 @@ func (client *Client) RRpcWithCallback(request *RRpcRequest, callback func(respo
 // RRpcRequest is the request struct for api RRpc
 // RRpcRequest is the request struct for api RRpc
 type RRpcRequest struct {
 type RRpcRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	IotInstanceId     string           `position:"Query" name:"IotInstanceId"`
 	RequestBase64Byte string           `position:"Query" name:"RequestBase64Byte"`
 	RequestBase64Byte string           `position:"Query" name:"RequestBase64Byte"`
-	Topic             string           `position:"Query" name:"Topic"`
-	DeviceName        string           `position:"Query" name:"DeviceName"`
 	ProductKey        string           `position:"Query" name:"ProductKey"`
 	ProductKey        string           `position:"Query" name:"ProductKey"`
 	Timeout           requests.Integer `position:"Query" name:"Timeout"`
 	Timeout           requests.Integer `position:"Query" name:"Timeout"`
+	IotInstanceId     string           `position:"Query" name:"IotInstanceId"`
+	Topic             string           `position:"Query" name:"Topic"`
+	DeviceName        string           `position:"Query" name:"DeviceName"`
 }
 }
 
 
 // RRpcResponse is the response struct for api RRpc
 // RRpcResponse is the response struct for api RRpc

+ 2 - 2
services/iot/register_device.go

@@ -77,11 +77,11 @@ func (client *Client) RegisterDeviceWithCallback(request *RegisterDeviceRequest,
 type RegisterDeviceRequest struct {
 type RegisterDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	PinCode       string `position:"Query" name:"PinCode"`
 	PinCode       string `position:"Query" name:"PinCode"`
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	DevEui        string `position:"Query" name:"DevEui"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	Nickname      string `position:"Query" name:"Nickname"`
 	Nickname      string `position:"Query" name:"Nickname"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
-	DevEui        string `position:"Query" name:"DevEui"`
 }
 }
 
 
 // RegisterDeviceResponse is the response struct for api RegisterDevice
 // RegisterDeviceResponse is the response struct for api RegisterDevice

+ 1 - 1
services/iot/remove_thing_topo.go

@@ -76,10 +76,10 @@ func (client *Client) RemoveThingTopoWithCallback(request *RemoveThingTopoReques
 // RemoveThingTopoRequest is the request struct for api RemoveThingTopo
 // RemoveThingTopoRequest is the request struct for api RemoveThingTopo
 type RemoveThingTopoRequest struct {
 type RemoveThingTopoRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 }
 }
 
 
 // RemoveThingTopoResponse is the response struct for api RemoveThingTopo
 // RemoveThingTopoResponse is the response struct for api RemoveThingTopo

+ 2 - 2
services/iot/save_device_prop.go

@@ -76,11 +76,11 @@ func (client *Client) SaveDevicePropWithCallback(request *SaveDevicePropRequest,
 // SaveDevicePropRequest is the request struct for api SaveDeviceProp
 // SaveDevicePropRequest is the request struct for api SaveDeviceProp
 type SaveDevicePropRequest struct {
 type SaveDevicePropRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	Props         string `position:"Query" name:"Props"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
-	Props         string `position:"Query" name:"Props"`
 }
 }
 
 
 // SaveDevicePropResponse is the response struct for api SaveDeviceProp
 // SaveDevicePropResponse is the response struct for api SaveDeviceProp

+ 1 - 1
services/iot/set_device_desired_property.go

@@ -76,11 +76,11 @@ func (client *Client) SetDeviceDesiredPropertyWithCallback(request *SetDeviceDes
 // SetDeviceDesiredPropertyRequest is the request struct for api SetDeviceDesiredProperty
 // SetDeviceDesiredPropertyRequest is the request struct for api SetDeviceDesiredProperty
 type SetDeviceDesiredPropertyRequest struct {
 type SetDeviceDesiredPropertyRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	Versions      string `position:"Query" name:"Versions"`
 	Versions      string `position:"Query" name:"Versions"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 	Items         string `position:"Query" name:"Items"`
 	Items         string `position:"Query" name:"Items"`
 }
 }
 
 

+ 1 - 1
services/iot/set_device_group_tags.go

@@ -77,8 +77,8 @@ func (client *Client) SetDeviceGroupTagsWithCallback(request *SetDeviceGroupTags
 type SetDeviceGroupTagsRequest struct {
 type SetDeviceGroupTagsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	TagString     string `position:"Query" name:"TagString"`
 	TagString     string `position:"Query" name:"TagString"`
-	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	GroupId       string `position:"Query" name:"GroupId"`
 	GroupId       string `position:"Query" name:"GroupId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 }
 }
 
 
 // SetDeviceGroupTagsResponse is the response struct for api SetDeviceGroupTags
 // SetDeviceGroupTagsResponse is the response struct for api SetDeviceGroupTags

+ 1 - 1
services/iot/set_device_property.go

@@ -76,10 +76,10 @@ func (client *Client) SetDevicePropertyWithCallback(request *SetDevicePropertyRe
 // SetDevicePropertyRequest is the request struct for api SetDeviceProperty
 // SetDevicePropertyRequest is the request struct for api SetDeviceProperty
 type SetDevicePropertyRequest struct {
 type SetDevicePropertyRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
-	ProductKey    string `position:"Query" name:"ProductKey"`
 	Items         string `position:"Query" name:"Items"`
 	Items         string `position:"Query" name:"Items"`
 }
 }
 
 

+ 1 - 1
services/iot/set_devices_property.go

@@ -76,9 +76,9 @@ func (client *Client) SetDevicesPropertyWithCallback(request *SetDevicesProperty
 // SetDevicesPropertyRequest is the request struct for api SetDevicesProperty
 // SetDevicesPropertyRequest is the request struct for api SetDevicesProperty
 type SetDevicesPropertyRequest struct {
 type SetDevicesPropertyRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
+	ProductKey    string    `position:"Query" name:"ProductKey"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 	Items         string    `position:"Query" name:"Items"`
 	Items         string    `position:"Query" name:"Items"`
 }
 }
 
 

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini