Browse Source

Generated 2018-01-20 for Iot.

sdk-team 5 years ago
parent
commit
f211476013
73 changed files with 1636 additions and 350 deletions
  1. 5 0
      ChangeLog.txt
  2. 3 1
      services/iot/batch_bind_device_to_edge_instance_with_driver.go
  3. 3 1
      services/iot/batch_clear_edge_instance_device_config.go
  4. 3 1
      services/iot/batch_get_device_driver.go
  5. 110 0
      services/iot/batch_get_edge_driver.go
  6. 3 1
      services/iot/batch_get_edge_instance_device_config.go
  7. 3 1
      services/iot/batch_get_edge_instance_driver_configs.go
  8. 3 1
      services/iot/batch_set_edge_instance_device_config.go
  9. 3 1
      services/iot/batch_unbind_device_from_edge_instance.go
  10. 4 2
      services/iot/bind_driver_to_edge_instance.go
  11. 4 2
      services/iot/bind_gateway_to_edge_instance.go
  12. 2 0
      services/iot/cancel_ota_strategy_by_job.go
  13. 4 2
      services/iot/cancel_ota_task_by_device.go
  14. 3 1
      services/iot/clear_edge_instance_driver_configs.go
  15. 3 1
      services/iot/close_edge_instance_deployment.go
  16. 12 9
      services/iot/create_data_api_service.go
  17. 114 0
      services/iot/create_edge_driver.go
  18. 116 0
      services/iot/create_edge_driver_version.go
  19. 3 1
      services/iot/create_edge_instance.go
  20. 3 1
      services/iot/create_edge_instance_deployment.go
  21. 3 0
      services/iot/create_ota_firmware.go
  22. 4 2
      services/iot/create_ota_verify_job.go
  23. 3 1
      services/iot/create_topic_route_table.go
  24. 109 0
      services/iot/delete_edge_driver.go
  25. 110 0
      services/iot/delete_edge_driver_version.go
  26. 3 1
      services/iot/delete_edge_instance.go
  27. 3 1
      services/iot/delete_ota_firmware.go
  28. 2 0
      services/iot/generate_ota_upload_url.go
  29. 5 2
      services/iot/get_data_api_service_detail.go
  30. 0 109
      services/iot/get_device_list_by_iot_ids.go
  31. 111 0
      services/iot/get_edge_driver_version.go
  32. 3 1
      services/iot/get_edge_instance.go
  33. 3 1
      services/iot/get_edge_instance_deployment.go
  34. 0 110
      services/iot/get_product_key_list_by_name.go
  35. 1 1
      services/iot/gis_query_device_location.go
  36. 4 2
      services/iot/list_ota_firmware.go
  37. 118 0
      services/iot/list_ota_job_by_device.go
  38. 1 0
      services/iot/pub_broadcast.go
  39. 3 1
      services/iot/query_cert_url_by_apply_id.go
  40. 4 2
      services/iot/query_device_by_driver.go
  41. 3 1
      services/iot/query_device_cert.go
  42. 113 0
      services/iot/query_edge_driver.go
  43. 114 0
      services/iot/query_edge_driver_version.go
  44. 3 1
      services/iot/query_edge_instance.go
  45. 4 2
      services/iot/query_edge_instance_device.go
  46. 4 2
      services/iot/query_edge_instance_driver.go
  47. 3 1
      services/iot/query_edge_instance_gateway.go
  48. 5 3
      services/iot/query_edge_instance_historic_deployment.go
  49. 3 1
      services/iot/query_ota_firmware.go
  50. 2 0
      services/iot/query_ota_job.go
  51. 111 0
      services/iot/reset_thing.go
  52. 3 1
      services/iot/set_edge_instance_driver_configs.go
  53. 47 35
      services/iot/struct_data.go
  54. 21 0
      services/iot/struct_data_in_list_ota_job_by_device.go
  55. 24 0
      services/iot/struct_data_in_query_edge_driver.go
  56. 24 0
      services/iot/struct_data_in_query_edge_driver_version.go
  57. 10 7
      services/iot/struct_deployment.go
  58. 13 5
      services/iot/struct_driver.go
  59. 3 3
      services/iot/struct_driver_list_in_batch_get_edge_driver.go
  60. 2 2
      services/iot/struct_driver_list_in_query_edge_driver.go
  61. 21 0
      services/iot/struct_driver_list_in_query_edge_instance_driver.go
  62. 31 0
      services/iot/struct_driver_version.go
  63. 21 0
      services/iot/struct_driver_version_list.go
  64. 1 1
      services/iot/struct_failure_topics_in_create_topic_route_table.go
  65. 1 0
      services/iot/struct_firmware_info.go
  66. 3 0
      services/iot/struct_instance.go
  67. 14 11
      services/iot/struct_resource_snapshot.go
  68. 1 0
      services/iot/struct_simple_firmware_info.go
  69. 4 4
      services/iot/struct_simple_ota_job_info.go
  70. 11 8
      services/iot/struct_task.go
  71. 3 1
      services/iot/unbind_driver_from_edge_instance.go
  72. 116 0
      services/iot/update_edge_driver_version.go
  73. 3 1
      services/iot/update_edge_instance.go

+ 5 - 0
ChangeLog.txt

@@ -1,3 +1,8 @@
+2020-03-05 Version: v1.61.29
+- Generated 2018-01-20 for `Iot`.
+- Add CreateEdgeDriver, DeleteEdgeDriver, BatchGetEdgeDriver, QueryEdgeDriver, CreateEdgeDriverVersion, DeleteEdgeDriverVersion, UpdateEdgeDriverVersion, GetEdgeDriverVersion, QueryEdgeDriverVersion API.
+- Add ResetThing API, support reset thing topo and 
+
 2020-03-05 Version: v1.61.28
 2020-03-05 Version: v1.61.28
 - Generated 2019-12-11 for `OnsMqtt`.
 - Generated 2019-12-11 for `OnsMqtt`.
 - Update send message noPresistFlag param.
 - Update send message noPresistFlag param.

+ 3 - 1
services/iot/batch_bind_device_to_edge_instance_with_driver.go

@@ -76,10 +76,12 @@ func (client *Client) BatchBindDeviceToEdgeInstanceWithDriverWithCallback(reques
 // BatchBindDeviceToEdgeInstanceWithDriverRequest is the request struct for api BatchBindDeviceToEdgeInstanceWithDriver
 // BatchBindDeviceToEdgeInstanceWithDriverRequest is the request struct for api BatchBindDeviceToEdgeInstanceWithDriver
 type BatchBindDeviceToEdgeInstanceWithDriverRequest struct {
 type BatchBindDeviceToEdgeInstanceWithDriverRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string    `position:"Query" name:"InstanceId"`
 	DriverId      string    `position:"Query" name:"DriverId"`
 	DriverId      string    `position:"Query" name:"DriverId"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchBindDeviceToEdgeInstanceWithDriverResponse is the response struct for api BatchBindDeviceToEdgeInstanceWithDriver
 // BatchBindDeviceToEdgeInstanceWithDriverResponse is the response struct for api BatchBindDeviceToEdgeInstanceWithDriver

+ 3 - 1
services/iot/batch_clear_edge_instance_device_config.go

@@ -76,9 +76,11 @@ func (client *Client) BatchClearEdgeInstanceDeviceConfigWithCallback(request *Ba
 // BatchClearEdgeInstanceDeviceConfigRequest is the request struct for api BatchClearEdgeInstanceDeviceConfig
 // BatchClearEdgeInstanceDeviceConfigRequest is the request struct for api BatchClearEdgeInstanceDeviceConfig
 type BatchClearEdgeInstanceDeviceConfigRequest struct {
 type BatchClearEdgeInstanceDeviceConfigRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string    `position:"Query" name:"InstanceId"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchClearEdgeInstanceDeviceConfigResponse is the response struct for api BatchClearEdgeInstanceDeviceConfig
 // BatchClearEdgeInstanceDeviceConfigResponse is the response struct for api BatchClearEdgeInstanceDeviceConfig

+ 3 - 1
services/iot/batch_get_device_driver.go

@@ -76,9 +76,11 @@ func (client *Client) BatchGetDeviceDriverWithCallback(request *BatchGetDeviceDr
 // BatchGetDeviceDriverRequest is the request struct for api BatchGetDeviceDriver
 // BatchGetDeviceDriverRequest is the request struct for api BatchGetDeviceDriver
 type BatchGetDeviceDriverRequest struct {
 type BatchGetDeviceDriverRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string    `position:"Query" name:"InstanceId"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchGetDeviceDriverResponse is the response struct for api BatchGetDeviceDriver
 // BatchGetDeviceDriverResponse is the response struct for api BatchGetDeviceDriver

+ 110 - 0
services/iot/batch_get_edge_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"
+)
+
+// BatchGetEdgeDriver invokes the iot.BatchGetEdgeDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgedriver.html
+func (client *Client) BatchGetEdgeDriver(request *BatchGetEdgeDriverRequest) (response *BatchGetEdgeDriverResponse, err error) {
+	response = CreateBatchGetEdgeDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchGetEdgeDriverWithChan invokes the iot.BatchGetEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetEdgeDriverWithChan(request *BatchGetEdgeDriverRequest) (<-chan *BatchGetEdgeDriverResponse, <-chan error) {
+	responseChan := make(chan *BatchGetEdgeDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchGetEdgeDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchGetEdgeDriverWithCallback invokes the iot.BatchGetEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/batchgetedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchGetEdgeDriverWithCallback(request *BatchGetEdgeDriverRequest, callback func(response *BatchGetEdgeDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchGetEdgeDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchGetEdgeDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchGetEdgeDriverRequest is the request struct for api BatchGetEdgeDriver
+type BatchGetEdgeDriverRequest struct {
+	*requests.RpcRequest
+	DriverIds     *[]string `position:"Query" name:"DriverIds"  type:"Repeated"`
+	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
+}
+
+// BatchGetEdgeDriverResponse is the response struct for api BatchGetEdgeDriver
+type BatchGetEdgeDriverResponse 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"`
+	DriverList   []Driver `json:"DriverList" xml:"DriverList"`
+}
+
+// CreateBatchGetEdgeDriverRequest creates a request to invoke BatchGetEdgeDriver API
+func CreateBatchGetEdgeDriverRequest() (request *BatchGetEdgeDriverRequest) {
+	request = &BatchGetEdgeDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "BatchGetEdgeDriver", "iot", "openAPI")
+	return
+}
+
+// CreateBatchGetEdgeDriverResponse creates a response to parse from BatchGetEdgeDriver response
+func CreateBatchGetEdgeDriverResponse() (response *BatchGetEdgeDriverResponse) {
+	response = &BatchGetEdgeDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/batch_get_edge_instance_device_config.go

@@ -76,9 +76,11 @@ func (client *Client) BatchGetEdgeInstanceDeviceConfigWithCallback(request *Batc
 // BatchGetEdgeInstanceDeviceConfigRequest is the request struct for api BatchGetEdgeInstanceDeviceConfig
 // BatchGetEdgeInstanceDeviceConfigRequest is the request struct for api BatchGetEdgeInstanceDeviceConfig
 type BatchGetEdgeInstanceDeviceConfigRequest struct {
 type BatchGetEdgeInstanceDeviceConfigRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string    `position:"Query" name:"InstanceId"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchGetEdgeInstanceDeviceConfigResponse is the response struct for api BatchGetEdgeInstanceDeviceConfig
 // BatchGetEdgeInstanceDeviceConfigResponse is the response struct for api BatchGetEdgeInstanceDeviceConfig

+ 3 - 1
services/iot/batch_get_edge_instance_driver_configs.go

@@ -77,8 +77,10 @@ func (client *Client) BatchGetEdgeInstanceDriverConfigsWithCallback(request *Bat
 type BatchGetEdgeInstanceDriverConfigsRequest struct {
 type BatchGetEdgeInstanceDriverConfigsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	DriverIds     *[]string `position:"Query" name:"DriverIds"  type:"Repeated"`
 	DriverIds     *[]string `position:"Query" name:"DriverIds"  type:"Repeated"`
-	InstanceId    string    `position:"Query" name:"InstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchGetEdgeInstanceDriverConfigsResponse is the response struct for api BatchGetEdgeInstanceDriverConfigs
 // BatchGetEdgeInstanceDriverConfigsResponse is the response struct for api BatchGetEdgeInstanceDriverConfigs

+ 3 - 1
services/iot/batch_set_edge_instance_device_config.go

@@ -76,9 +76,11 @@ func (client *Client) BatchSetEdgeInstanceDeviceConfigWithCallback(request *Batc
 // BatchSetEdgeInstanceDeviceConfigRequest is the request struct for api BatchSetEdgeInstanceDeviceConfig
 // BatchSetEdgeInstanceDeviceConfigRequest is the request struct for api BatchSetEdgeInstanceDeviceConfig
 type BatchSetEdgeInstanceDeviceConfigRequest struct {
 type BatchSetEdgeInstanceDeviceConfigRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string                                           `position:"Query" name:"InstanceId"`
 	DeviceConfigs *[]BatchSetEdgeInstanceDeviceConfigDeviceConfigs `position:"Query" name:"DeviceConfigs"  type:"Repeated"`
 	DeviceConfigs *[]BatchSetEdgeInstanceDeviceConfigDeviceConfigs `position:"Query" name:"DeviceConfigs"  type:"Repeated"`
 	IotInstanceId string                                           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string                                           `position:"Query" name:"IotInstanceId"`
+	InstanceId    string                                           `position:"Query" name:"InstanceId"`
+	ApiProduct    string                                           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string                                           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchSetEdgeInstanceDeviceConfigDeviceConfigs is a repeated param struct in BatchSetEdgeInstanceDeviceConfigRequest
 // BatchSetEdgeInstanceDeviceConfigDeviceConfigs is a repeated param struct in BatchSetEdgeInstanceDeviceConfigRequest

+ 3 - 1
services/iot/batch_unbind_device_from_edge_instance.go

@@ -76,9 +76,11 @@ func (client *Client) BatchUnbindDeviceFromEdgeInstanceWithCallback(request *Bat
 // BatchUnbindDeviceFromEdgeInstanceRequest is the request struct for api BatchUnbindDeviceFromEdgeInstance
 // BatchUnbindDeviceFromEdgeInstanceRequest is the request struct for api BatchUnbindDeviceFromEdgeInstance
 type BatchUnbindDeviceFromEdgeInstanceRequest struct {
 type BatchUnbindDeviceFromEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string    `position:"Query" name:"InstanceId"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotIds        *[]string `position:"Query" name:"IotIds"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BatchUnbindDeviceFromEdgeInstanceResponse is the response struct for api BatchUnbindDeviceFromEdgeInstance
 // BatchUnbindDeviceFromEdgeInstanceResponse is the response struct for api BatchUnbindDeviceFromEdgeInstance

+ 4 - 2
services/iot/bind_driver_to_edge_instance.go

@@ -76,11 +76,13 @@ func (client *Client) BindDriverToEdgeInstanceWithCallback(request *BindDriverTo
 // BindDriverToEdgeInstanceRequest is the request struct for api BindDriverToEdgeInstance
 // BindDriverToEdgeInstanceRequest is the request struct for api BindDriverToEdgeInstance
 type BindDriverToEdgeInstanceRequest struct {
 type BindDriverToEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	OrderId       string `position:"Query" name:"OrderId"`
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	DriverId      string `position:"Query" name:"DriverId"`
 	DriverId      string `position:"Query" name:"DriverId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	DriverVersion string `position:"Query" name:"DriverVersion"`
 	DriverVersion string `position:"Query" name:"DriverVersion"`
+	OrderId       string `position:"Query" name:"OrderId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // BindDriverToEdgeInstanceResponse is the response struct for api BindDriverToEdgeInstance
 // BindDriverToEdgeInstanceResponse is the response struct for api BindDriverToEdgeInstance

+ 4 - 2
services/iot/bind_gateway_to_edge_instance.go

@@ -76,10 +76,12 @@ func (client *Client) BindGatewayToEdgeInstanceWithCallback(request *BindGateway
 // BindGatewayToEdgeInstanceRequest is the request struct for api BindGatewayToEdgeInstance
 // BindGatewayToEdgeInstanceRequest is the request struct for api BindGatewayToEdgeInstance
 type BindGatewayToEdgeInstanceRequest struct {
 type BindGatewayToEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotId         string `position:"Query" name:"IotId"`
 	IotId         string `position:"Query" name:"IotId"`
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 }
 }
 
 

+ 2 - 0
services/iot/cancel_ota_strategy_by_job.go

@@ -78,6 +78,8 @@ type CancelOTAStrategyByJobRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	JobId         string `position:"Query" name:"JobId"`
 	JobId         string `position:"Query" name:"JobId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // CancelOTAStrategyByJobResponse is the response struct for api CancelOTAStrategyByJob
 // CancelOTAStrategyByJobResponse is the response struct for api CancelOTAStrategyByJob

+ 4 - 2
services/iot/cancel_ota_task_by_device.go

@@ -76,10 +76,12 @@ func (client *Client) CancelOTATaskByDeviceWithCallback(request *CancelOTATaskBy
 // CancelOTATaskByDeviceRequest is the request struct for api CancelOTATaskByDevice
 // CancelOTATaskByDeviceRequest is the request struct for api CancelOTATaskByDevice
 type CancelOTATaskByDeviceRequest struct {
 type CancelOTATaskByDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	FirmwareId    string    `position:"Query" name:"FirmwareId"`
-	ProductKey    string    `position:"Query" name:"ProductKey"`
 	JobId         string    `position:"Query" name:"JobId"`
 	JobId         string    `position:"Query" name:"JobId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	FirmwareId    string    `position:"Query" name:"FirmwareId"`
+	ProductKey    string    `position:"Query" name:"ProductKey"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
 	DeviceName    *[]string `position:"Query" name:"DeviceName"  type:"Repeated"`
 }
 }
 
 

+ 3 - 1
services/iot/clear_edge_instance_driver_configs.go

@@ -76,9 +76,11 @@ func (client *Client) ClearEdgeInstanceDriverConfigsWithCallback(request *ClearE
 // ClearEdgeInstanceDriverConfigsRequest is the request struct for api ClearEdgeInstanceDriverConfigs
 // ClearEdgeInstanceDriverConfigsRequest is the request struct for api ClearEdgeInstanceDriverConfigs
 type ClearEdgeInstanceDriverConfigsRequest struct {
 type ClearEdgeInstanceDriverConfigsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	DriverId      string `position:"Query" name:"DriverId"`
 	DriverId      string `position:"Query" name:"DriverId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // ClearEdgeInstanceDriverConfigsResponse is the response struct for api ClearEdgeInstanceDriverConfigs
 // ClearEdgeInstanceDriverConfigsResponse is the response struct for api ClearEdgeInstanceDriverConfigs

+ 3 - 1
services/iot/close_edge_instance_deployment.go

@@ -76,8 +76,10 @@ func (client *Client) CloseEdgeInstanceDeploymentWithCallback(request *CloseEdge
 // CloseEdgeInstanceDeploymentRequest is the request struct for api CloseEdgeInstanceDeployment
 // CloseEdgeInstanceDeploymentRequest is the request struct for api CloseEdgeInstanceDeployment
 type CloseEdgeInstanceDeploymentRequest struct {
 type CloseEdgeInstanceDeploymentRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // CloseEdgeInstanceDeploymentResponse is the response struct for api CloseEdgeInstanceDeployment
 // CloseEdgeInstanceDeploymentResponse is the response struct for api CloseEdgeInstanceDeployment

+ 12 - 9
services/iot/create_data_api_service.go

@@ -76,32 +76,35 @@ 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
-	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"`
-	TemplateSql   string                               `position:"Query" name:"TemplateSql"`
+	FolderId      string                               `position:"Body" name:"FolderId"`
+	IotInstanceId string                               `position:"Body" name:"IotInstanceId"`
+	ApiPath       string                               `position:"Body" name:"ApiPath"`
+	TemplateSql   string                               `position:"Body" name:"TemplateSql"`
 	ResponseParam *[]CreateDataAPIServiceResponseParam `position:"Body" name:"ResponseParam"  type:"Repeated"`
 	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"`
+	OriginSql     string                               `position:"Body" name:"OriginSql"`
+	DisplayName   string                               `position:"Body" name:"DisplayName"`
+	ApiProduct    string                               `position:"Body" name:"ApiProduct"`
+	ApiRevision   string                               `position:"Body" name:"ApiRevision"`
+	Desc          string                               `position:"Body" name:"Desc"`
 }
 }
 
 
 // CreateDataAPIServiceRequestParam is a repeated param struct in CreateDataAPIServiceRequest
 // CreateDataAPIServiceRequestParam is a repeated param struct in CreateDataAPIServiceRequest
 type CreateDataAPIServiceRequestParam struct {
 type CreateDataAPIServiceRequestParam struct {
 	Name     string `name:"Name"`
 	Name     string `name:"Name"`
 	Type     string `name:"Type"`
 	Type     string `name:"Type"`
-	Required string `name:"Required"`
 	Desc     string `name:"Desc"`
 	Desc     string `name:"Desc"`
 	Example  string `name:"Example"`
 	Example  string `name:"Example"`
+	Required string `name:"Required"`
 }
 }
 
 
 // CreateDataAPIServiceResponseParam is a repeated param struct in CreateDataAPIServiceRequest
 // CreateDataAPIServiceResponseParam is a repeated param struct in CreateDataAPIServiceRequest
 type CreateDataAPIServiceResponseParam struct {
 type CreateDataAPIServiceResponseParam struct {
 	Name     string `name:"Name"`
 	Name     string `name:"Name"`
 	Type     string `name:"Type"`
 	Type     string `name:"Type"`
-	Required string `name:"Required"`
 	Desc     string `name:"Desc"`
 	Desc     string `name:"Desc"`
 	Example  string `name:"Example"`
 	Example  string `name:"Example"`
+	Required string `name:"Required"`
 }
 }
 
 
 // CreateDataAPIServiceResponse is the response struct for api CreateDataAPIService
 // CreateDataAPIServiceResponse is the response struct for api CreateDataAPIService
@@ -109,8 +112,8 @@ type CreateDataAPIServiceResponse struct {
 	*responses.BaseResponse
 	*responses.BaseResponse
 	RequestId    string `json:"RequestId" xml:"RequestId"`
 	RequestId    string `json:"RequestId" xml:"RequestId"`
 	Success      bool   `json:"Success" xml:"Success"`
 	Success      bool   `json:"Success" xml:"Success"`
-	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
 	Code         string `json:"Code" xml:"Code"`
 	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
 	Data         Data   `json:"Data" xml:"Data"`
 	Data         Data   `json:"Data" xml:"Data"`
 }
 }
 
 

+ 114 - 0
services/iot/create_edge_driver.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"
+)
+
+// CreateEdgeDriver invokes the iot.CreateEdgeDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/createedgedriver.html
+func (client *Client) CreateEdgeDriver(request *CreateEdgeDriverRequest) (response *CreateEdgeDriverResponse, err error) {
+	response = CreateCreateEdgeDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateEdgeDriverWithChan invokes the iot.CreateEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeDriverWithChan(request *CreateEdgeDriverRequest) (<-chan *CreateEdgeDriverResponse, <-chan error) {
+	responseChan := make(chan *CreateEdgeDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateEdgeDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateEdgeDriverWithCallback invokes the iot.CreateEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeDriverWithCallback(request *CreateEdgeDriverRequest, callback func(response *CreateEdgeDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateEdgeDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateEdgeDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateEdgeDriverRequest is the request struct for api CreateEdgeDriver
+type CreateEdgeDriverRequest struct {
+	*requests.RpcRequest
+	DriverProtocol string           `position:"Query" name:"DriverProtocol"`
+	DriverName     string           `position:"Query" name:"DriverName"`
+	IsBuiltIn      requests.Boolean `position:"Query" name:"IsBuiltIn"`
+	IotInstanceId  string           `position:"Query" name:"IotInstanceId"`
+	Runtime        string           `position:"Query" name:"Runtime"`
+	ApiProduct     string           `position:"Body" name:"ApiProduct"`
+	CpuArch        string           `position:"Query" name:"CpuArch"`
+	ApiRevision    string           `position:"Body" name:"ApiRevision"`
+}
+
+// CreateEdgeDriverResponse is the response struct for api CreateEdgeDriver
+type CreateEdgeDriverResponse 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"`
+	DriverId     string `json:"DriverId" xml:"DriverId"`
+}
+
+// CreateCreateEdgeDriverRequest creates a request to invoke CreateEdgeDriver API
+func CreateCreateEdgeDriverRequest() (request *CreateEdgeDriverRequest) {
+	request = &CreateEdgeDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "CreateEdgeDriver", "iot", "openAPI")
+	return
+}
+
+// CreateCreateEdgeDriverResponse creates a response to parse from CreateEdgeDriver response
+func CreateCreateEdgeDriverResponse() (response *CreateEdgeDriverResponse) {
+	response = &CreateEdgeDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/iot/create_edge_driver_version.go

@@ -0,0 +1,116 @@
+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"
+)
+
+// CreateEdgeDriverVersion invokes the iot.CreateEdgeDriverVersion API synchronously
+// api document: https://help.aliyun.com/api/iot/createedgedriverversion.html
+func (client *Client) CreateEdgeDriverVersion(request *CreateEdgeDriverVersionRequest) (response *CreateEdgeDriverVersionResponse, err error) {
+	response = CreateCreateEdgeDriverVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateEdgeDriverVersionWithChan invokes the iot.CreateEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeDriverVersionWithChan(request *CreateEdgeDriverVersionRequest) (<-chan *CreateEdgeDriverVersionResponse, <-chan error) {
+	responseChan := make(chan *CreateEdgeDriverVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateEdgeDriverVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateEdgeDriverVersionWithCallback invokes the iot.CreateEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/createedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateEdgeDriverVersionWithCallback(request *CreateEdgeDriverVersionRequest, callback func(response *CreateEdgeDriverVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateEdgeDriverVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateEdgeDriverVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateEdgeDriverVersionRequest is the request struct for api CreateEdgeDriverVersion
+type CreateEdgeDriverVersionRequest struct {
+	*requests.RpcRequest
+	ConfigCheckRule string `position:"Query" name:"ConfigCheckRule"`
+	EdgeVersion     string `position:"Query" name:"EdgeVersion"`
+	Description     string `position:"Query" name:"Description"`
+	DriverId        string `position:"Query" name:"DriverId"`
+	IotInstanceId   string `position:"Query" name:"IotInstanceId"`
+	ContainerConfig string `position:"Query" name:"ContainerConfig"`
+	DriverVersion   string `position:"Query" name:"DriverVersion"`
+	DriverConfig    string `position:"Query" name:"DriverConfig"`
+	SourceConfig    string `position:"Query" name:"SourceConfig"`
+	ApiProduct      string `position:"Body" name:"ApiProduct"`
+	ApiRevision     string `position:"Body" name:"ApiRevision"`
+}
+
+// CreateEdgeDriverVersionResponse is the response struct for api CreateEdgeDriverVersion
+type CreateEdgeDriverVersionResponse 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"`
+}
+
+// CreateCreateEdgeDriverVersionRequest creates a request to invoke CreateEdgeDriverVersion API
+func CreateCreateEdgeDriverVersionRequest() (request *CreateEdgeDriverVersionRequest) {
+	request = &CreateEdgeDriverVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "CreateEdgeDriverVersion", "iot", "openAPI")
+	return
+}
+
+// CreateCreateEdgeDriverVersionResponse creates a response to parse from CreateEdgeDriverVersion response
+func CreateCreateEdgeDriverVersionResponse() (response *CreateEdgeDriverVersionResponse) {
+	response = &CreateEdgeDriverVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/create_edge_instance.go

@@ -77,9 +77,11 @@ func (client *Client) CreateEdgeInstanceWithCallback(request *CreateEdgeInstance
 type CreateEdgeInstanceRequest struct {
 type CreateEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	Spec          requests.Integer `position:"Query" name:"Spec"`
 	Spec          requests.Integer `position:"Query" name:"Spec"`
-	Tags          string           `position:"Query" name:"Tags"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	Tags          string           `position:"Query" name:"Tags"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
 	Name          string           `position:"Query" name:"Name"`
 	Name          string           `position:"Query" name:"Name"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // CreateEdgeInstanceResponse is the response struct for api CreateEdgeInstance
 // CreateEdgeInstanceResponse is the response struct for api CreateEdgeInstance

+ 3 - 1
services/iot/create_edge_instance_deployment.go

@@ -77,8 +77,10 @@ func (client *Client) CreateEdgeInstanceDeploymentWithCallback(request *CreateEd
 type CreateEdgeInstanceDeploymentRequest struct {
 type CreateEdgeInstanceDeploymentRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	Type          string `position:"Query" name:"Type"`
 	Type          string `position:"Query" name:"Type"`
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // CreateEdgeInstanceDeploymentResponse is the response struct for api CreateEdgeInstanceDeployment
 // CreateEdgeInstanceDeploymentResponse is the response struct for api CreateEdgeInstanceDeployment

+ 3 - 0
services/iot/create_ota_firmware.go

@@ -81,11 +81,14 @@ type CreateOTAFirmwareRequest struct {
 	FirmwareUrl   string           `position:"Query" name:"FirmwareUrl"`
 	FirmwareUrl   string           `position:"Query" name:"FirmwareUrl"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	FirmwareDesc  string           `position:"Query" name:"FirmwareDesc"`
 	FirmwareDesc  string           `position:"Query" name:"FirmwareDesc"`
+	ModuleName    string           `position:"Query" name:"ModuleName"`
 	FirmwareSign  string           `position:"Query" name:"FirmwareSign"`
 	FirmwareSign  string           `position:"Query" name:"FirmwareSign"`
 	FirmwareSize  requests.Integer `position:"Query" name:"FirmwareSize"`
 	FirmwareSize  requests.Integer `position:"Query" name:"FirmwareSize"`
 	FirmwareName  string           `position:"Query" name:"FirmwareName"`
 	FirmwareName  string           `position:"Query" name:"FirmwareName"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
 	ProductKey    string           `position:"Query" name:"ProductKey"`
 	SrcVersion    string           `position:"Query" name:"SrcVersion"`
 	SrcVersion    string           `position:"Query" name:"SrcVersion"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 	DestVersion   string           `position:"Query" name:"DestVersion"`
 	DestVersion   string           `position:"Query" name:"DestVersion"`
 }
 }
 
 

+ 4 - 2
services/iot/create_ota_verify_job.go

@@ -76,10 +76,12 @@ func (client *Client) CreateOTAVerifyJobWithCallback(request *CreateOTAVerifyJob
 // CreateOTAVerifyJobRequest is the request struct for api CreateOTAVerifyJob
 // CreateOTAVerifyJobRequest is the request struct for api CreateOTAVerifyJob
 type CreateOTAVerifyJobRequest struct {
 type CreateOTAVerifyJobRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	FirmwareId       string           `position:"Query" name:"FirmwareId"`
-	ProductKey       string           `position:"Query" name:"ProductKey"`
 	TimeoutInMinutes requests.Integer `position:"Query" name:"TimeoutInMinutes"`
 	TimeoutInMinutes requests.Integer `position:"Query" name:"TimeoutInMinutes"`
 	IotInstanceId    string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId    string           `position:"Query" name:"IotInstanceId"`
+	FirmwareId       string           `position:"Query" name:"FirmwareId"`
+	ProductKey       string           `position:"Query" name:"ProductKey"`
+	ApiProduct       string           `position:"Body" name:"ApiProduct"`
+	ApiRevision      string           `position:"Body" name:"ApiRevision"`
 	TargetDeviceName *[]string        `position:"Query" name:"TargetDeviceName"  type:"Repeated"`
 	TargetDeviceName *[]string        `position:"Query" name:"TargetDeviceName"  type:"Repeated"`
 }
 }
 
 

+ 3 - 1
services/iot/create_topic_route_table.go

@@ -76,8 +76,10 @@ func (client *Client) CreateTopicRouteTableWithCallback(request *CreateTopicRout
 // CreateTopicRouteTableRequest is the request struct for api CreateTopicRouteTable
 // CreateTopicRouteTableRequest is the request struct for api CreateTopicRouteTable
 type CreateTopicRouteTableRequest struct {
 type CreateTopicRouteTableRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	DstTopic      *[]string `position:"Query" name:"DstTopic"  type:"Repeated"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string    `position:"Query" name:"IotInstanceId"`
+	DstTopic      *[]string `position:"Query" name:"DstTopic"  type:"Repeated"`
+	ApiProduct    string    `position:"Body" name:"ApiProduct"`
+	ApiRevision   string    `position:"Body" name:"ApiRevision"`
 	SrcTopic      string    `position:"Query" name:"SrcTopic"`
 	SrcTopic      string    `position:"Query" name:"SrcTopic"`
 }
 }
 
 

+ 109 - 0
services/iot/delete_edge_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"
+)
+
+// DeleteEdgeDriver invokes the iot.DeleteEdgeDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgedriver.html
+func (client *Client) DeleteEdgeDriver(request *DeleteEdgeDriverRequest) (response *DeleteEdgeDriverResponse, err error) {
+	response = CreateDeleteEdgeDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteEdgeDriverWithChan invokes the iot.DeleteEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteEdgeDriverWithChan(request *DeleteEdgeDriverRequest) (<-chan *DeleteEdgeDriverResponse, <-chan error) {
+	responseChan := make(chan *DeleteEdgeDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteEdgeDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteEdgeDriverWithCallback invokes the iot.DeleteEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteEdgeDriverWithCallback(request *DeleteEdgeDriverRequest, callback func(response *DeleteEdgeDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteEdgeDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteEdgeDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteEdgeDriverRequest is the request struct for api DeleteEdgeDriver
+type DeleteEdgeDriverRequest struct {
+	*requests.RpcRequest
+	DriverId      string `position:"Query" name:"DriverId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
+}
+
+// DeleteEdgeDriverResponse is the response struct for api DeleteEdgeDriver
+type DeleteEdgeDriverResponse 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"`
+}
+
+// CreateDeleteEdgeDriverRequest creates a request to invoke DeleteEdgeDriver API
+func CreateDeleteEdgeDriverRequest() (request *DeleteEdgeDriverRequest) {
+	request = &DeleteEdgeDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "DeleteEdgeDriver", "iot", "openAPI")
+	return
+}
+
+// CreateDeleteEdgeDriverResponse creates a response to parse from DeleteEdgeDriver response
+func CreateDeleteEdgeDriverResponse() (response *DeleteEdgeDriverResponse) {
+	response = &DeleteEdgeDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/iot/delete_edge_driver_version.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"
+)
+
+// DeleteEdgeDriverVersion invokes the iot.DeleteEdgeDriverVersion API synchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgedriverversion.html
+func (client *Client) DeleteEdgeDriverVersion(request *DeleteEdgeDriverVersionRequest) (response *DeleteEdgeDriverVersionResponse, err error) {
+	response = CreateDeleteEdgeDriverVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteEdgeDriverVersionWithChan invokes the iot.DeleteEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteEdgeDriverVersionWithChan(request *DeleteEdgeDriverVersionRequest) (<-chan *DeleteEdgeDriverVersionResponse, <-chan error) {
+	responseChan := make(chan *DeleteEdgeDriverVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteEdgeDriverVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteEdgeDriverVersionWithCallback invokes the iot.DeleteEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/deleteedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteEdgeDriverVersionWithCallback(request *DeleteEdgeDriverVersionRequest, callback func(response *DeleteEdgeDriverVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteEdgeDriverVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteEdgeDriverVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteEdgeDriverVersionRequest is the request struct for api DeleteEdgeDriverVersion
+type DeleteEdgeDriverVersionRequest struct {
+	*requests.RpcRequest
+	DriverId      string `position:"Query" name:"DriverId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	DriverVersion string `position:"Query" name:"DriverVersion"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
+}
+
+// DeleteEdgeDriverVersionResponse is the response struct for api DeleteEdgeDriverVersion
+type DeleteEdgeDriverVersionResponse 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"`
+}
+
+// CreateDeleteEdgeDriverVersionRequest creates a request to invoke DeleteEdgeDriverVersion API
+func CreateDeleteEdgeDriverVersionRequest() (request *DeleteEdgeDriverVersionRequest) {
+	request = &DeleteEdgeDriverVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "DeleteEdgeDriverVersion", "iot", "openAPI")
+	return
+}
+
+// CreateDeleteEdgeDriverVersionResponse creates a response to parse from DeleteEdgeDriverVersion response
+func CreateDeleteEdgeDriverVersionResponse() (response *DeleteEdgeDriverVersionResponse) {
+	response = &DeleteEdgeDriverVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/delete_edge_instance.go

@@ -76,8 +76,10 @@ func (client *Client) DeleteEdgeInstanceWithCallback(request *DeleteEdgeInstance
 // DeleteEdgeInstanceRequest is the request struct for api DeleteEdgeInstance
 // DeleteEdgeInstanceRequest is the request struct for api DeleteEdgeInstance
 type DeleteEdgeInstanceRequest struct {
 type DeleteEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // DeleteEdgeInstanceResponse is the response struct for api DeleteEdgeInstance
 // DeleteEdgeInstanceResponse is the response struct for api DeleteEdgeInstance

+ 3 - 1
services/iot/delete_ota_firmware.go

@@ -76,8 +76,10 @@ func (client *Client) DeleteOTAFirmwareWithCallback(request *DeleteOTAFirmwareRe
 // DeleteOTAFirmwareRequest is the request struct for api DeleteOTAFirmware
 // DeleteOTAFirmwareRequest is the request struct for api DeleteOTAFirmware
 type DeleteOTAFirmwareRequest struct {
 type DeleteOTAFirmwareRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	FirmwareId    string `position:"Query" name:"FirmwareId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	FirmwareId    string `position:"Query" name:"FirmwareId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // DeleteOTAFirmwareResponse is the response struct for api DeleteOTAFirmware
 // DeleteOTAFirmwareResponse is the response struct for api DeleteOTAFirmware

+ 2 - 0
services/iot/generate_ota_upload_url.go

@@ -77,6 +77,8 @@ func (client *Client) GenerateOTAUploadURLWithCallback(request *GenerateOTAUploa
 type GenerateOTAUploadURLRequest struct {
 type GenerateOTAUploadURLRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // GenerateOTAUploadURLResponse is the response struct for api GenerateOTAUploadURL
 // GenerateOTAUploadURLResponse is the response struct for api GenerateOTAUploadURL

+ 5 - 2
services/iot/get_data_api_service_detail.go

@@ -76,7 +76,10 @@ func (client *Client) GetDataAPIServiceDetailWithCallback(request *GetDataAPISer
 // GetDataAPIServiceDetailRequest is the request struct for api GetDataAPIServiceDetail
 // GetDataAPIServiceDetailRequest is the request struct for api GetDataAPIServiceDetail
 type GetDataAPIServiceDetailRequest struct {
 type GetDataAPIServiceDetailRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	ApiSrn string `position:"Query" name:"ApiSrn"`
+	IotInstanceId string `position:"Body" name:"IotInstanceId"`
+	ApiSrn        string `position:"Body" name:"ApiSrn"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // GetDataAPIServiceDetailResponse is the response struct for api GetDataAPIServiceDetail
 // GetDataAPIServiceDetailResponse is the response struct for api GetDataAPIServiceDetail
@@ -84,8 +87,8 @@ type GetDataAPIServiceDetailResponse struct {
 	*responses.BaseResponse
 	*responses.BaseResponse
 	RequestId    string `json:"RequestId" xml:"RequestId"`
 	RequestId    string `json:"RequestId" xml:"RequestId"`
 	Success      bool   `json:"Success" xml:"Success"`
 	Success      bool   `json:"Success" xml:"Success"`
-	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
 	Code         string `json:"Code" xml:"Code"`
 	Code         string `json:"Code" xml:"Code"`
+	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
 	Data         Data   `json:"Data" xml:"Data"`
 	Data         Data   `json:"Data" xml:"Data"`
 }
 }
 
 

+ 0 - 109
services/iot/get_device_list_by_iot_ids.go

@@ -1,109 +0,0 @@
-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
-}

+ 111 - 0
services/iot/get_edge_driver_version.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"
+)
+
+// GetEdgeDriverVersion invokes the iot.GetEdgeDriverVersion API synchronously
+// api document: https://help.aliyun.com/api/iot/getedgedriverversion.html
+func (client *Client) GetEdgeDriverVersion(request *GetEdgeDriverVersionRequest) (response *GetEdgeDriverVersionResponse, err error) {
+	response = CreateGetEdgeDriverVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetEdgeDriverVersionWithChan invokes the iot.GetEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/getedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetEdgeDriverVersionWithChan(request *GetEdgeDriverVersionRequest) (<-chan *GetEdgeDriverVersionResponse, <-chan error) {
+	responseChan := make(chan *GetEdgeDriverVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetEdgeDriverVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetEdgeDriverVersionWithCallback invokes the iot.GetEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/getedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetEdgeDriverVersionWithCallback(request *GetEdgeDriverVersionRequest, callback func(response *GetEdgeDriverVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetEdgeDriverVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.GetEdgeDriverVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetEdgeDriverVersionRequest is the request struct for api GetEdgeDriverVersion
+type GetEdgeDriverVersionRequest struct {
+	*requests.RpcRequest
+	DriverId      string `position:"Query" name:"DriverId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	DriverVersion string `position:"Query" name:"DriverVersion"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
+}
+
+// GetEdgeDriverVersionResponse is the response struct for api GetEdgeDriverVersion
+type GetEdgeDriverVersionResponse 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"`
+}
+
+// CreateGetEdgeDriverVersionRequest creates a request to invoke GetEdgeDriverVersion API
+func CreateGetEdgeDriverVersionRequest() (request *GetEdgeDriverVersionRequest) {
+	request = &GetEdgeDriverVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "GetEdgeDriverVersion", "iot", "openAPI")
+	return
+}
+
+// CreateGetEdgeDriverVersionResponse creates a response to parse from GetEdgeDriverVersion response
+func CreateGetEdgeDriverVersionResponse() (response *GetEdgeDriverVersionResponse) {
+	response = &GetEdgeDriverVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/get_edge_instance.go

@@ -76,8 +76,10 @@ func (client *Client) GetEdgeInstanceWithCallback(request *GetEdgeInstanceReques
 // GetEdgeInstanceRequest is the request struct for api GetEdgeInstance
 // GetEdgeInstanceRequest is the request struct for api GetEdgeInstance
 type GetEdgeInstanceRequest struct {
 type GetEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // GetEdgeInstanceResponse is the response struct for api GetEdgeInstance
 // GetEdgeInstanceResponse is the response struct for api GetEdgeInstance

+ 3 - 1
services/iot/get_edge_instance_deployment.go

@@ -76,9 +76,11 @@ func (client *Client) GetEdgeInstanceDeploymentWithCallback(request *GetEdgeInst
 // GetEdgeInstanceDeploymentRequest is the request struct for api GetEdgeInstanceDeployment
 // GetEdgeInstanceDeploymentRequest is the request struct for api GetEdgeInstanceDeployment
 type GetEdgeInstanceDeploymentRequest struct {
 type GetEdgeInstanceDeploymentRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
 	DeploymentId  string `position:"Query" name:"DeploymentId"`
 	DeploymentId  string `position:"Query" name:"DeploymentId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // GetEdgeInstanceDeploymentResponse is the response struct for api GetEdgeInstanceDeployment
 // GetEdgeInstanceDeploymentResponse is the response struct for api GetEdgeInstanceDeployment

+ 0 - 110
services/iot/get_product_key_list_by_name.go

@@ -1,110 +0,0 @@
-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
-}

+ 1 - 1
services/iot/gis_query_device_location.go

@@ -76,8 +76,8 @@ func (client *Client) GisQueryDeviceLocationWithCallback(request *GisQueryDevice
 // GisQueryDeviceLocationRequest is the request struct for api GisQueryDeviceLocation
 // GisQueryDeviceLocationRequest is the request struct for api GisQueryDeviceLocation
 type GisQueryDeviceLocationRequest struct {
 type GisQueryDeviceLocationRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	ThingList     string `position:"Query" name:"ThingList"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ThingList     string `position:"Query" name:"ThingList"`
 	ApiProduct    string `position:"Body" name:"ApiProduct"`
 	ApiProduct    string `position:"Body" name:"ApiProduct"`
 	ApiRevision   string `position:"Body" name:"ApiRevision"`
 	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }

+ 4 - 2
services/iot/list_ota_firmware.go

@@ -76,10 +76,12 @@ func (client *Client) ListOTAFirmwareWithCallback(request *ListOTAFirmwareReques
 // ListOTAFirmwareRequest is the request struct for api ListOTAFirmware
 // ListOTAFirmwareRequest is the request struct for api ListOTAFirmware
 type ListOTAFirmwareRequest struct {
 type ListOTAFirmwareRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
-	ProductKey    string           `position:"Query" name:"ProductKey"`
 	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"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 	DestVersion   string           `position:"Query" name:"DestVersion"`
 	DestVersion   string           `position:"Query" name:"DestVersion"`
 }
 }
 
 

+ 118 - 0
services/iot/list_ota_job_by_device.go

@@ -0,0 +1,118 @@
+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"
+)
+
+// ListOTAJobByDevice invokes the iot.ListOTAJobByDevice API synchronously
+// api document: https://help.aliyun.com/api/iot/listotajobbydevice.html
+func (client *Client) ListOTAJobByDevice(request *ListOTAJobByDeviceRequest) (response *ListOTAJobByDeviceResponse, err error) {
+	response = CreateListOTAJobByDeviceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListOTAJobByDeviceWithChan invokes the iot.ListOTAJobByDevice API asynchronously
+// api document: https://help.aliyun.com/api/iot/listotajobbydevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListOTAJobByDeviceWithChan(request *ListOTAJobByDeviceRequest) (<-chan *ListOTAJobByDeviceResponse, <-chan error) {
+	responseChan := make(chan *ListOTAJobByDeviceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListOTAJobByDevice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListOTAJobByDeviceWithCallback invokes the iot.ListOTAJobByDevice API asynchronously
+// api document: https://help.aliyun.com/api/iot/listotajobbydevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListOTAJobByDeviceWithCallback(request *ListOTAJobByDeviceRequest, callback func(response *ListOTAJobByDeviceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListOTAJobByDeviceResponse
+		var err error
+		defer close(result)
+		response, err = client.ListOTAJobByDevice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListOTAJobByDeviceRequest is the request struct for api ListOTAJobByDevice
+type ListOTAJobByDeviceRequest struct {
+	*requests.RpcRequest
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	FirmwareId    string           `position:"Query" name:"FirmwareId"`
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	ProductKey    string           `position:"Query" name:"ProductKey"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
+	DeviceName    string           `position:"Query" name:"DeviceName"`
+}
+
+// ListOTAJobByDeviceResponse is the response struct for api ListOTAJobByDevice
+type ListOTAJobByDeviceResponse 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"`
+	Total        int                      `json:"Total" xml:"Total"`
+	PageSize     int                      `json:"PageSize" xml:"PageSize"`
+	PageCount    int                      `json:"PageCount" xml:"PageCount"`
+	CurrentPage  int                      `json:"CurrentPage" xml:"CurrentPage"`
+	Data         DataInListOTAJobByDevice `json:"Data" xml:"Data"`
+}
+
+// CreateListOTAJobByDeviceRequest creates a request to invoke ListOTAJobByDevice API
+func CreateListOTAJobByDeviceRequest() (request *ListOTAJobByDeviceRequest) {
+	request = &ListOTAJobByDeviceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "ListOTAJobByDevice", "iot", "openAPI")
+	return
+}
+
+// CreateListOTAJobByDeviceResponse creates a response to parse from ListOTAJobByDevice response
+func CreateListOTAJobByDeviceResponse() (response *ListOTAJobByDeviceResponse) {
+	response = &ListOTAJobByDeviceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/iot/pub_broadcast.go

@@ -89,6 +89,7 @@ type PubBroadcastResponse struct {
 	Success      bool   `json:"Success" xml:"Success"`
 	Success      bool   `json:"Success" xml:"Success"`
 	Code         string `json:"Code" xml:"Code"`
 	Code         string `json:"Code" xml:"Code"`
 	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
 	ErrorMessage string `json:"ErrorMessage" xml:"ErrorMessage"`
+	MessageId    int64  `json:"MessageId" xml:"MessageId"`
 }
 }
 
 
 // CreatePubBroadcastRequest creates a request to invoke PubBroadcast API
 // CreatePubBroadcastRequest creates a request to invoke PubBroadcast API

+ 3 - 1
services/iot/query_cert_url_by_apply_id.go

@@ -76,8 +76,10 @@ func (client *Client) QueryCertUrlByApplyIdWithCallback(request *QueryCertUrlByA
 // QueryCertUrlByApplyIdRequest is the request struct for api QueryCertUrlByApplyId
 // QueryCertUrlByApplyIdRequest is the request struct for api QueryCertUrlByApplyId
 type QueryCertUrlByApplyIdRequest struct {
 type QueryCertUrlByApplyIdRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	ApplyId       requests.Integer `position:"Query" name:"ApplyId"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryCertUrlByApplyIdResponse is the response struct for api QueryCertUrlByApplyId
 // QueryCertUrlByApplyIdResponse is the response struct for api QueryCertUrlByApplyId

+ 4 - 2
services/iot/query_device_by_driver.go

@@ -76,11 +76,13 @@ func (client *Client) QueryDeviceByDriverWithCallback(request *QueryDeviceByDriv
 // QueryDeviceByDriverRequest is the request struct for api QueryDeviceByDriver
 // QueryDeviceByDriverRequest is the request struct for api QueryDeviceByDriver
 type QueryDeviceByDriverRequest struct {
 type QueryDeviceByDriverRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
-	InstanceId    string           `position:"Query" name:"InstanceId"`
 	DriverId      string           `position:"Query" name:"DriverId"`
 	DriverId      string           `position:"Query" name:"DriverId"`
 	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"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryDeviceByDriverResponse is the response struct for api QueryDeviceByDriver
 // QueryDeviceByDriverResponse is the response struct for api QueryDeviceByDriver

+ 3 - 1
services/iot/query_device_cert.go

@@ -76,8 +76,10 @@ func (client *Client) QueryDeviceCertWithCallback(request *QueryDeviceCertReques
 // QueryDeviceCertRequest is the request struct for api QueryDeviceCert
 // QueryDeviceCertRequest is the request struct for api QueryDeviceCert
 type QueryDeviceCertRequest struct {
 type QueryDeviceCertRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	ProductKey    string `position:"Query" name:"ProductKey"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 	DeviceName    string `position:"Query" name:"DeviceName"`
 }
 }
 
 

+ 113 - 0
services/iot/query_edge_driver.go

@@ -0,0 +1,113 @@
+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"
+)
+
+// QueryEdgeDriver invokes the iot.QueryEdgeDriver API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgedriver.html
+func (client *Client) QueryEdgeDriver(request *QueryEdgeDriverRequest) (response *QueryEdgeDriverResponse, err error) {
+	response = CreateQueryEdgeDriverResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeDriverWithChan invokes the iot.QueryEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeDriverWithChan(request *QueryEdgeDriverRequest) (<-chan *QueryEdgeDriverResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeDriverResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeDriver(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeDriverWithCallback invokes the iot.QueryEdgeDriver API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgedriver.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeDriverWithCallback(request *QueryEdgeDriverRequest, callback func(response *QueryEdgeDriverResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeDriverResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeDriver(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeDriverRequest is the request struct for api QueryEdgeDriver
+type QueryEdgeDriverRequest struct {
+	*requests.RpcRequest
+	DriverName    string           `position:"Query" name:"DriverName"`
+	Type          requests.Integer `position:"Query" name:"Type"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
+}
+
+// QueryEdgeDriverResponse is the response struct for api QueryEdgeDriver
+type QueryEdgeDriverResponse 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         DataInQueryEdgeDriver `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEdgeDriverRequest creates a request to invoke QueryEdgeDriver API
+func CreateQueryEdgeDriverRequest() (request *QueryEdgeDriverRequest) {
+	request = &QueryEdgeDriverRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeDriver", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeDriverResponse creates a response to parse from QueryEdgeDriver response
+func CreateQueryEdgeDriverResponse() (response *QueryEdgeDriverResponse) {
+	response = &QueryEdgeDriverResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/iot/query_edge_driver_version.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"
+)
+
+// QueryEdgeDriverVersion invokes the iot.QueryEdgeDriverVersion API synchronously
+// api document: https://help.aliyun.com/api/iot/queryedgedriverversion.html
+func (client *Client) QueryEdgeDriverVersion(request *QueryEdgeDriverVersionRequest) (response *QueryEdgeDriverVersionResponse, err error) {
+	response = CreateQueryEdgeDriverVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEdgeDriverVersionWithChan invokes the iot.QueryEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeDriverVersionWithChan(request *QueryEdgeDriverVersionRequest) (<-chan *QueryEdgeDriverVersionResponse, <-chan error) {
+	responseChan := make(chan *QueryEdgeDriverVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEdgeDriverVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEdgeDriverVersionWithCallback invokes the iot.QueryEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/queryedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEdgeDriverVersionWithCallback(request *QueryEdgeDriverVersionRequest, callback func(response *QueryEdgeDriverVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEdgeDriverVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEdgeDriverVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEdgeDriverVersionRequest is the request struct for api QueryEdgeDriverVersion
+type QueryEdgeDriverVersionRequest struct {
+	*requests.RpcRequest
+	VersionState  requests.Integer `position:"Query" name:"VersionState"`
+	DriverId      string           `position:"Query" name:"DriverId"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	DriverVersion string           `position:"Query" name:"DriverVersion"`
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
+}
+
+// QueryEdgeDriverVersionResponse is the response struct for api QueryEdgeDriverVersion
+type QueryEdgeDriverVersionResponse 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         DataInQueryEdgeDriverVersion `json:"Data" xml:"Data"`
+}
+
+// CreateQueryEdgeDriverVersionRequest creates a request to invoke QueryEdgeDriverVersion API
+func CreateQueryEdgeDriverVersionRequest() (request *QueryEdgeDriverVersionRequest) {
+	request = &QueryEdgeDriverVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "QueryEdgeDriverVersion", "iot", "openAPI")
+	return
+}
+
+// CreateQueryEdgeDriverVersionResponse creates a response to parse from QueryEdgeDriverVersion response
+func CreateQueryEdgeDriverVersionResponse() (response *QueryEdgeDriverVersionResponse) {
+	response = &QueryEdgeDriverVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/query_edge_instance.go

@@ -76,10 +76,12 @@ func (client *Client) QueryEdgeInstanceWithCallback(request *QueryEdgeInstanceRe
 // QueryEdgeInstanceRequest is the request struct for api QueryEdgeInstance
 // QueryEdgeInstanceRequest is the request struct for api QueryEdgeInstance
 type QueryEdgeInstanceRequest struct {
 type QueryEdgeInstanceRequest 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"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
 	Name          string           `position:"Query" name:"Name"`
 	Name          string           `position:"Query" name:"Name"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryEdgeInstanceResponse is the response struct for api QueryEdgeInstance
 // QueryEdgeInstanceResponse is the response struct for api QueryEdgeInstance

+ 4 - 2
services/iot/query_edge_instance_device.go

@@ -76,10 +76,12 @@ func (client *Client) QueryEdgeInstanceDeviceWithCallback(request *QueryEdgeInst
 // QueryEdgeInstanceDeviceRequest is the request struct for api QueryEdgeInstanceDevice
 // QueryEdgeInstanceDeviceRequest is the request struct for api QueryEdgeInstanceDevice
 type QueryEdgeInstanceDeviceRequest struct {
 type QueryEdgeInstanceDeviceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
-	InstanceId    string           `position:"Query" name:"InstanceId"`
 	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"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryEdgeInstanceDeviceResponse is the response struct for api QueryEdgeInstanceDevice
 // QueryEdgeInstanceDeviceResponse is the response struct for api QueryEdgeInstanceDevice

+ 4 - 2
services/iot/query_edge_instance_driver.go

@@ -76,10 +76,12 @@ func (client *Client) QueryEdgeInstanceDriverWithCallback(request *QueryEdgeInst
 // QueryEdgeInstanceDriverRequest is the request struct for api QueryEdgeInstanceDriver
 // QueryEdgeInstanceDriverRequest is the request struct for api QueryEdgeInstanceDriver
 type QueryEdgeInstanceDriverRequest struct {
 type QueryEdgeInstanceDriverRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
-	InstanceId    string           `position:"Query" name:"InstanceId"`
 	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"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryEdgeInstanceDriverResponse is the response struct for api QueryEdgeInstanceDriver
 // QueryEdgeInstanceDriverResponse is the response struct for api QueryEdgeInstanceDriver

+ 3 - 1
services/iot/query_edge_instance_gateway.go

@@ -76,8 +76,10 @@ func (client *Client) QueryEdgeInstanceGatewayWithCallback(request *QueryEdgeIns
 // QueryEdgeInstanceGatewayRequest is the request struct for api QueryEdgeInstanceGateway
 // QueryEdgeInstanceGatewayRequest is the request struct for api QueryEdgeInstanceGateway
 type QueryEdgeInstanceGatewayRequest struct {
 type QueryEdgeInstanceGatewayRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryEdgeInstanceGatewayResponse is the response struct for api QueryEdgeInstanceGateway
 // QueryEdgeInstanceGatewayResponse is the response struct for api QueryEdgeInstanceGateway

+ 5 - 3
services/iot/query_edge_instance_historic_deployment.go

@@ -76,12 +76,14 @@ func (client *Client) QueryEdgeInstanceHistoricDeploymentWithCallback(request *Q
 // QueryEdgeInstanceHistoricDeploymentRequest is the request struct for api QueryEdgeInstanceHistoricDeployment
 // QueryEdgeInstanceHistoricDeploymentRequest is the request struct for api QueryEdgeInstanceHistoricDeployment
 type QueryEdgeInstanceHistoricDeploymentRequest struct {
 type QueryEdgeInstanceHistoricDeploymentRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	EndTime       requests.Integer `position:"Query" name:"EndTime"`
-	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
 	StartTime     requests.Integer `position:"Query" name:"StartTime"`
 	StartTime     requests.Integer `position:"Query" name:"StartTime"`
-	InstanceId    string           `position:"Query" name:"InstanceId"`
 	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"`
+	CurrentPage   requests.Integer `position:"Query" name:"CurrentPage"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryEdgeInstanceHistoricDeploymentResponse is the response struct for api QueryEdgeInstanceHistoricDeployment
 // QueryEdgeInstanceHistoricDeploymentResponse is the response struct for api QueryEdgeInstanceHistoricDeployment

+ 3 - 1
services/iot/query_ota_firmware.go

@@ -76,8 +76,10 @@ func (client *Client) QueryOTAFirmwareWithCallback(request *QueryOTAFirmwareRequ
 // QueryOTAFirmwareRequest is the request struct for api QueryOTAFirmware
 // QueryOTAFirmwareRequest is the request struct for api QueryOTAFirmware
 type QueryOTAFirmwareRequest struct {
 type QueryOTAFirmwareRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	FirmwareId    string `position:"Query" name:"FirmwareId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	FirmwareId    string `position:"Query" name:"FirmwareId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryOTAFirmwareResponse is the response struct for api QueryOTAFirmware
 // QueryOTAFirmwareResponse is the response struct for api QueryOTAFirmware

+ 2 - 0
services/iot/query_ota_job.go

@@ -78,6 +78,8 @@ type QueryOTAJobRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	JobId         string `position:"Query" name:"JobId"`
 	JobId         string `position:"Query" name:"JobId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // QueryOTAJobResponse is the response struct for api QueryOTAJob
 // QueryOTAJobResponse is the response struct for api QueryOTAJob

+ 111 - 0
services/iot/reset_thing.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"
+)
+
+// ResetThing invokes the iot.ResetThing API synchronously
+// api document: https://help.aliyun.com/api/iot/resetthing.html
+func (client *Client) ResetThing(request *ResetThingRequest) (response *ResetThingResponse, err error) {
+	response = CreateResetThingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ResetThingWithChan invokes the iot.ResetThing API asynchronously
+// api document: https://help.aliyun.com/api/iot/resetthing.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetThingWithChan(request *ResetThingRequest) (<-chan *ResetThingResponse, <-chan error) {
+	responseChan := make(chan *ResetThingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ResetThing(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ResetThingWithCallback invokes the iot.ResetThing API asynchronously
+// api document: https://help.aliyun.com/api/iot/resetthing.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetThingWithCallback(request *ResetThingRequest, callback func(response *ResetThingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ResetThingResponse
+		var err error
+		defer close(result)
+		response, err = client.ResetThing(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ResetThingRequest is the request struct for api ResetThing
+type ResetThingRequest struct {
+	*requests.RpcRequest
+	IotId         string `position:"Query" name:"IotId"`
+	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	ProductKey    string `position:"Query" name:"ProductKey"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
+	DeviceName    string `position:"Query" name:"DeviceName"`
+}
+
+// ResetThingResponse is the response struct for api ResetThing
+type ResetThingResponse 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"`
+}
+
+// CreateResetThingRequest creates a request to invoke ResetThing API
+func CreateResetThingRequest() (request *ResetThingRequest) {
+	request = &ResetThingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "ResetThing", "iot", "openAPI")
+	return
+}
+
+// CreateResetThingResponse creates a response to parse from ResetThing response
+func CreateResetThingResponse() (response *ResetThingResponse) {
+	response = &ResetThingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/set_edge_instance_driver_configs.go

@@ -77,9 +77,11 @@ func (client *Client) SetEdgeInstanceDriverConfigsWithCallback(request *SetEdgeI
 type SetEdgeInstanceDriverConfigsRequest struct {
 type SetEdgeInstanceDriverConfigsRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	Configs       *[]SetEdgeInstanceDriverConfigsConfigs `position:"Query" name:"Configs"  type:"Repeated"`
 	Configs       *[]SetEdgeInstanceDriverConfigsConfigs `position:"Query" name:"Configs"  type:"Repeated"`
-	InstanceId    string                                 `position:"Query" name:"InstanceId"`
 	DriverId      string                                 `position:"Query" name:"DriverId"`
 	DriverId      string                                 `position:"Query" name:"DriverId"`
 	IotInstanceId string                                 `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string                                 `position:"Query" name:"IotInstanceId"`
+	InstanceId    string                                 `position:"Query" name:"InstanceId"`
+	ApiProduct    string                                 `position:"Body" name:"ApiProduct"`
+	ApiRevision   string                                 `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // SetEdgeInstanceDriverConfigsConfigs is a repeated param struct in SetEdgeInstanceDriverConfigsRequest
 // SetEdgeInstanceDriverConfigsConfigs is a repeated param struct in SetEdgeInstanceDriverConfigsRequest

+ 47 - 35
services/iot/struct_data.go

@@ -17,97 +17,109 @@ package iot
 
 
 // Data is a nested struct in iot response
 // Data is a nested struct in iot response
 type Data struct {
 type Data struct {
-	DataFormat             int                   `json:"DataFormat" xml:"DataFormat"`
-	BizEnable              bool                  `json:"BizEnable" xml:"BizEnable"`
 	LatestDeploymentStatus int                   `json:"LatestDeploymentStatus" xml:"LatestDeploymentStatus"`
 	LatestDeploymentStatus int                   `json:"LatestDeploymentStatus" xml:"LatestDeploymentStatus"`
 	RoleAttachTime         string                `json:"RoleAttachTime" xml:"RoleAttachTime"`
 	RoleAttachTime         string                `json:"RoleAttachTime" xml:"RoleAttachTime"`
 	RequestProtocol        string                `json:"RequestProtocol" xml:"RequestProtocol"`
 	RequestProtocol        string                `json:"RequestProtocol" xml:"RequestProtocol"`
-	GmtCompleted           string                `json:"GmtCompleted" xml:"GmtCompleted"`
-	UtcCreate              string                `json:"UtcCreate" xml:"UtcCreate"`
+	ContainerConfig        string                `json:"ContainerConfig" xml:"ContainerConfig"`
 	UtcStartTime           string                `json:"UtcStartTime" xml:"UtcStartTime"`
 	UtcStartTime           string                `json:"UtcStartTime" xml:"UtcStartTime"`
 	RoleName               string                `json:"RoleName" xml:"RoleName"`
 	RoleName               string                `json:"RoleName" xml:"RoleName"`
 	Spec                   int                   `json:"Spec" xml:"Spec"`
 	Spec                   int                   `json:"Spec" xml:"Spec"`
-	DeviceActive           int                   `json:"DeviceActive" xml:"DeviceActive"`
 	RequestMethod          string                `json:"RequestMethod" xml:"RequestMethod"`
 	RequestMethod          string                `json:"RequestMethod" xml:"RequestMethod"`
 	Nickname               string                `json:"Nickname" xml:"Nickname"`
 	Nickname               string                `json:"Nickname" xml:"Nickname"`
-	PageNo                 int                   `json:"PageNo" xml:"PageNo"`
 	UtcEndTime             string                `json:"UtcEndTime" xml:"UtcEndTime"`
 	UtcEndTime             string                `json:"UtcEndTime" xml:"UtcEndTime"`
 	DevEui                 string                `json:"DevEui" xml:"DevEui"`
 	DevEui                 string                `json:"DevEui" xml:"DevEui"`
 	GroupId                string                `json:"GroupId" xml:"GroupId"`
 	GroupId                string                `json:"GroupId" xml:"GroupId"`
 	JobType                string                `json:"JobType" xml:"JobType"`
 	JobType                string                `json:"JobType" xml:"JobType"`
 	LatestDeploymentType   string                `json:"LatestDeploymentType" xml:"LatestDeploymentType"`
 	LatestDeploymentType   string                `json:"LatestDeploymentType" xml:"LatestDeploymentType"`
-	RoleArn                string                `json:"RoleArn" xml:"RoleArn"`
 	Type                   string                `json:"Type" xml:"Type"`
 	Type                   string                `json:"Type" xml:"Type"`
 	FileId                 string                `json:"FileId" xml:"FileId"`
 	FileId                 string                `json:"FileId" xml:"FileId"`
 	ThingModelJson         string                `json:"ThingModelJson" xml:"ThingModelJson"`
 	ThingModelJson         string                `json:"ThingModelJson" xml:"ThingModelJson"`
 	LastUpdateTime         int64                 `json:"LastUpdateTime" xml:"LastUpdateTime"`
 	LastUpdateTime         int64                 `json:"LastUpdateTime" xml:"LastUpdateTime"`
-	Tags                   string                `json:"Tags" xml:"Tags"`
 	Versions               string                `json:"Versions" xml:"Versions"`
 	Versions               string                `json:"Versions" xml:"Versions"`
 	TslUri                 string                `json:"TslUri" xml:"TslUri"`
 	TslUri                 string                `json:"TslUri" xml:"TslUri"`
 	SelectionType          string                `json:"SelectionType" xml:"SelectionType"`
 	SelectionType          string                `json:"SelectionType" xml:"SelectionType"`
 	FirmwareId             string                `json:"FirmwareId" xml:"FirmwareId"`
 	FirmwareId             string                `json:"FirmwareId" xml:"FirmwareId"`
 	AliyunCommodityCode    string                `json:"AliyunCommodityCode" xml:"AliyunCommodityCode"`
 	AliyunCommodityCode    string                `json:"AliyunCommodityCode" xml:"AliyunCommodityCode"`
 	ApplyId                int64                 `json:"ApplyId" xml:"ApplyId"`
 	ApplyId                int64                 `json:"ApplyId" xml:"ApplyId"`
-	UtcCreatedOn           string                `json:"UtcCreatedOn" xml:"UtcCreatedOn"`
-	UtcModified            string                `json:"UtcModified" xml:"UtcModified"`
 	Host                   string                `json:"Host" xml:"Host"`
 	Host                   string                `json:"Host" xml:"Host"`
-	MessageId              string                `json:"MessageId" xml:"MessageId"`
 	DeviceName             string                `json:"DeviceName" xml:"DeviceName"`
 	DeviceName             string                `json:"DeviceName" xml:"DeviceName"`
 	PageCount              int64                 `json:"PageCount" xml:"PageCount"`
 	PageCount              int64                 `json:"PageCount" xml:"PageCount"`
 	Size                   string                `json:"Size" xml:"Size"`
 	Size                   string                `json:"Size" xml:"Size"`
-	Id2                    bool                  `json:"Id2" xml:"Id2"`
-	NodeType               int                   `json:"NodeType" xml:"NodeType"`
-	TslStr                 string                `json:"TslStr" xml:"TslStr"`
 	UtcScheduleTime        string                `json:"UtcScheduleTime" xml:"UtcScheduleTime"`
 	UtcScheduleTime        string                `json:"UtcScheduleTime" xml:"UtcScheduleTime"`
-	ApiSrn                 string                `json:"ApiSrn" xml:"ApiSrn"`
 	ProductName            string                `json:"ProductName" xml:"ProductName"`
 	ProductName            string                `json:"ProductName" xml:"ProductName"`
 	Name                   string                `json:"Name" xml:"Name"`
 	Name                   string                `json:"Name" xml:"Name"`
-	OSSAccessKeyId         string                `json:"OSSAccessKeyId" xml:"OSSAccessKeyId"`
-	GroupName              string                `json:"GroupName" xml:"GroupName"`
+	GmtCreateTimestamp     int64                 `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
 	DownloadUrl            string                `json:"DownloadUrl" xml:"DownloadUrl"`
 	DownloadUrl            string                `json:"DownloadUrl" xml:"DownloadUrl"`
 	RetryCount             int                   `json:"RetryCount" xml:"RetryCount"`
 	RetryCount             int                   `json:"RetryCount" xml:"RetryCount"`
-	CreateTime             int64                 `json:"CreateTime" xml:"CreateTime"`
 	TimeoutInMinutes       int                   `json:"TimeoutInMinutes" xml:"TimeoutInMinutes"`
 	TimeoutInMinutes       int                   `json:"TimeoutInMinutes" xml:"TimeoutInMinutes"`
-	DeploymentId           string                `json:"DeploymentId" xml:"DeploymentId"`
 	PageSize               int                   `json:"PageSize" xml:"PageSize"`
 	PageSize               int                   `json:"PageSize" xml:"PageSize"`
 	Key                    string                `json:"Key" xml:"Key"`
 	Key                    string                `json:"Key" xml:"Key"`
 	GmtCreate              string                `json:"GmtCreate" xml:"GmtCreate"`
 	GmtCreate              string                `json:"GmtCreate" xml:"GmtCreate"`
-	FirmwareUrl            string                `json:"FirmwareUrl" xml:"FirmwareUrl"`
 	DestVersion            string                `json:"DestVersion" xml:"DestVersion"`
 	DestVersion            string                `json:"DestVersion" xml:"DestVersion"`
 	InstanceId             string                `json:"InstanceId" xml:"InstanceId"`
 	InstanceId             string                `json:"InstanceId" xml:"InstanceId"`
 	MaximumPerMinute       int                   `json:"MaximumPerMinute" xml:"MaximumPerMinute"`
 	MaximumPerMinute       int                   `json:"MaximumPerMinute" xml:"MaximumPerMinute"`
-	JobDesc                string                `json:"JobDesc" xml:"JobDesc"`
 	JobStatus              string                `json:"JobStatus" xml:"JobStatus"`
 	JobStatus              string                `json:"JobStatus" xml:"JobStatus"`
-	Description            string                `json:"Description" xml:"Description"`
 	Policy                 string                `json:"Policy" xml:"Policy"`
 	Policy                 string                `json:"Policy" xml:"Policy"`
 	DateFormat             string                `json:"DateFormat" xml:"DateFormat"`
 	DateFormat             string                `json:"DateFormat" xml:"DateFormat"`
-	ApiPath                string                `json:"ApiPath" xml:"ApiPath"`
 	DeviceOnline           int                   `json:"DeviceOnline" xml:"DeviceOnline"`
 	DeviceOnline           int                   `json:"DeviceOnline" xml:"DeviceOnline"`
 	JobId                  string                `json:"JobId" xml:"JobId"`
 	JobId                  string                `json:"JobId" xml:"JobId"`
-	Status                 int                   `json:"Status" xml:"Status"`
-	Result                 string                `json:"Result" xml:"Result"`
 	RetryInterval          int                   `json:"RetryInterval" xml:"RetryInterval"`
 	RetryInterval          int                   `json:"RetryInterval" xml:"RetryInterval"`
-	DeviceSecret           string                `json:"DeviceSecret" xml:"DeviceSecret"`
-	ProductKey             string                `json:"ProductKey" xml:"ProductKey"`
-	GmtModified            string                `json:"GmtModified" xml:"GmtModified"`
-	DisplayName            string                `json:"DisplayName" xml:"DisplayName"`
+	EdgeVersion            string                `json:"EdgeVersion" xml:"EdgeVersion"`
 	JoinEui                string                `json:"JoinEui" xml:"JoinEui"`
 	JoinEui                string                `json:"JoinEui" xml:"JoinEui"`
+	DriverId               string                `json:"DriverId" xml:"DriverId"`
 	CurrentPage            int                   `json:"CurrentPage" xml:"CurrentPage"`
 	CurrentPage            int                   `json:"CurrentPage" xml:"CurrentPage"`
 	Signature              string                `json:"Signature" xml:"Signature"`
 	Signature              string                `json:"Signature" xml:"Signature"`
-	IotId                  string                `json:"IotId" xml:"IotId"`
-	GroupDesc              string                `json:"GroupDesc" xml:"GroupDesc"`
 	DeviceCount            int                   `json:"DeviceCount" xml:"DeviceCount"`
 	DeviceCount            int                   `json:"DeviceCount" xml:"DeviceCount"`
-	GrayPercent            string                `json:"GrayPercent" xml:"GrayPercent"`
 	ProtocolType           string                `json:"ProtocolType" xml:"ProtocolType"`
 	ProtocolType           string                `json:"ProtocolType" xml:"ProtocolType"`
 	AuthType               string                `json:"AuthType" xml:"AuthType"`
 	AuthType               string                `json:"AuthType" xml:"AuthType"`
 	Total                  int64                 `json:"Total" xml:"Total"`
 	Total                  int64                 `json:"Total" xml:"Total"`
 	TargetSelection        string                `json:"TargetSelection" xml:"TargetSelection"`
 	TargetSelection        string                `json:"TargetSelection" xml:"TargetSelection"`
+	DataFormat             int                   `json:"DataFormat" xml:"DataFormat"`
+	BizEnable              bool                  `json:"BizEnable" xml:"BizEnable"`
+	GmtCompleted           string                `json:"GmtCompleted" xml:"GmtCompleted"`
+	UtcCreate              string                `json:"UtcCreate" xml:"UtcCreate"`
+	DeviceActive           int                   `json:"DeviceActive" xml:"DeviceActive"`
+	DriverVersion          string                `json:"DriverVersion" xml:"DriverVersion"`
+	GmtCompletedTimestamp  int64                 `json:"GmtCompletedTimestamp" xml:"GmtCompletedTimestamp"`
+	PageNo                 int                   `json:"PageNo" xml:"PageNo"`
+	DriverConfig           string                `json:"DriverConfig" xml:"DriverConfig"`
+	RoleArn                string                `json:"RoleArn" xml:"RoleArn"`
+	Tags                   string                `json:"Tags" xml:"Tags"`
+	UtcCreatedOn           string                `json:"UtcCreatedOn" xml:"UtcCreatedOn"`
+	UtcModified            string                `json:"UtcModified" xml:"UtcModified"`
+	MessageId              string                `json:"MessageId" xml:"MessageId"`
+	SrcVersions            string                `json:"SrcVersions" xml:"SrcVersions"`
+	Id2                    bool                  `json:"Id2" xml:"Id2"`
+	NodeType               int                   `json:"NodeType" xml:"NodeType"`
+	ConfigCheckRule        string                `json:"ConfigCheckRule" xml:"ConfigCheckRule"`
+	TslStr                 string                `json:"TslStr" xml:"TslStr"`
+	ApiSrn                 string                `json:"ApiSrn" xml:"ApiSrn"`
+	OSSAccessKeyId         string                `json:"OSSAccessKeyId" xml:"OSSAccessKeyId"`
+	SourceConfig           string                `json:"SourceConfig" xml:"SourceConfig"`
+	GroupName              string                `json:"GroupName" xml:"GroupName"`
+	CreateTime             int64                 `json:"CreateTime" xml:"CreateTime"`
+	DeploymentId           string                `json:"DeploymentId" xml:"DeploymentId"`
+	FirmwareUrl            string                `json:"FirmwareUrl" xml:"FirmwareUrl"`
+	RoleAttachTimestamp    int64                 `json:"RoleAttachTimestamp" xml:"RoleAttachTimestamp"`
+	JobDesc                string                `json:"JobDesc" xml:"JobDesc"`
+	Description            string                `json:"Description" xml:"Description"`
+	GmtModifiedTimestamp   int64                 `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+	ApiPath                string                `json:"ApiPath" xml:"ApiPath"`
+	Status                 int                   `json:"Status" xml:"Status"`
+	Result                 string                `json:"Result" xml:"Result"`
+	DeviceSecret           string                `json:"DeviceSecret" xml:"DeviceSecret"`
+	ProductKey             string                `json:"ProductKey" xml:"ProductKey"`
+	GmtModified            string                `json:"GmtModified" xml:"GmtModified"`
+	DisplayName            string                `json:"DisplayName" xml:"DisplayName"`
+	VersionState           string                `json:"VersionState" xml:"VersionState"`
+	IotId                  string                `json:"IotId" xml:"IotId"`
+	GroupDesc              string                `json:"GroupDesc" xml:"GroupDesc"`
+	GrayPercent            string                `json:"GrayPercent" xml:"GrayPercent"`
+	ResultList             ResultList            `json:"ResultList" xml:"ResultList"`
 	FieldNameList          FieldNameList         `json:"FieldNameList" xml:"FieldNameList"`
 	FieldNameList          FieldNameList         `json:"FieldNameList" xml:"FieldNameList"`
-	SrcVersions            SrcVersions           `json:"SrcVersions" xml:"SrcVersions"`
 	InvalidDeviceNameList  InvalidDeviceNameList `json:"InvalidDeviceNameList" xml:"InvalidDeviceNameList"`
 	InvalidDeviceNameList  InvalidDeviceNameList `json:"InvalidDeviceNameList" xml:"InvalidDeviceNameList"`
-	ResultList             ResultList            `json:"ResultList" xml:"ResultList"`
 	SqlTemplateDTO         SqlTemplateDTO        `json:"SqlTemplateDTO" xml:"SqlTemplateDTO"`
 	SqlTemplateDTO         SqlTemplateDTO        `json:"SqlTemplateDTO" xml:"SqlTemplateDTO"`
-	ModelVersions          []ModelVersion        `json:"ModelVersions" xml:"ModelVersions"`
 	TaskList               []Task                `json:"TaskList" xml:"TaskList"`
 	TaskList               []Task                `json:"TaskList" xml:"TaskList"`
+	ModelVersions          []ModelVersion        `json:"ModelVersions" xml:"ModelVersions"`
 	List                   ListInGetThingTopo    `json:"List" xml:"List"`
 	List                   ListInGetThingTopo    `json:"List" xml:"List"`
 }
 }

+ 21 - 0
services/iot/struct_data_in_list_ota_job_by_device.go

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

+ 24 - 0
services/iot/struct_data_in_query_edge_driver.go

@@ -0,0 +1,24 @@
+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.
+
+// DataInQueryEdgeDriver is a nested struct in iot response
+type DataInQueryEdgeDriver struct {
+	Total       int      `json:"Total" xml:"Total"`
+	PageSize    int      `json:"PageSize" xml:"PageSize"`
+	CurrentPage int      `json:"CurrentPage" xml:"CurrentPage"`
+	DriverList  []Driver `json:"DriverList" xml:"DriverList"`
+}

+ 24 - 0
services/iot/struct_data_in_query_edge_driver_version.go

@@ -0,0 +1,24 @@
+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.
+
+// DataInQueryEdgeDriverVersion is a nested struct in iot response
+type DataInQueryEdgeDriverVersion struct {
+	Total             int             `json:"Total" xml:"Total"`
+	PageSize          int             `json:"PageSize" xml:"PageSize"`
+	CurrentPage       int             `json:"CurrentPage" xml:"CurrentPage"`
+	DriverVersionList []DriverVersion `json:"DriverVersionList" xml:"DriverVersionList"`
+}

+ 10 - 7
services/iot/struct_deployment.go

@@ -17,11 +17,14 @@ package iot
 
 
 // Deployment is a nested struct in iot response
 // Deployment is a nested struct in iot response
 type Deployment struct {
 type Deployment struct {
-	GmtCreate    string `json:"GmtCreate" xml:"GmtCreate"`
-	GmtModified  string `json:"GmtModified" xml:"GmtModified"`
-	GmtCompleted string `json:"GmtCompleted" xml:"GmtCompleted"`
-	DeploymentId string `json:"DeploymentId" xml:"DeploymentId"`
-	Description  string `json:"Description" xml:"Description"`
-	Status       int    `json:"Status" xml:"Status"`
-	Type         string `json:"Type" xml:"Type"`
+	GmtCreate             string `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified           string `json:"GmtModified" xml:"GmtModified"`
+	GmtCompleted          string `json:"GmtCompleted" xml:"GmtCompleted"`
+	DeploymentId          string `json:"DeploymentId" xml:"DeploymentId"`
+	Description           string `json:"Description" xml:"Description"`
+	Status                int    `json:"Status" xml:"Status"`
+	Type                  string `json:"Type" xml:"Type"`
+	GmtCreateTimestamp    int64  `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
+	GmtModifiedTimestamp  int64  `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+	GmtCompletedTimestamp int64  `json:"GmtCompletedTimestamp" xml:"GmtCompletedTimestamp"`
 }
 }

+ 13 - 5
services/iot/struct_driver.go

@@ -17,9 +17,17 @@ package iot
 
 
 // Driver is a nested struct in iot response
 // Driver is a nested struct in iot response
 type Driver struct {
 type Driver struct {
-	DriverId      string `json:"DriverId" xml:"DriverId"`
-	DriverVersion string `json:"DriverVersion" xml:"DriverVersion"`
-	OrderId       string `json:"OrderId" xml:"OrderId"`
-	GmtCreate     string `json:"GmtCreate" xml:"GmtCreate"`
-	GmtModified   string `json:"GmtModified" xml:"GmtModified"`
+	DriverProtocol       string `json:"DriverProtocol" xml:"DriverProtocol"`
+	IsBuiltIn            bool   `json:"IsBuiltIn" xml:"IsBuiltIn"`
+	CpuArch              string `json:"CpuArch" xml:"CpuArch"`
+	GmtCreateTimestamp   int64  `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
+	GmtModified          string `json:"GmtModified" xml:"GmtModified"`
+	Runtime              string `json:"Runtime" xml:"Runtime"`
+	DriverId             string `json:"DriverId" xml:"DriverId"`
+	OrderId              string `json:"OrderId" xml:"OrderId"`
+	DriverVersion        string `json:"DriverVersion" xml:"DriverVersion"`
+	GmtCreate            string `json:"GmtCreate" xml:"GmtCreate"`
+	DriverName           string `json:"DriverName" xml:"DriverName"`
+	GmtModifiedTimestamp int64  `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+	Type                 int    `json:"Type" xml:"Type"`
 }
 }

+ 3 - 3
services/iot/struct_src_versions.go → services/iot/struct_driver_list_in_batch_get_edge_driver.go

@@ -15,7 +15,7 @@ package iot
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Code generated by Alibaba Cloud SDK Code Generator.
 // 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.
 
 
-// SrcVersions is a nested struct in iot response
-type SrcVersions struct {
-	SrcVersion []string `json:"SrcVersion" xml:"SrcVersion"`
+// DriverListInBatchGetEdgeDriver is a nested struct in iot response
+type DriverListInBatchGetEdgeDriver struct {
+	Driver []Driver `json:"Driver" xml:"Driver"`
 }
 }

+ 2 - 2
services/iot/struct_driver_list.go → services/iot/struct_driver_list_in_query_edge_driver.go

@@ -15,7 +15,7 @@ package iot
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Code generated by Alibaba Cloud SDK Code Generator.
 // 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.
 
 
-// DriverList is a nested struct in iot response
-type DriverList struct {
+// DriverListInQueryEdgeDriver is a nested struct in iot response
+type DriverListInQueryEdgeDriver struct {
 	Driver []Driver `json:"Driver" xml:"Driver"`
 	Driver []Driver `json:"Driver" xml:"Driver"`
 }
 }

+ 21 - 0
services/iot/struct_driver_list_in_query_edge_instance_driver.go

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

+ 31 - 0
services/iot/struct_driver_version.go

@@ -0,0 +1,31 @@
+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.
+
+// DriverVersion is a nested struct in iot response
+type DriverVersion struct {
+	DriverId             string `json:"DriverId" xml:"DriverId"`
+	DriverVersion        string `json:"DriverVersion" xml:"DriverVersion"`
+	VersionState         string `json:"VersionState" xml:"VersionState"`
+	EdgeVersion          string `json:"EdgeVersion" xml:"EdgeVersion"`
+	Description          string `json:"Description" xml:"Description"`
+	SourceConfig         string `json:"SourceConfig" xml:"SourceConfig"`
+	DriverConfig         string `json:"DriverConfig" xml:"DriverConfig"`
+	ContainerConfig      string `json:"ContainerConfig" xml:"ContainerConfig"`
+	ConfigCheckRule      string `json:"ConfigCheckRule" xml:"ConfigCheckRule"`
+	GmtCreateTimestamp   int64  `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
+	GmtModifiedTimestamp int64  `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+}

+ 21 - 0
services/iot/struct_driver_version_list.go

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

+ 1 - 1
services/iot/struct_failure_topics_in_create_topic_route_table.go

@@ -17,5 +17,5 @@ package iot
 
 
 // FailureTopicsInCreateTopicRouteTable is a nested struct in iot response
 // FailureTopicsInCreateTopicRouteTable is a nested struct in iot response
 type FailureTopicsInCreateTopicRouteTable struct {
 type FailureTopicsInCreateTopicRouteTable struct {
-	Topic []string `json:"Topic" xml:"Topic"`
+	Topic []map[string]interface{} `json:"Topic" xml:"Topic"`
 }
 }

+ 1 - 0
services/iot/struct_firmware_info.go

@@ -27,6 +27,7 @@ type FirmwareInfo struct {
 	UtcModified    string `json:"UtcModified" xml:"UtcModified"`
 	UtcModified    string `json:"UtcModified" xml:"UtcModified"`
 	UtcCreate      string `json:"UtcCreate" xml:"UtcCreate"`
 	UtcCreate      string `json:"UtcCreate" xml:"UtcCreate"`
 	FirmwareSize   int    `json:"FirmwareSize" xml:"FirmwareSize"`
 	FirmwareSize   int    `json:"FirmwareSize" xml:"FirmwareSize"`
+	ModuleName     string `json:"ModuleName" xml:"ModuleName"`
 	FirmwareUrl    string `json:"FirmwareUrl" xml:"FirmwareUrl"`
 	FirmwareUrl    string `json:"FirmwareUrl" xml:"FirmwareUrl"`
 	DestVersion    string `json:"DestVersion" xml:"DestVersion"`
 	DestVersion    string `json:"DestVersion" xml:"DestVersion"`
 	SignMethod     string `json:"SignMethod" xml:"SignMethod"`
 	SignMethod     string `json:"SignMethod" xml:"SignMethod"`

+ 3 - 0
services/iot/struct_instance.go

@@ -30,4 +30,7 @@ type Instance struct {
 	BizEnable              bool   `json:"BizEnable" xml:"BizEnable"`
 	BizEnable              bool   `json:"BizEnable" xml:"BizEnable"`
 	LatestDeploymentStatus int    `json:"LatestDeploymentStatus" xml:"LatestDeploymentStatus"`
 	LatestDeploymentStatus int    `json:"LatestDeploymentStatus" xml:"LatestDeploymentStatus"`
 	LatestDeploymentType   string `json:"LatestDeploymentType" xml:"LatestDeploymentType"`
 	LatestDeploymentType   string `json:"LatestDeploymentType" xml:"LatestDeploymentType"`
+	GmtCreateTimestamp     int64  `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
+	GmtModifiedTimestamp   int64  `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+	RoleAttachTimestamp    int64  `json:"RoleAttachTimestamp" xml:"RoleAttachTimestamp"`
 }
 }

+ 14 - 11
services/iot/struct_resource_snapshot.go

@@ -17,15 +17,18 @@ package iot
 
 
 // ResourceSnapshot is a nested struct in iot response
 // ResourceSnapshot is a nested struct in iot response
 type ResourceSnapshot struct {
 type ResourceSnapshot struct {
-	GmtCreate    string `json:"GmtCreate" xml:"GmtCreate"`
-	GmtModified  string `json:"GmtModified" xml:"GmtModified"`
-	GmtCompleted string `json:"GmtCompleted" xml:"GmtCompleted"`
-	SnapshotId   string `json:"SnapshotId" xml:"SnapshotId"`
-	ResourceType string `json:"ResourceType" xml:"ResourceType"`
-	ResourceId   string `json:"ResourceId" xml:"ResourceId"`
-	ResourceName string `json:"ResourceName" xml:"ResourceName"`
-	OperateType  int    `json:"OperateType" xml:"OperateType"`
-	Stage        int    `json:"Stage" xml:"Stage"`
-	Status       int    `json:"Status" xml:"Status"`
-	Log          string `json:"Log" xml:"Log"`
+	GmtCreate             string `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified           string `json:"GmtModified" xml:"GmtModified"`
+	GmtCompleted          string `json:"GmtCompleted" xml:"GmtCompleted"`
+	SnapshotId            string `json:"SnapshotId" xml:"SnapshotId"`
+	ResourceType          string `json:"ResourceType" xml:"ResourceType"`
+	ResourceId            string `json:"ResourceId" xml:"ResourceId"`
+	ResourceName          string `json:"ResourceName" xml:"ResourceName"`
+	OperateType           int    `json:"OperateType" xml:"OperateType"`
+	Stage                 int    `json:"Stage" xml:"Stage"`
+	Status                int    `json:"Status" xml:"Status"`
+	Log                   string `json:"Log" xml:"Log"`
+	GmtCreateTimestamp    int64  `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
+	GmtModifiedTimestamp  int64  `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+	GmtCompletedTimestamp int64  `json:"GmtCompletedTimestamp" xml:"GmtCompletedTimestamp"`
 }
 }

+ 1 - 0
services/iot/struct_simple_firmware_info.go

@@ -32,4 +32,5 @@ type SimpleFirmwareInfo struct {
 	SignMethod   string `json:"SignMethod" xml:"SignMethod"`
 	SignMethod   string `json:"SignMethod" xml:"SignMethod"`
 	ProductName  string `json:"ProductName" xml:"ProductName"`
 	ProductName  string `json:"ProductName" xml:"ProductName"`
 	Type         int    `json:"Type" xml:"Type"`
 	Type         int    `json:"Type" xml:"Type"`
+	ModuleName   string `json:"ModuleName" xml:"ModuleName"`
 }
 }

+ 4 - 4
services/iot/struct_simple_ota_job_info.go

@@ -18,14 +18,14 @@ package iot
 // SimpleOTAJobInfo is a nested struct in iot response
 // SimpleOTAJobInfo is a nested struct in iot response
 type SimpleOTAJobInfo struct {
 type SimpleOTAJobInfo struct {
 	JobId           string `json:"JobId" xml:"JobId"`
 	JobId           string `json:"JobId" xml:"JobId"`
-	UtcCreate       string `json:"UtcCreate" xml:"UtcCreate"`
-	UtcModified     string `json:"UtcModified" xml:"UtcModified"`
+	UtcEndTime      string `json:"UtcEndTime" xml:"UtcEndTime"`
+	SelectionType   string `json:"SelectionType" xml:"SelectionType"`
 	ProductKey      string `json:"ProductKey" xml:"ProductKey"`
 	ProductKey      string `json:"ProductKey" xml:"ProductKey"`
 	FirmwareId      string `json:"FirmwareId" xml:"FirmwareId"`
 	FirmwareId      string `json:"FirmwareId" xml:"FirmwareId"`
+	UtcModified     string `json:"UtcModified" xml:"UtcModified"`
+	UtcCreate       string `json:"UtcCreate" xml:"UtcCreate"`
 	UtcStartTime    string `json:"UtcStartTime" xml:"UtcStartTime"`
 	UtcStartTime    string `json:"UtcStartTime" xml:"UtcStartTime"`
-	UtcEndTime      string `json:"UtcEndTime" xml:"UtcEndTime"`
 	JobStatus       string `json:"JobStatus" xml:"JobStatus"`
 	JobStatus       string `json:"JobStatus" xml:"JobStatus"`
 	JobType         string `json:"JobType" xml:"JobType"`
 	JobType         string `json:"JobType" xml:"JobType"`
 	TargetSelection string `json:"TargetSelection" xml:"TargetSelection"`
 	TargetSelection string `json:"TargetSelection" xml:"TargetSelection"`
-	SelectionType   string `json:"SelectionType" xml:"SelectionType"`
 }
 }

+ 11 - 8
services/iot/struct_task.go

@@ -17,12 +17,15 @@ package iot
 
 
 // Task is a nested struct in iot response
 // Task is a nested struct in iot response
 type Task struct {
 type Task struct {
-	GmtCreate            string             `json:"GmtCreate" xml:"GmtCreate"`
-	GmtModified          string             `json:"GmtModified" xml:"GmtModified"`
-	GmtCompleted         string             `json:"GmtCompleted" xml:"GmtCompleted"`
-	GatewayId            string             `json:"GatewayId" xml:"GatewayId"`
-	TaskId               string             `json:"TaskId" xml:"TaskId"`
-	Stage                int                `json:"Stage" xml:"Stage"`
-	Status               int                `json:"Status" xml:"Status"`
-	ResourceSnapshotList []ResourceSnapshot `json:"ResourceSnapshotList" xml:"ResourceSnapshotList"`
+	GmtCreate             string             `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified           string             `json:"GmtModified" xml:"GmtModified"`
+	GmtCompleted          string             `json:"GmtCompleted" xml:"GmtCompleted"`
+	GatewayId             string             `json:"GatewayId" xml:"GatewayId"`
+	TaskId                string             `json:"TaskId" xml:"TaskId"`
+	Stage                 int                `json:"Stage" xml:"Stage"`
+	Status                int                `json:"Status" xml:"Status"`
+	GmtCreateTimestamp    int64              `json:"GmtCreateTimestamp" xml:"GmtCreateTimestamp"`
+	GmtModifiedTimestamp  int64              `json:"GmtModifiedTimestamp" xml:"GmtModifiedTimestamp"`
+	GmtCompletedTimestamp int64              `json:"GmtCompletedTimestamp" xml:"GmtCompletedTimestamp"`
+	ResourceSnapshotList  []ResourceSnapshot `json:"ResourceSnapshotList" xml:"ResourceSnapshotList"`
 }
 }

+ 3 - 1
services/iot/unbind_driver_from_edge_instance.go

@@ -76,9 +76,11 @@ func (client *Client) UnbindDriverFromEdgeInstanceWithCallback(request *UnbindDr
 // UnbindDriverFromEdgeInstanceRequest is the request struct for api UnbindDriverFromEdgeInstance
 // UnbindDriverFromEdgeInstanceRequest is the request struct for api UnbindDriverFromEdgeInstance
 type UnbindDriverFromEdgeInstanceRequest struct {
 type UnbindDriverFromEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
-	InstanceId    string `position:"Query" name:"InstanceId"`
 	DriverId      string `position:"Query" name:"DriverId"`
 	DriverId      string `position:"Query" name:"DriverId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
 	IotInstanceId string `position:"Query" name:"IotInstanceId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ApiProduct    string `position:"Body" name:"ApiProduct"`
+	ApiRevision   string `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // UnbindDriverFromEdgeInstanceResponse is the response struct for api UnbindDriverFromEdgeInstance
 // UnbindDriverFromEdgeInstanceResponse is the response struct for api UnbindDriverFromEdgeInstance

+ 116 - 0
services/iot/update_edge_driver_version.go

@@ -0,0 +1,116 @@
+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"
+)
+
+// UpdateEdgeDriverVersion invokes the iot.UpdateEdgeDriverVersion API synchronously
+// api document: https://help.aliyun.com/api/iot/updateedgedriverversion.html
+func (client *Client) UpdateEdgeDriverVersion(request *UpdateEdgeDriverVersionRequest) (response *UpdateEdgeDriverVersionResponse, err error) {
+	response = CreateUpdateEdgeDriverVersionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateEdgeDriverVersionWithChan invokes the iot.UpdateEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/updateedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateEdgeDriverVersionWithChan(request *UpdateEdgeDriverVersionRequest) (<-chan *UpdateEdgeDriverVersionResponse, <-chan error) {
+	responseChan := make(chan *UpdateEdgeDriverVersionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateEdgeDriverVersion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateEdgeDriverVersionWithCallback invokes the iot.UpdateEdgeDriverVersion API asynchronously
+// api document: https://help.aliyun.com/api/iot/updateedgedriverversion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateEdgeDriverVersionWithCallback(request *UpdateEdgeDriverVersionRequest, callback func(response *UpdateEdgeDriverVersionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateEdgeDriverVersionResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateEdgeDriverVersion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateEdgeDriverVersionRequest is the request struct for api UpdateEdgeDriverVersion
+type UpdateEdgeDriverVersionRequest struct {
+	*requests.RpcRequest
+	ConfigCheckRule string `position:"Query" name:"ConfigCheckRule"`
+	EdgeVersion     string `position:"Query" name:"EdgeVersion"`
+	Description     string `position:"Query" name:"Description"`
+	DriverId        string `position:"Query" name:"DriverId"`
+	IotInstanceId   string `position:"Query" name:"IotInstanceId"`
+	ContainerConfig string `position:"Query" name:"ContainerConfig"`
+	DriverVersion   string `position:"Query" name:"DriverVersion"`
+	DriverConfig    string `position:"Query" name:"DriverConfig"`
+	SourceConfig    string `position:"Query" name:"SourceConfig"`
+	ApiProduct      string `position:"Body" name:"ApiProduct"`
+	ApiRevision     string `position:"Body" name:"ApiRevision"`
+}
+
+// UpdateEdgeDriverVersionResponse is the response struct for api UpdateEdgeDriverVersion
+type UpdateEdgeDriverVersionResponse 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"`
+}
+
+// CreateUpdateEdgeDriverVersionRequest creates a request to invoke UpdateEdgeDriverVersion API
+func CreateUpdateEdgeDriverVersionRequest() (request *UpdateEdgeDriverVersionRequest) {
+	request = &UpdateEdgeDriverVersionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Iot", "2018-01-20", "UpdateEdgeDriverVersion", "iot", "openAPI")
+	return
+}
+
+// CreateUpdateEdgeDriverVersionResponse creates a response to parse from UpdateEdgeDriverVersion response
+func CreateUpdateEdgeDriverVersionResponse() (response *UpdateEdgeDriverVersionResponse) {
+	response = &UpdateEdgeDriverVersionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 1
services/iot/update_edge_instance.go

@@ -78,10 +78,12 @@ type UpdateEdgeInstanceRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	BizEnable     requests.Boolean `position:"Query" name:"BizEnable"`
 	BizEnable     requests.Boolean `position:"Query" name:"BizEnable"`
 	Spec          requests.Integer `position:"Query" name:"Spec"`
 	Spec          requests.Integer `position:"Query" name:"Spec"`
+	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
 	Tags          string           `position:"Query" name:"Tags"`
 	Tags          string           `position:"Query" name:"Tags"`
 	InstanceId    string           `position:"Query" name:"InstanceId"`
 	InstanceId    string           `position:"Query" name:"InstanceId"`
-	IotInstanceId string           `position:"Query" name:"IotInstanceId"`
+	ApiProduct    string           `position:"Body" name:"ApiProduct"`
 	Name          string           `position:"Query" name:"Name"`
 	Name          string           `position:"Query" name:"Name"`
+	ApiRevision   string           `position:"Body" name:"ApiRevision"`
 }
 }
 
 
 // UpdateEdgeInstanceResponse is the response struct for api UpdateEdgeInstance
 // UpdateEdgeInstanceResponse is the response struct for api UpdateEdgeInstance