sdk-team 5 лет назад
Родитель
Сommit
e14cc7c0eb
97 измененных файлов с 5566 добавлено и 50 удалено
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 60 0
      iot/CMakeLists.txt
  4. 120 0
      iot/include/alibabacloud/iot/IotClient.h
  5. 6 0
      iot/include/alibabacloud/iot/model/BatchGetDeviceStateRequest.h
  6. 69 0
      iot/include/alibabacloud/iot/model/CancelReleaseProductRequest.h
  7. 55 0
      iot/include/alibabacloud/iot/model/CancelReleaseProductResult.h
  8. 81 0
      iot/include/alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingRequest.h
  9. 57 0
      iot/include/alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingResult.h
  10. 3 0
      iot/include/alibabacloud/iot/model/CreateJobRequest.h
  11. 6 0
      iot/include/alibabacloud/iot/model/DeleteDevicePropRequest.h
  12. 63 0
      iot/include/alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingRequest.h
  13. 55 0
      iot/include/alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingResult.h
  14. 57 0
      iot/include/alibabacloud/iot/model/DeleteSpeechRequest.h
  15. 55 0
      iot/include/alibabacloud/iot/model/DeleteSpeechResult.h
  16. 63 0
      iot/include/alibabacloud/iot/model/DisableDeviceTunnelRequest.h
  17. 55 0
      iot/include/alibabacloud/iot/model/DisableDeviceTunnelResult.h
  18. 63 0
      iot/include/alibabacloud/iot/model/DisableDeviceTunnelShareRequest.h
  19. 55 0
      iot/include/alibabacloud/iot/model/DisableDeviceTunnelShareResult.h
  20. 63 0
      iot/include/alibabacloud/iot/model/EnableDeviceTunnelRequest.h
  21. 55 0
      iot/include/alibabacloud/iot/model/EnableDeviceTunnelResult.h
  22. 63 0
      iot/include/alibabacloud/iot/model/EnableDeviceTunnelShareRequest.h
  23. 55 0
      iot/include/alibabacloud/iot/model/EnableDeviceTunnelShareResult.h
  24. 1 0
      iot/include/alibabacloud/iot/model/GetDeviceStatusResult.h
  25. 63 0
      iot/include/alibabacloud/iot/model/GetDeviceTunnelShareStatusRequest.h
  26. 64 0
      iot/include/alibabacloud/iot/model/GetDeviceTunnelShareStatusResult.h
  27. 63 0
      iot/include/alibabacloud/iot/model/GetDeviceTunnelStatusRequest.h
  28. 57 0
      iot/include/alibabacloud/iot/model/GetDeviceTunnelStatusResult.h
  29. 63 0
      iot/include/alibabacloud/iot/model/GetEdgeInstanceMessageRoutingRequest.h
  30. 83 0
      iot/include/alibabacloud/iot/model/GetEdgeInstanceMessageRoutingResult.h
  31. 0 3
      iot/include/alibabacloud/iot/model/GetThingModelTslRequest.h
  32. 6 0
      iot/include/alibabacloud/iot/model/GetThingTopoRequest.h
  33. 3 0
      iot/include/alibabacloud/iot/model/ListDeviceDistributeJobRequest.h
  34. 4 0
      iot/include/alibabacloud/iot/model/ListDeviceDistributeJobResult.h
  35. 1 0
      iot/include/alibabacloud/iot/model/ListJobResult.h
  36. 1 0
      iot/include/alibabacloud/iot/model/ListOTATaskByJobResult.h
  37. 0 3
      iot/include/alibabacloud/iot/model/ListThingModelVersionRequest.h
  38. 0 3
      iot/include/alibabacloud/iot/model/ListThingTemplatesRequest.h
  39. 1 0
      iot/include/alibabacloud/iot/model/PrintByTemplateResult.h
  40. 6 0
      iot/include/alibabacloud/iot/model/QueryDeviceBySQLRequest.h
  41. 66 0
      iot/include/alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingRequest.h
  42. 91 0
      iot/include/alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingResult.h
  43. 5 4
      iot/include/alibabacloud/iot/model/QueryJobResult.h
  44. 63 0
      iot/include/alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordRequest.h
  45. 57 0
      iot/include/alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordResult.h
  46. 78 0
      iot/include/alibabacloud/iot/model/ReleaseProductRequest.h
  47. 55 0
      iot/include/alibabacloud/iot/model/ReleaseProductResult.h
  48. 4 0
      iot/include/alibabacloud/iot/model/SyncSpeechByCombinationResult.h
  49. 84 0
      iot/include/alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingRequest.h
  50. 55 0
      iot/include/alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingResult.h
  51. 543 3
      iot/src/IotClient.cc
  52. 22 0
      iot/src/model/BatchGetDeviceStateRequest.cc
  53. 117 0
      iot/src/model/CancelReleaseProductRequest.cc
  54. 65 0
      iot/src/model/CancelReleaseProductResult.cc
  55. 161 0
      iot/src/model/CreateEdgeInstanceMessageRoutingRequest.cc
  56. 72 0
      iot/src/model/CreateEdgeInstanceMessageRoutingResult.cc
  57. 11 0
      iot/src/model/CreateJobRequest.cc
  58. 22 0
      iot/src/model/DeleteDevicePropRequest.cc
  59. 95 0
      iot/src/model/DeleteEdgeInstanceMessageRoutingRequest.cc
  60. 65 0
      iot/src/model/DeleteEdgeInstanceMessageRoutingResult.cc
  61. 75 0
      iot/src/model/DeleteSpeechRequest.cc
  62. 65 0
      iot/src/model/DeleteSpeechResult.cc
  63. 95 0
      iot/src/model/DisableDeviceTunnelRequest.cc
  64. 65 0
      iot/src/model/DisableDeviceTunnelResult.cc
  65. 95 0
      iot/src/model/DisableDeviceTunnelShareRequest.cc
  66. 65 0
      iot/src/model/DisableDeviceTunnelShareResult.cc
  67. 95 0
      iot/src/model/EnableDeviceTunnelRequest.cc
  68. 65 0
      iot/src/model/EnableDeviceTunnelResult.cc
  69. 95 0
      iot/src/model/EnableDeviceTunnelShareRequest.cc
  70. 65 0
      iot/src/model/EnableDeviceTunnelShareResult.cc
  71. 2 0
      iot/src/model/GetDeviceStatusResult.cc
  72. 95 0
      iot/src/model/GetDeviceTunnelShareStatusRequest.cc
  73. 79 0
      iot/src/model/GetDeviceTunnelShareStatusResult.cc
  74. 95 0
      iot/src/model/GetDeviceTunnelStatusRequest.cc
  75. 72 0
      iot/src/model/GetDeviceTunnelStatusResult.cc
  76. 95 0
      iot/src/model/GetEdgeInstanceMessageRoutingRequest.cc
  77. 110 0
      iot/src/model/GetEdgeInstanceMessageRoutingResult.cc
  78. 0 11
      iot/src/model/GetThingModelTslRequest.cc
  79. 22 0
      iot/src/model/GetThingTopoRequest.cc
  80. 11 0
      iot/src/model/ListDeviceDistributeJobRequest.cc
  81. 8 0
      iot/src/model/ListDeviceDistributeJobResult.cc
  82. 2 0
      iot/src/model/ListJobResult.cc
  83. 2 0
      iot/src/model/ListOTATaskByJobResult.cc
  84. 0 11
      iot/src/model/ListThingModelVersionRequest.cc
  85. 0 11
      iot/src/model/ListThingTemplatesRequest.cc
  86. 2 0
      iot/src/model/PrintByTemplateResult.cc
  87. 22 0
      iot/src/model/QueryDeviceBySQLRequest.cc
  88. 106 0
      iot/src/model/QueryEdgeInstanceMessageRoutingRequest.cc
  89. 124 0
      iot/src/model/QueryEdgeInstanceMessageRoutingResult.cc
  90. 2 0
      iot/src/model/QueryJobResult.cc
  91. 95 0
      iot/src/model/RefreshDeviceTunnelSharePasswordRequest.cc
  92. 72 0
      iot/src/model/RefreshDeviceTunnelSharePasswordResult.cc
  93. 150 0
      iot/src/model/ReleaseProductRequest.cc
  94. 65 0
      iot/src/model/ReleaseProductResult.cc
  95. 8 0
      iot/src/model/SyncSpeechByCombinationResult.cc
  96. 172 0
      iot/src/model/UpdateEdgeInstanceMessageRoutingRequest.cc
  97. 65 0
      iot/src/model/UpdateEdgeInstanceMessageRoutingResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2021-05-08 Version: 1.36.715
+- Generated 2018-01-20 for `Iot`.
+
 2021-05-08 Version: 1.36.714
 - Generated 2018-07-13 for `Ft`.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.714
+1.36.715

+ 60 - 0
iot/CMakeLists.txt

@@ -93,6 +93,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CancelOTATaskByDeviceResult.h
 	include/alibabacloud/iot/model/CancelOTATaskByJobRequest.h
 	include/alibabacloud/iot/model/CancelOTATaskByJobResult.h
+	include/alibabacloud/iot/model/CancelReleaseProductRequest.h
+	include/alibabacloud/iot/model/CancelReleaseProductResult.h
 	include/alibabacloud/iot/model/ClearEdgeInstanceDriverConfigsRequest.h
 	include/alibabacloud/iot/model/ClearEdgeInstanceDriverConfigsResult.h
 	include/alibabacloud/iot/model/CloseEdgeInstanceDeploymentRequest.h
@@ -119,6 +121,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateEdgeInstanceChannelResult.h
 	include/alibabacloud/iot/model/CreateEdgeInstanceDeploymentRequest.h
 	include/alibabacloud/iot/model/CreateEdgeInstanceDeploymentResult.h
+	include/alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingRequest.h
+	include/alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingResult.h
 	include/alibabacloud/iot/model/CreateEdgeOssPreSignedAddressRequest.h
 	include/alibabacloud/iot/model/CreateEdgeOssPreSignedAddressResult.h
 	include/alibabacloud/iot/model/CreateJobRequest.h
@@ -179,6 +183,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/DeleteEdgeDriverVersionResult.h
 	include/alibabacloud/iot/model/DeleteEdgeInstanceRequest.h
 	include/alibabacloud/iot/model/DeleteEdgeInstanceResult.h
+	include/alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingRequest.h
+	include/alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingResult.h
 	include/alibabacloud/iot/model/DeleteJobRequest.h
 	include/alibabacloud/iot/model/DeleteJobResult.h
 	include/alibabacloud/iot/model/DeleteOTAFirmwareRequest.h
@@ -197,16 +203,26 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/DeleteRuleActionResult.h
 	include/alibabacloud/iot/model/DeleteSceneRuleRequest.h
 	include/alibabacloud/iot/model/DeleteSceneRuleResult.h
+	include/alibabacloud/iot/model/DeleteSpeechRequest.h
+	include/alibabacloud/iot/model/DeleteSpeechResult.h
 	include/alibabacloud/iot/model/DeleteSubscribeRelationRequest.h
 	include/alibabacloud/iot/model/DeleteSubscribeRelationResult.h
 	include/alibabacloud/iot/model/DeleteThingModelRequest.h
 	include/alibabacloud/iot/model/DeleteThingModelResult.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableResult.h
+	include/alibabacloud/iot/model/DisableDeviceTunnelRequest.h
+	include/alibabacloud/iot/model/DisableDeviceTunnelResult.h
+	include/alibabacloud/iot/model/DisableDeviceTunnelShareRequest.h
+	include/alibabacloud/iot/model/DisableDeviceTunnelShareResult.h
 	include/alibabacloud/iot/model/DisableSceneRuleRequest.h
 	include/alibabacloud/iot/model/DisableSceneRuleResult.h
 	include/alibabacloud/iot/model/DisableThingRequest.h
 	include/alibabacloud/iot/model/DisableThingResult.h
+	include/alibabacloud/iot/model/EnableDeviceTunnelRequest.h
+	include/alibabacloud/iot/model/EnableDeviceTunnelResult.h
+	include/alibabacloud/iot/model/EnableDeviceTunnelShareRequest.h
+	include/alibabacloud/iot/model/EnableDeviceTunnelShareResult.h
 	include/alibabacloud/iot/model/EnableSceneRuleRequest.h
 	include/alibabacloud/iot/model/EnableSceneRuleResult.h
 	include/alibabacloud/iot/model/EnableThingRequest.h
@@ -223,12 +239,18 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/GetDeviceShadowResult.h
 	include/alibabacloud/iot/model/GetDeviceStatusRequest.h
 	include/alibabacloud/iot/model/GetDeviceStatusResult.h
+	include/alibabacloud/iot/model/GetDeviceTunnelShareStatusRequest.h
+	include/alibabacloud/iot/model/GetDeviceTunnelShareStatusResult.h
+	include/alibabacloud/iot/model/GetDeviceTunnelStatusRequest.h
+	include/alibabacloud/iot/model/GetDeviceTunnelStatusResult.h
 	include/alibabacloud/iot/model/GetEdgeDriverVersionRequest.h
 	include/alibabacloud/iot/model/GetEdgeDriverVersionResult.h
 	include/alibabacloud/iot/model/GetEdgeInstanceRequest.h
 	include/alibabacloud/iot/model/GetEdgeInstanceResult.h
 	include/alibabacloud/iot/model/GetEdgeInstanceDeploymentRequest.h
 	include/alibabacloud/iot/model/GetEdgeInstanceDeploymentResult.h
+	include/alibabacloud/iot/model/GetEdgeInstanceMessageRoutingRequest.h
+	include/alibabacloud/iot/model/GetEdgeInstanceMessageRoutingResult.h
 	include/alibabacloud/iot/model/GetGatewayBySubDeviceRequest.h
 	include/alibabacloud/iot/model/GetGatewayBySubDeviceResult.h
 	include/alibabacloud/iot/model/GetLoraNodesTaskRequest.h
@@ -397,6 +419,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryEdgeInstanceGatewayResult.h
 	include/alibabacloud/iot/model/QueryEdgeInstanceHistoricDeploymentRequest.h
 	include/alibabacloud/iot/model/QueryEdgeInstanceHistoricDeploymentResult.h
+	include/alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingRequest.h
+	include/alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingResult.h
 	include/alibabacloud/iot/model/QueryEdgeInstanceSceneRuleRequest.h
 	include/alibabacloud/iot/model/QueryEdgeInstanceSceneRuleResult.h
 	include/alibabacloud/iot/model/QueryJobRequest.h
@@ -443,10 +467,14 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryTopicRouteTableResult.h
 	include/alibabacloud/iot/model/RRpcRequest.h
 	include/alibabacloud/iot/model/RRpcResult.h
+	include/alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordRequest.h
+	include/alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordResult.h
 	include/alibabacloud/iot/model/RegisterDeviceRequest.h
 	include/alibabacloud/iot/model/RegisterDeviceResult.h
 	include/alibabacloud/iot/model/ReleaseEdgeDriverVersionRequest.h
 	include/alibabacloud/iot/model/ReleaseEdgeDriverVersionResult.h
+	include/alibabacloud/iot/model/ReleaseProductRequest.h
+	include/alibabacloud/iot/model/ReleaseProductResult.h
 	include/alibabacloud/iot/model/RemoveThingTopoRequest.h
 	include/alibabacloud/iot/model/RemoveThingTopoResult.h
 	include/alibabacloud/iot/model/ReplaceEdgeInstanceGatewayRequest.h
@@ -499,6 +527,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/UpdateEdgeInstanceResult.h
 	include/alibabacloud/iot/model/UpdateEdgeInstanceChannelRequest.h
 	include/alibabacloud/iot/model/UpdateEdgeInstanceChannelResult.h
+	include/alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingRequest.h
+	include/alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingResult.h
 	include/alibabacloud/iot/model/UpdateJobRequest.h
 	include/alibabacloud/iot/model/UpdateJobResult.h
 	include/alibabacloud/iot/model/UpdateOTAModuleRequest.h
@@ -600,6 +630,8 @@ set(iot_src
 	src/model/CancelOTATaskByDeviceResult.cc
 	src/model/CancelOTATaskByJobRequest.cc
 	src/model/CancelOTATaskByJobResult.cc
+	src/model/CancelReleaseProductRequest.cc
+	src/model/CancelReleaseProductResult.cc
 	src/model/ClearEdgeInstanceDriverConfigsRequest.cc
 	src/model/ClearEdgeInstanceDriverConfigsResult.cc
 	src/model/CloseEdgeInstanceDeploymentRequest.cc
@@ -626,6 +658,8 @@ set(iot_src
 	src/model/CreateEdgeInstanceChannelResult.cc
 	src/model/CreateEdgeInstanceDeploymentRequest.cc
 	src/model/CreateEdgeInstanceDeploymentResult.cc
+	src/model/CreateEdgeInstanceMessageRoutingRequest.cc
+	src/model/CreateEdgeInstanceMessageRoutingResult.cc
 	src/model/CreateEdgeOssPreSignedAddressRequest.cc
 	src/model/CreateEdgeOssPreSignedAddressResult.cc
 	src/model/CreateJobRequest.cc
@@ -686,6 +720,8 @@ set(iot_src
 	src/model/DeleteEdgeDriverVersionResult.cc
 	src/model/DeleteEdgeInstanceRequest.cc
 	src/model/DeleteEdgeInstanceResult.cc
+	src/model/DeleteEdgeInstanceMessageRoutingRequest.cc
+	src/model/DeleteEdgeInstanceMessageRoutingResult.cc
 	src/model/DeleteJobRequest.cc
 	src/model/DeleteJobResult.cc
 	src/model/DeleteOTAFirmwareRequest.cc
@@ -704,16 +740,26 @@ set(iot_src
 	src/model/DeleteRuleActionResult.cc
 	src/model/DeleteSceneRuleRequest.cc
 	src/model/DeleteSceneRuleResult.cc
+	src/model/DeleteSpeechRequest.cc
+	src/model/DeleteSpeechResult.cc
 	src/model/DeleteSubscribeRelationRequest.cc
 	src/model/DeleteSubscribeRelationResult.cc
 	src/model/DeleteThingModelRequest.cc
 	src/model/DeleteThingModelResult.cc
 	src/model/DeleteTopicRouteTableRequest.cc
 	src/model/DeleteTopicRouteTableResult.cc
+	src/model/DisableDeviceTunnelRequest.cc
+	src/model/DisableDeviceTunnelResult.cc
+	src/model/DisableDeviceTunnelShareRequest.cc
+	src/model/DisableDeviceTunnelShareResult.cc
 	src/model/DisableSceneRuleRequest.cc
 	src/model/DisableSceneRuleResult.cc
 	src/model/DisableThingRequest.cc
 	src/model/DisableThingResult.cc
+	src/model/EnableDeviceTunnelRequest.cc
+	src/model/EnableDeviceTunnelResult.cc
+	src/model/EnableDeviceTunnelShareRequest.cc
+	src/model/EnableDeviceTunnelShareResult.cc
 	src/model/EnableSceneRuleRequest.cc
 	src/model/EnableSceneRuleResult.cc
 	src/model/EnableThingRequest.cc
@@ -730,12 +776,18 @@ set(iot_src
 	src/model/GetDeviceShadowResult.cc
 	src/model/GetDeviceStatusRequest.cc
 	src/model/GetDeviceStatusResult.cc
+	src/model/GetDeviceTunnelShareStatusRequest.cc
+	src/model/GetDeviceTunnelShareStatusResult.cc
+	src/model/GetDeviceTunnelStatusRequest.cc
+	src/model/GetDeviceTunnelStatusResult.cc
 	src/model/GetEdgeDriverVersionRequest.cc
 	src/model/GetEdgeDriverVersionResult.cc
 	src/model/GetEdgeInstanceRequest.cc
 	src/model/GetEdgeInstanceResult.cc
 	src/model/GetEdgeInstanceDeploymentRequest.cc
 	src/model/GetEdgeInstanceDeploymentResult.cc
+	src/model/GetEdgeInstanceMessageRoutingRequest.cc
+	src/model/GetEdgeInstanceMessageRoutingResult.cc
 	src/model/GetGatewayBySubDeviceRequest.cc
 	src/model/GetGatewayBySubDeviceResult.cc
 	src/model/GetLoraNodesTaskRequest.cc
@@ -904,6 +956,8 @@ set(iot_src
 	src/model/QueryEdgeInstanceGatewayResult.cc
 	src/model/QueryEdgeInstanceHistoricDeploymentRequest.cc
 	src/model/QueryEdgeInstanceHistoricDeploymentResult.cc
+	src/model/QueryEdgeInstanceMessageRoutingRequest.cc
+	src/model/QueryEdgeInstanceMessageRoutingResult.cc
 	src/model/QueryEdgeInstanceSceneRuleRequest.cc
 	src/model/QueryEdgeInstanceSceneRuleResult.cc
 	src/model/QueryJobRequest.cc
@@ -950,10 +1004,14 @@ set(iot_src
 	src/model/QueryTopicRouteTableResult.cc
 	src/model/RRpcRequest.cc
 	src/model/RRpcResult.cc
+	src/model/RefreshDeviceTunnelSharePasswordRequest.cc
+	src/model/RefreshDeviceTunnelSharePasswordResult.cc
 	src/model/RegisterDeviceRequest.cc
 	src/model/RegisterDeviceResult.cc
 	src/model/ReleaseEdgeDriverVersionRequest.cc
 	src/model/ReleaseEdgeDriverVersionResult.cc
+	src/model/ReleaseProductRequest.cc
+	src/model/ReleaseProductResult.cc
 	src/model/RemoveThingTopoRequest.cc
 	src/model/RemoveThingTopoResult.cc
 	src/model/ReplaceEdgeInstanceGatewayRequest.cc
@@ -1006,6 +1064,8 @@ set(iot_src
 	src/model/UpdateEdgeInstanceResult.cc
 	src/model/UpdateEdgeInstanceChannelRequest.cc
 	src/model/UpdateEdgeInstanceChannelResult.cc
+	src/model/UpdateEdgeInstanceMessageRoutingRequest.cc
+	src/model/UpdateEdgeInstanceMessageRoutingResult.cc
 	src/model/UpdateJobRequest.cc
 	src/model/UpdateJobResult.cc
 	src/model/UpdateOTAModuleRequest.cc

+ 120 - 0
iot/include/alibabacloud/iot/IotClient.h

@@ -94,6 +94,8 @@
 #include "model/CancelOTATaskByDeviceResult.h"
 #include "model/CancelOTATaskByJobRequest.h"
 #include "model/CancelOTATaskByJobResult.h"
+#include "model/CancelReleaseProductRequest.h"
+#include "model/CancelReleaseProductResult.h"
 #include "model/ClearEdgeInstanceDriverConfigsRequest.h"
 #include "model/ClearEdgeInstanceDriverConfigsResult.h"
 #include "model/CloseEdgeInstanceDeploymentRequest.h"
@@ -120,6 +122,8 @@
 #include "model/CreateEdgeInstanceChannelResult.h"
 #include "model/CreateEdgeInstanceDeploymentRequest.h"
 #include "model/CreateEdgeInstanceDeploymentResult.h"
+#include "model/CreateEdgeInstanceMessageRoutingRequest.h"
+#include "model/CreateEdgeInstanceMessageRoutingResult.h"
 #include "model/CreateEdgeOssPreSignedAddressRequest.h"
 #include "model/CreateEdgeOssPreSignedAddressResult.h"
 #include "model/CreateJobRequest.h"
@@ -180,6 +184,8 @@
 #include "model/DeleteEdgeDriverVersionResult.h"
 #include "model/DeleteEdgeInstanceRequest.h"
 #include "model/DeleteEdgeInstanceResult.h"
+#include "model/DeleteEdgeInstanceMessageRoutingRequest.h"
+#include "model/DeleteEdgeInstanceMessageRoutingResult.h"
 #include "model/DeleteJobRequest.h"
 #include "model/DeleteJobResult.h"
 #include "model/DeleteOTAFirmwareRequest.h"
@@ -198,16 +204,26 @@
 #include "model/DeleteRuleActionResult.h"
 #include "model/DeleteSceneRuleRequest.h"
 #include "model/DeleteSceneRuleResult.h"
+#include "model/DeleteSpeechRequest.h"
+#include "model/DeleteSpeechResult.h"
 #include "model/DeleteSubscribeRelationRequest.h"
 #include "model/DeleteSubscribeRelationResult.h"
 #include "model/DeleteThingModelRequest.h"
 #include "model/DeleteThingModelResult.h"
 #include "model/DeleteTopicRouteTableRequest.h"
 #include "model/DeleteTopicRouteTableResult.h"
+#include "model/DisableDeviceTunnelRequest.h"
+#include "model/DisableDeviceTunnelResult.h"
+#include "model/DisableDeviceTunnelShareRequest.h"
+#include "model/DisableDeviceTunnelShareResult.h"
 #include "model/DisableSceneRuleRequest.h"
 #include "model/DisableSceneRuleResult.h"
 #include "model/DisableThingRequest.h"
 #include "model/DisableThingResult.h"
+#include "model/EnableDeviceTunnelRequest.h"
+#include "model/EnableDeviceTunnelResult.h"
+#include "model/EnableDeviceTunnelShareRequest.h"
+#include "model/EnableDeviceTunnelShareResult.h"
 #include "model/EnableSceneRuleRequest.h"
 #include "model/EnableSceneRuleResult.h"
 #include "model/EnableThingRequest.h"
@@ -224,12 +240,18 @@
 #include "model/GetDeviceShadowResult.h"
 #include "model/GetDeviceStatusRequest.h"
 #include "model/GetDeviceStatusResult.h"
+#include "model/GetDeviceTunnelShareStatusRequest.h"
+#include "model/GetDeviceTunnelShareStatusResult.h"
+#include "model/GetDeviceTunnelStatusRequest.h"
+#include "model/GetDeviceTunnelStatusResult.h"
 #include "model/GetEdgeDriverVersionRequest.h"
 #include "model/GetEdgeDriverVersionResult.h"
 #include "model/GetEdgeInstanceRequest.h"
 #include "model/GetEdgeInstanceResult.h"
 #include "model/GetEdgeInstanceDeploymentRequest.h"
 #include "model/GetEdgeInstanceDeploymentResult.h"
+#include "model/GetEdgeInstanceMessageRoutingRequest.h"
+#include "model/GetEdgeInstanceMessageRoutingResult.h"
 #include "model/GetGatewayBySubDeviceRequest.h"
 #include "model/GetGatewayBySubDeviceResult.h"
 #include "model/GetLoraNodesTaskRequest.h"
@@ -398,6 +420,8 @@
 #include "model/QueryEdgeInstanceGatewayResult.h"
 #include "model/QueryEdgeInstanceHistoricDeploymentRequest.h"
 #include "model/QueryEdgeInstanceHistoricDeploymentResult.h"
+#include "model/QueryEdgeInstanceMessageRoutingRequest.h"
+#include "model/QueryEdgeInstanceMessageRoutingResult.h"
 #include "model/QueryEdgeInstanceSceneRuleRequest.h"
 #include "model/QueryEdgeInstanceSceneRuleResult.h"
 #include "model/QueryJobRequest.h"
@@ -444,10 +468,14 @@
 #include "model/QueryTopicRouteTableResult.h"
 #include "model/RRpcRequest.h"
 #include "model/RRpcResult.h"
+#include "model/RefreshDeviceTunnelSharePasswordRequest.h"
+#include "model/RefreshDeviceTunnelSharePasswordResult.h"
 #include "model/RegisterDeviceRequest.h"
 #include "model/RegisterDeviceResult.h"
 #include "model/ReleaseEdgeDriverVersionRequest.h"
 #include "model/ReleaseEdgeDriverVersionResult.h"
+#include "model/ReleaseProductRequest.h"
+#include "model/ReleaseProductResult.h"
 #include "model/RemoveThingTopoRequest.h"
 #include "model/RemoveThingTopoResult.h"
 #include "model/ReplaceEdgeInstanceGatewayRequest.h"
@@ -500,6 +528,8 @@
 #include "model/UpdateEdgeInstanceResult.h"
 #include "model/UpdateEdgeInstanceChannelRequest.h"
 #include "model/UpdateEdgeInstanceChannelResult.h"
+#include "model/UpdateEdgeInstanceMessageRoutingRequest.h"
+#include "model/UpdateEdgeInstanceMessageRoutingResult.h"
 #include "model/UpdateJobRequest.h"
 #include "model/UpdateJobResult.h"
 #include "model/UpdateOTAModuleRequest.h"
@@ -643,6 +673,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CancelOTATaskByJobResult> CancelOTATaskByJobOutcome;
 			typedef std::future<CancelOTATaskByJobOutcome> CancelOTATaskByJobOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CancelOTATaskByJobRequest&, const CancelOTATaskByJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelOTATaskByJobAsyncHandler;
+			typedef Outcome<Error, Model::CancelReleaseProductResult> CancelReleaseProductOutcome;
+			typedef std::future<CancelReleaseProductOutcome> CancelReleaseProductOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CancelReleaseProductRequest&, const CancelReleaseProductOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelReleaseProductAsyncHandler;
 			typedef Outcome<Error, Model::ClearEdgeInstanceDriverConfigsResult> ClearEdgeInstanceDriverConfigsOutcome;
 			typedef std::future<ClearEdgeInstanceDriverConfigsOutcome> ClearEdgeInstanceDriverConfigsOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::ClearEdgeInstanceDriverConfigsRequest&, const ClearEdgeInstanceDriverConfigsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ClearEdgeInstanceDriverConfigsAsyncHandler;
@@ -682,6 +715,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateEdgeInstanceDeploymentResult> CreateEdgeInstanceDeploymentOutcome;
 			typedef std::future<CreateEdgeInstanceDeploymentOutcome> CreateEdgeInstanceDeploymentOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateEdgeInstanceDeploymentRequest&, const CreateEdgeInstanceDeploymentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEdgeInstanceDeploymentAsyncHandler;
+			typedef Outcome<Error, Model::CreateEdgeInstanceMessageRoutingResult> CreateEdgeInstanceMessageRoutingOutcome;
+			typedef std::future<CreateEdgeInstanceMessageRoutingOutcome> CreateEdgeInstanceMessageRoutingOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateEdgeInstanceMessageRoutingRequest&, const CreateEdgeInstanceMessageRoutingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEdgeInstanceMessageRoutingAsyncHandler;
 			typedef Outcome<Error, Model::CreateEdgeOssPreSignedAddressResult> CreateEdgeOssPreSignedAddressOutcome;
 			typedef std::future<CreateEdgeOssPreSignedAddressOutcome> CreateEdgeOssPreSignedAddressOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateEdgeOssPreSignedAddressRequest&, const CreateEdgeOssPreSignedAddressOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEdgeOssPreSignedAddressAsyncHandler;
@@ -772,6 +808,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteEdgeInstanceResult> DeleteEdgeInstanceOutcome;
 			typedef std::future<DeleteEdgeInstanceOutcome> DeleteEdgeInstanceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteEdgeInstanceRequest&, const DeleteEdgeInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEdgeInstanceAsyncHandler;
+			typedef Outcome<Error, Model::DeleteEdgeInstanceMessageRoutingResult> DeleteEdgeInstanceMessageRoutingOutcome;
+			typedef std::future<DeleteEdgeInstanceMessageRoutingOutcome> DeleteEdgeInstanceMessageRoutingOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteEdgeInstanceMessageRoutingRequest&, const DeleteEdgeInstanceMessageRoutingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEdgeInstanceMessageRoutingAsyncHandler;
 			typedef Outcome<Error, Model::DeleteJobResult> DeleteJobOutcome;
 			typedef std::future<DeleteJobOutcome> DeleteJobOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteJobRequest&, const DeleteJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteJobAsyncHandler;
@@ -799,6 +838,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteSceneRuleResult> DeleteSceneRuleOutcome;
 			typedef std::future<DeleteSceneRuleOutcome> DeleteSceneRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteSceneRuleRequest&, const DeleteSceneRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSceneRuleAsyncHandler;
+			typedef Outcome<Error, Model::DeleteSpeechResult> DeleteSpeechOutcome;
+			typedef std::future<DeleteSpeechOutcome> DeleteSpeechOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteSpeechRequest&, const DeleteSpeechOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSpeechAsyncHandler;
 			typedef Outcome<Error, Model::DeleteSubscribeRelationResult> DeleteSubscribeRelationOutcome;
 			typedef std::future<DeleteSubscribeRelationOutcome> DeleteSubscribeRelationOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteSubscribeRelationRequest&, const DeleteSubscribeRelationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSubscribeRelationAsyncHandler;
@@ -808,12 +850,24 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTopicRouteTableResult> DeleteTopicRouteTableOutcome;
 			typedef std::future<DeleteTopicRouteTableOutcome> DeleteTopicRouteTableOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteTopicRouteTableRequest&, const DeleteTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicRouteTableAsyncHandler;
+			typedef Outcome<Error, Model::DisableDeviceTunnelResult> DisableDeviceTunnelOutcome;
+			typedef std::future<DisableDeviceTunnelOutcome> DisableDeviceTunnelOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DisableDeviceTunnelRequest&, const DisableDeviceTunnelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableDeviceTunnelAsyncHandler;
+			typedef Outcome<Error, Model::DisableDeviceTunnelShareResult> DisableDeviceTunnelShareOutcome;
+			typedef std::future<DisableDeviceTunnelShareOutcome> DisableDeviceTunnelShareOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DisableDeviceTunnelShareRequest&, const DisableDeviceTunnelShareOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableDeviceTunnelShareAsyncHandler;
 			typedef Outcome<Error, Model::DisableSceneRuleResult> DisableSceneRuleOutcome;
 			typedef std::future<DisableSceneRuleOutcome> DisableSceneRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DisableSceneRuleRequest&, const DisableSceneRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableSceneRuleAsyncHandler;
 			typedef Outcome<Error, Model::DisableThingResult> DisableThingOutcome;
 			typedef std::future<DisableThingOutcome> DisableThingOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DisableThingRequest&, const DisableThingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableThingAsyncHandler;
+			typedef Outcome<Error, Model::EnableDeviceTunnelResult> EnableDeviceTunnelOutcome;
+			typedef std::future<EnableDeviceTunnelOutcome> EnableDeviceTunnelOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::EnableDeviceTunnelRequest&, const EnableDeviceTunnelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableDeviceTunnelAsyncHandler;
+			typedef Outcome<Error, Model::EnableDeviceTunnelShareResult> EnableDeviceTunnelShareOutcome;
+			typedef std::future<EnableDeviceTunnelShareOutcome> EnableDeviceTunnelShareOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::EnableDeviceTunnelShareRequest&, const EnableDeviceTunnelShareOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableDeviceTunnelShareAsyncHandler;
 			typedef Outcome<Error, Model::EnableSceneRuleResult> EnableSceneRuleOutcome;
 			typedef std::future<EnableSceneRuleOutcome> EnableSceneRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::EnableSceneRuleRequest&, const EnableSceneRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableSceneRuleAsyncHandler;
@@ -838,6 +892,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetDeviceStatusResult> GetDeviceStatusOutcome;
 			typedef std::future<GetDeviceStatusOutcome> GetDeviceStatusOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::GetDeviceStatusRequest&, const GetDeviceStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDeviceStatusAsyncHandler;
+			typedef Outcome<Error, Model::GetDeviceTunnelShareStatusResult> GetDeviceTunnelShareStatusOutcome;
+			typedef std::future<GetDeviceTunnelShareStatusOutcome> GetDeviceTunnelShareStatusOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::GetDeviceTunnelShareStatusRequest&, const GetDeviceTunnelShareStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDeviceTunnelShareStatusAsyncHandler;
+			typedef Outcome<Error, Model::GetDeviceTunnelStatusResult> GetDeviceTunnelStatusOutcome;
+			typedef std::future<GetDeviceTunnelStatusOutcome> GetDeviceTunnelStatusOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::GetDeviceTunnelStatusRequest&, const GetDeviceTunnelStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDeviceTunnelStatusAsyncHandler;
 			typedef Outcome<Error, Model::GetEdgeDriverVersionResult> GetEdgeDriverVersionOutcome;
 			typedef std::future<GetEdgeDriverVersionOutcome> GetEdgeDriverVersionOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::GetEdgeDriverVersionRequest&, const GetEdgeDriverVersionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetEdgeDriverVersionAsyncHandler;
@@ -847,6 +907,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetEdgeInstanceDeploymentResult> GetEdgeInstanceDeploymentOutcome;
 			typedef std::future<GetEdgeInstanceDeploymentOutcome> GetEdgeInstanceDeploymentOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::GetEdgeInstanceDeploymentRequest&, const GetEdgeInstanceDeploymentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetEdgeInstanceDeploymentAsyncHandler;
+			typedef Outcome<Error, Model::GetEdgeInstanceMessageRoutingResult> GetEdgeInstanceMessageRoutingOutcome;
+			typedef std::future<GetEdgeInstanceMessageRoutingOutcome> GetEdgeInstanceMessageRoutingOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::GetEdgeInstanceMessageRoutingRequest&, const GetEdgeInstanceMessageRoutingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetEdgeInstanceMessageRoutingAsyncHandler;
 			typedef Outcome<Error, Model::GetGatewayBySubDeviceResult> GetGatewayBySubDeviceOutcome;
 			typedef std::future<GetGatewayBySubDeviceOutcome> GetGatewayBySubDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::GetGatewayBySubDeviceRequest&, const GetGatewayBySubDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetGatewayBySubDeviceAsyncHandler;
@@ -1099,6 +1162,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryEdgeInstanceHistoricDeploymentResult> QueryEdgeInstanceHistoricDeploymentOutcome;
 			typedef std::future<QueryEdgeInstanceHistoricDeploymentOutcome> QueryEdgeInstanceHistoricDeploymentOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryEdgeInstanceHistoricDeploymentRequest&, const QueryEdgeInstanceHistoricDeploymentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryEdgeInstanceHistoricDeploymentAsyncHandler;
+			typedef Outcome<Error, Model::QueryEdgeInstanceMessageRoutingResult> QueryEdgeInstanceMessageRoutingOutcome;
+			typedef std::future<QueryEdgeInstanceMessageRoutingOutcome> QueryEdgeInstanceMessageRoutingOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryEdgeInstanceMessageRoutingRequest&, const QueryEdgeInstanceMessageRoutingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryEdgeInstanceMessageRoutingAsyncHandler;
 			typedef Outcome<Error, Model::QueryEdgeInstanceSceneRuleResult> QueryEdgeInstanceSceneRuleOutcome;
 			typedef std::future<QueryEdgeInstanceSceneRuleOutcome> QueryEdgeInstanceSceneRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryEdgeInstanceSceneRuleRequest&, const QueryEdgeInstanceSceneRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryEdgeInstanceSceneRuleAsyncHandler;
@@ -1168,12 +1234,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::RRpcResult> RRpcOutcome;
 			typedef std::future<RRpcOutcome> RRpcOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::RRpcRequest&, const RRpcOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RRpcAsyncHandler;
+			typedef Outcome<Error, Model::RefreshDeviceTunnelSharePasswordResult> RefreshDeviceTunnelSharePasswordOutcome;
+			typedef std::future<RefreshDeviceTunnelSharePasswordOutcome> RefreshDeviceTunnelSharePasswordOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::RefreshDeviceTunnelSharePasswordRequest&, const RefreshDeviceTunnelSharePasswordOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RefreshDeviceTunnelSharePasswordAsyncHandler;
 			typedef Outcome<Error, Model::RegisterDeviceResult> RegisterDeviceOutcome;
 			typedef std::future<RegisterDeviceOutcome> RegisterDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::RegisterDeviceRequest&, const RegisterDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RegisterDeviceAsyncHandler;
 			typedef Outcome<Error, Model::ReleaseEdgeDriverVersionResult> ReleaseEdgeDriverVersionOutcome;
 			typedef std::future<ReleaseEdgeDriverVersionOutcome> ReleaseEdgeDriverVersionOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::ReleaseEdgeDriverVersionRequest&, const ReleaseEdgeDriverVersionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ReleaseEdgeDriverVersionAsyncHandler;
+			typedef Outcome<Error, Model::ReleaseProductResult> ReleaseProductOutcome;
+			typedef std::future<ReleaseProductOutcome> ReleaseProductOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::ReleaseProductRequest&, const ReleaseProductOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ReleaseProductAsyncHandler;
 			typedef Outcome<Error, Model::RemoveThingTopoResult> RemoveThingTopoOutcome;
 			typedef std::future<RemoveThingTopoOutcome> RemoveThingTopoOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::RemoveThingTopoRequest&, const RemoveThingTopoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RemoveThingTopoAsyncHandler;
@@ -1252,6 +1324,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UpdateEdgeInstanceChannelResult> UpdateEdgeInstanceChannelOutcome;
 			typedef std::future<UpdateEdgeInstanceChannelOutcome> UpdateEdgeInstanceChannelOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::UpdateEdgeInstanceChannelRequest&, const UpdateEdgeInstanceChannelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateEdgeInstanceChannelAsyncHandler;
+			typedef Outcome<Error, Model::UpdateEdgeInstanceMessageRoutingResult> UpdateEdgeInstanceMessageRoutingOutcome;
+			typedef std::future<UpdateEdgeInstanceMessageRoutingOutcome> UpdateEdgeInstanceMessageRoutingOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::UpdateEdgeInstanceMessageRoutingRequest&, const UpdateEdgeInstanceMessageRoutingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateEdgeInstanceMessageRoutingAsyncHandler;
 			typedef Outcome<Error, Model::UpdateJobResult> UpdateJobOutcome;
 			typedef std::future<UpdateJobOutcome> UpdateJobOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::UpdateJobRequest&, const UpdateJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateJobAsyncHandler;
@@ -1404,6 +1479,9 @@ namespace AlibabaCloud
 			CancelOTATaskByJobOutcome cancelOTATaskByJob(const Model::CancelOTATaskByJobRequest &request)const;
 			void cancelOTATaskByJobAsync(const Model::CancelOTATaskByJobRequest& request, const CancelOTATaskByJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CancelOTATaskByJobOutcomeCallable cancelOTATaskByJobCallable(const Model::CancelOTATaskByJobRequest& request) const;
+			CancelReleaseProductOutcome cancelReleaseProduct(const Model::CancelReleaseProductRequest &request)const;
+			void cancelReleaseProductAsync(const Model::CancelReleaseProductRequest& request, const CancelReleaseProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CancelReleaseProductOutcomeCallable cancelReleaseProductCallable(const Model::CancelReleaseProductRequest& request) const;
 			ClearEdgeInstanceDriverConfigsOutcome clearEdgeInstanceDriverConfigs(const Model::ClearEdgeInstanceDriverConfigsRequest &request)const;
 			void clearEdgeInstanceDriverConfigsAsync(const Model::ClearEdgeInstanceDriverConfigsRequest& request, const ClearEdgeInstanceDriverConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ClearEdgeInstanceDriverConfigsOutcomeCallable clearEdgeInstanceDriverConfigsCallable(const Model::ClearEdgeInstanceDriverConfigsRequest& request) const;
@@ -1443,6 +1521,9 @@ namespace AlibabaCloud
 			CreateEdgeInstanceDeploymentOutcome createEdgeInstanceDeployment(const Model::CreateEdgeInstanceDeploymentRequest &request)const;
 			void createEdgeInstanceDeploymentAsync(const Model::CreateEdgeInstanceDeploymentRequest& request, const CreateEdgeInstanceDeploymentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateEdgeInstanceDeploymentOutcomeCallable createEdgeInstanceDeploymentCallable(const Model::CreateEdgeInstanceDeploymentRequest& request) const;
+			CreateEdgeInstanceMessageRoutingOutcome createEdgeInstanceMessageRouting(const Model::CreateEdgeInstanceMessageRoutingRequest &request)const;
+			void createEdgeInstanceMessageRoutingAsync(const Model::CreateEdgeInstanceMessageRoutingRequest& request, const CreateEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateEdgeInstanceMessageRoutingOutcomeCallable createEdgeInstanceMessageRoutingCallable(const Model::CreateEdgeInstanceMessageRoutingRequest& request) const;
 			CreateEdgeOssPreSignedAddressOutcome createEdgeOssPreSignedAddress(const Model::CreateEdgeOssPreSignedAddressRequest &request)const;
 			void createEdgeOssPreSignedAddressAsync(const Model::CreateEdgeOssPreSignedAddressRequest& request, const CreateEdgeOssPreSignedAddressAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateEdgeOssPreSignedAddressOutcomeCallable createEdgeOssPreSignedAddressCallable(const Model::CreateEdgeOssPreSignedAddressRequest& request) const;
@@ -1533,6 +1614,9 @@ namespace AlibabaCloud
 			DeleteEdgeInstanceOutcome deleteEdgeInstance(const Model::DeleteEdgeInstanceRequest &request)const;
 			void deleteEdgeInstanceAsync(const Model::DeleteEdgeInstanceRequest& request, const DeleteEdgeInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteEdgeInstanceOutcomeCallable deleteEdgeInstanceCallable(const Model::DeleteEdgeInstanceRequest& request) const;
+			DeleteEdgeInstanceMessageRoutingOutcome deleteEdgeInstanceMessageRouting(const Model::DeleteEdgeInstanceMessageRoutingRequest &request)const;
+			void deleteEdgeInstanceMessageRoutingAsync(const Model::DeleteEdgeInstanceMessageRoutingRequest& request, const DeleteEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteEdgeInstanceMessageRoutingOutcomeCallable deleteEdgeInstanceMessageRoutingCallable(const Model::DeleteEdgeInstanceMessageRoutingRequest& request) const;
 			DeleteJobOutcome deleteJob(const Model::DeleteJobRequest &request)const;
 			void deleteJobAsync(const Model::DeleteJobRequest& request, const DeleteJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteJobOutcomeCallable deleteJobCallable(const Model::DeleteJobRequest& request) const;
@@ -1560,6 +1644,9 @@ namespace AlibabaCloud
 			DeleteSceneRuleOutcome deleteSceneRule(const Model::DeleteSceneRuleRequest &request)const;
 			void deleteSceneRuleAsync(const Model::DeleteSceneRuleRequest& request, const DeleteSceneRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteSceneRuleOutcomeCallable deleteSceneRuleCallable(const Model::DeleteSceneRuleRequest& request) const;
+			DeleteSpeechOutcome deleteSpeech(const Model::DeleteSpeechRequest &request)const;
+			void deleteSpeechAsync(const Model::DeleteSpeechRequest& request, const DeleteSpeechAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteSpeechOutcomeCallable deleteSpeechCallable(const Model::DeleteSpeechRequest& request) const;
 			DeleteSubscribeRelationOutcome deleteSubscribeRelation(const Model::DeleteSubscribeRelationRequest &request)const;
 			void deleteSubscribeRelationAsync(const Model::DeleteSubscribeRelationRequest& request, const DeleteSubscribeRelationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteSubscribeRelationOutcomeCallable deleteSubscribeRelationCallable(const Model::DeleteSubscribeRelationRequest& request) const;
@@ -1569,12 +1656,24 @@ namespace AlibabaCloud
 			DeleteTopicRouteTableOutcome deleteTopicRouteTable(const Model::DeleteTopicRouteTableRequest &request)const;
 			void deleteTopicRouteTableAsync(const Model::DeleteTopicRouteTableRequest& request, const DeleteTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTopicRouteTableOutcomeCallable deleteTopicRouteTableCallable(const Model::DeleteTopicRouteTableRequest& request) const;
+			DisableDeviceTunnelOutcome disableDeviceTunnel(const Model::DisableDeviceTunnelRequest &request)const;
+			void disableDeviceTunnelAsync(const Model::DisableDeviceTunnelRequest& request, const DisableDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DisableDeviceTunnelOutcomeCallable disableDeviceTunnelCallable(const Model::DisableDeviceTunnelRequest& request) const;
+			DisableDeviceTunnelShareOutcome disableDeviceTunnelShare(const Model::DisableDeviceTunnelShareRequest &request)const;
+			void disableDeviceTunnelShareAsync(const Model::DisableDeviceTunnelShareRequest& request, const DisableDeviceTunnelShareAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DisableDeviceTunnelShareOutcomeCallable disableDeviceTunnelShareCallable(const Model::DisableDeviceTunnelShareRequest& request) const;
 			DisableSceneRuleOutcome disableSceneRule(const Model::DisableSceneRuleRequest &request)const;
 			void disableSceneRuleAsync(const Model::DisableSceneRuleRequest& request, const DisableSceneRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DisableSceneRuleOutcomeCallable disableSceneRuleCallable(const Model::DisableSceneRuleRequest& request) const;
 			DisableThingOutcome disableThing(const Model::DisableThingRequest &request)const;
 			void disableThingAsync(const Model::DisableThingRequest& request, const DisableThingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DisableThingOutcomeCallable disableThingCallable(const Model::DisableThingRequest& request) const;
+			EnableDeviceTunnelOutcome enableDeviceTunnel(const Model::EnableDeviceTunnelRequest &request)const;
+			void enableDeviceTunnelAsync(const Model::EnableDeviceTunnelRequest& request, const EnableDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			EnableDeviceTunnelOutcomeCallable enableDeviceTunnelCallable(const Model::EnableDeviceTunnelRequest& request) const;
+			EnableDeviceTunnelShareOutcome enableDeviceTunnelShare(const Model::EnableDeviceTunnelShareRequest &request)const;
+			void enableDeviceTunnelShareAsync(const Model::EnableDeviceTunnelShareRequest& request, const EnableDeviceTunnelShareAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			EnableDeviceTunnelShareOutcomeCallable enableDeviceTunnelShareCallable(const Model::EnableDeviceTunnelShareRequest& request) const;
 			EnableSceneRuleOutcome enableSceneRule(const Model::EnableSceneRuleRequest &request)const;
 			void enableSceneRuleAsync(const Model::EnableSceneRuleRequest& request, const EnableSceneRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			EnableSceneRuleOutcomeCallable enableSceneRuleCallable(const Model::EnableSceneRuleRequest& request) const;
@@ -1599,6 +1698,12 @@ namespace AlibabaCloud
 			GetDeviceStatusOutcome getDeviceStatus(const Model::GetDeviceStatusRequest &request)const;
 			void getDeviceStatusAsync(const Model::GetDeviceStatusRequest& request, const GetDeviceStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetDeviceStatusOutcomeCallable getDeviceStatusCallable(const Model::GetDeviceStatusRequest& request) const;
+			GetDeviceTunnelShareStatusOutcome getDeviceTunnelShareStatus(const Model::GetDeviceTunnelShareStatusRequest &request)const;
+			void getDeviceTunnelShareStatusAsync(const Model::GetDeviceTunnelShareStatusRequest& request, const GetDeviceTunnelShareStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetDeviceTunnelShareStatusOutcomeCallable getDeviceTunnelShareStatusCallable(const Model::GetDeviceTunnelShareStatusRequest& request) const;
+			GetDeviceTunnelStatusOutcome getDeviceTunnelStatus(const Model::GetDeviceTunnelStatusRequest &request)const;
+			void getDeviceTunnelStatusAsync(const Model::GetDeviceTunnelStatusRequest& request, const GetDeviceTunnelStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetDeviceTunnelStatusOutcomeCallable getDeviceTunnelStatusCallable(const Model::GetDeviceTunnelStatusRequest& request) const;
 			GetEdgeDriverVersionOutcome getEdgeDriverVersion(const Model::GetEdgeDriverVersionRequest &request)const;
 			void getEdgeDriverVersionAsync(const Model::GetEdgeDriverVersionRequest& request, const GetEdgeDriverVersionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetEdgeDriverVersionOutcomeCallable getEdgeDriverVersionCallable(const Model::GetEdgeDriverVersionRequest& request) const;
@@ -1608,6 +1713,9 @@ namespace AlibabaCloud
 			GetEdgeInstanceDeploymentOutcome getEdgeInstanceDeployment(const Model::GetEdgeInstanceDeploymentRequest &request)const;
 			void getEdgeInstanceDeploymentAsync(const Model::GetEdgeInstanceDeploymentRequest& request, const GetEdgeInstanceDeploymentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetEdgeInstanceDeploymentOutcomeCallable getEdgeInstanceDeploymentCallable(const Model::GetEdgeInstanceDeploymentRequest& request) const;
+			GetEdgeInstanceMessageRoutingOutcome getEdgeInstanceMessageRouting(const Model::GetEdgeInstanceMessageRoutingRequest &request)const;
+			void getEdgeInstanceMessageRoutingAsync(const Model::GetEdgeInstanceMessageRoutingRequest& request, const GetEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetEdgeInstanceMessageRoutingOutcomeCallable getEdgeInstanceMessageRoutingCallable(const Model::GetEdgeInstanceMessageRoutingRequest& request) const;
 			GetGatewayBySubDeviceOutcome getGatewayBySubDevice(const Model::GetGatewayBySubDeviceRequest &request)const;
 			void getGatewayBySubDeviceAsync(const Model::GetGatewayBySubDeviceRequest& request, const GetGatewayBySubDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetGatewayBySubDeviceOutcomeCallable getGatewayBySubDeviceCallable(const Model::GetGatewayBySubDeviceRequest& request) const;
@@ -1860,6 +1968,9 @@ namespace AlibabaCloud
 			QueryEdgeInstanceHistoricDeploymentOutcome queryEdgeInstanceHistoricDeployment(const Model::QueryEdgeInstanceHistoricDeploymentRequest &request)const;
 			void queryEdgeInstanceHistoricDeploymentAsync(const Model::QueryEdgeInstanceHistoricDeploymentRequest& request, const QueryEdgeInstanceHistoricDeploymentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryEdgeInstanceHistoricDeploymentOutcomeCallable queryEdgeInstanceHistoricDeploymentCallable(const Model::QueryEdgeInstanceHistoricDeploymentRequest& request) const;
+			QueryEdgeInstanceMessageRoutingOutcome queryEdgeInstanceMessageRouting(const Model::QueryEdgeInstanceMessageRoutingRequest &request)const;
+			void queryEdgeInstanceMessageRoutingAsync(const Model::QueryEdgeInstanceMessageRoutingRequest& request, const QueryEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryEdgeInstanceMessageRoutingOutcomeCallable queryEdgeInstanceMessageRoutingCallable(const Model::QueryEdgeInstanceMessageRoutingRequest& request) const;
 			QueryEdgeInstanceSceneRuleOutcome queryEdgeInstanceSceneRule(const Model::QueryEdgeInstanceSceneRuleRequest &request)const;
 			void queryEdgeInstanceSceneRuleAsync(const Model::QueryEdgeInstanceSceneRuleRequest& request, const QueryEdgeInstanceSceneRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryEdgeInstanceSceneRuleOutcomeCallable queryEdgeInstanceSceneRuleCallable(const Model::QueryEdgeInstanceSceneRuleRequest& request) const;
@@ -1929,12 +2040,18 @@ namespace AlibabaCloud
 			RRpcOutcome rRpc(const Model::RRpcRequest &request)const;
 			void rRpcAsync(const Model::RRpcRequest& request, const RRpcAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RRpcOutcomeCallable rRpcCallable(const Model::RRpcRequest& request) const;
+			RefreshDeviceTunnelSharePasswordOutcome refreshDeviceTunnelSharePassword(const Model::RefreshDeviceTunnelSharePasswordRequest &request)const;
+			void refreshDeviceTunnelSharePasswordAsync(const Model::RefreshDeviceTunnelSharePasswordRequest& request, const RefreshDeviceTunnelSharePasswordAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			RefreshDeviceTunnelSharePasswordOutcomeCallable refreshDeviceTunnelSharePasswordCallable(const Model::RefreshDeviceTunnelSharePasswordRequest& request) const;
 			RegisterDeviceOutcome registerDevice(const Model::RegisterDeviceRequest &request)const;
 			void registerDeviceAsync(const Model::RegisterDeviceRequest& request, const RegisterDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RegisterDeviceOutcomeCallable registerDeviceCallable(const Model::RegisterDeviceRequest& request) const;
 			ReleaseEdgeDriverVersionOutcome releaseEdgeDriverVersion(const Model::ReleaseEdgeDriverVersionRequest &request)const;
 			void releaseEdgeDriverVersionAsync(const Model::ReleaseEdgeDriverVersionRequest& request, const ReleaseEdgeDriverVersionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ReleaseEdgeDriverVersionOutcomeCallable releaseEdgeDriverVersionCallable(const Model::ReleaseEdgeDriverVersionRequest& request) const;
+			ReleaseProductOutcome releaseProduct(const Model::ReleaseProductRequest &request)const;
+			void releaseProductAsync(const Model::ReleaseProductRequest& request, const ReleaseProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ReleaseProductOutcomeCallable releaseProductCallable(const Model::ReleaseProductRequest& request) const;
 			RemoveThingTopoOutcome removeThingTopo(const Model::RemoveThingTopoRequest &request)const;
 			void removeThingTopoAsync(const Model::RemoveThingTopoRequest& request, const RemoveThingTopoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RemoveThingTopoOutcomeCallable removeThingTopoCallable(const Model::RemoveThingTopoRequest& request) const;
@@ -2013,6 +2130,9 @@ namespace AlibabaCloud
 			UpdateEdgeInstanceChannelOutcome updateEdgeInstanceChannel(const Model::UpdateEdgeInstanceChannelRequest &request)const;
 			void updateEdgeInstanceChannelAsync(const Model::UpdateEdgeInstanceChannelRequest& request, const UpdateEdgeInstanceChannelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateEdgeInstanceChannelOutcomeCallable updateEdgeInstanceChannelCallable(const Model::UpdateEdgeInstanceChannelRequest& request) const;
+			UpdateEdgeInstanceMessageRoutingOutcome updateEdgeInstanceMessageRouting(const Model::UpdateEdgeInstanceMessageRoutingRequest &request)const;
+			void updateEdgeInstanceMessageRoutingAsync(const Model::UpdateEdgeInstanceMessageRoutingRequest& request, const UpdateEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateEdgeInstanceMessageRoutingOutcomeCallable updateEdgeInstanceMessageRoutingCallable(const Model::UpdateEdgeInstanceMessageRoutingRequest& request) const;
 			UpdateJobOutcome updateJob(const Model::UpdateJobRequest &request)const;
 			void updateJobAsync(const Model::UpdateJobRequest& request, const UpdateJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateJobOutcomeCallable updateJobCallable(const Model::UpdateJobRequest& request) const;

+ 6 - 0
iot/include/alibabacloud/iot/model/BatchGetDeviceStateRequest.h

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				BatchGetDeviceStateRequest();
 				~BatchGetDeviceStateRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::vector<std::string> getIotId()const;
 				void setIotId(const std::vector<std::string>& iotId);
 				std::string getIotInstanceId()const;
@@ -51,7 +55,9 @@ namespace AlibabaCloud
 				void setDeviceName(const std::vector<std::string>& deviceName);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::vector<std::string> iotId_;
 				std::string iotInstanceId_;
 				std::string productKey_;

+ 69 - 0
iot/include/alibabacloud/iot/model/CancelReleaseProductRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CANCELRELEASEPRODUCTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CANCELRELEASEPRODUCTREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT CancelReleaseProductRequest : public RpcServiceRequest
+			{
+
+			public:
+				CancelReleaseProductRequest();
+				~CancelReleaseProductRequest();
+
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getBizTenantId()const;
+				void setBizTenantId(const std::string& bizTenantId);
+
+            private:
+				std::string realTenantId_;
+				std::string accessKeyId_;
+				std::string realTripartiteKey_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string bizTenantId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CANCELRELEASEPRODUCTREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/CancelReleaseProductResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CANCELRELEASEPRODUCTRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CANCELRELEASEPRODUCTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT CancelReleaseProductResult : public ServiceResult
+			{
+			public:
+
+
+				CancelReleaseProductResult();
+				explicit CancelReleaseProductResult(const std::string &payload);
+				~CancelReleaseProductResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CANCELRELEASEPRODUCTRESULT_H_

+ 81 - 0
iot/include/alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingRequest.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT CreateEdgeInstanceMessageRoutingRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateEdgeInstanceMessageRoutingRequest();
+				~CreateEdgeInstanceMessageRoutingRequest();
+
+				std::string getSourceData()const;
+				void setSourceData(const std::string& sourceData);
+				std::string getTargetType()const;
+				void setTargetType(const std::string& targetType);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getSourceType()const;
+				void setSourceType(const std::string& sourceType);
+				std::string getTopicFilter()const;
+				void setTopicFilter(const std::string& topicFilter);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getTargetData()const;
+				void setTargetData(const std::string& targetData);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getName()const;
+				void setName(const std::string& name);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				int getTargetIotHubQos()const;
+				void setTargetIotHubQos(int targetIotHubQos);
+
+            private:
+				std::string sourceData_;
+				std::string targetType_;
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string sourceType_;
+				std::string topicFilter_;
+				std::string instanceId_;
+				std::string targetData_;
+				std::string apiProduct_;
+				std::string name_;
+				std::string apiRevision_;
+				int targetIotHubQos_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingResult.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATEEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT CreateEdgeInstanceMessageRoutingResult : public ServiceResult
+			{
+			public:
+
+
+				CreateEdgeInstanceMessageRoutingResult();
+				explicit CreateEdgeInstanceMessageRoutingResult(const std::string &payload);
+				~CreateEdgeInstanceMessageRoutingResult();
+				long getRouteId()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long routeId_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEEDGEINSTANCEMESSAGEROUTINGRESULT_H_

+ 3 - 0
iot/include/alibabacloud/iot/model/CreateJobRequest.h

@@ -57,6 +57,8 @@ namespace AlibabaCloud
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
 				void setApiRevision(const std::string& apiRevision);
+				long getScheduledTime()const;
+				void setScheduledTime(long scheduledTime);
 
             private:
 				std::string jobDocument_;
@@ -70,6 +72,7 @@ namespace AlibabaCloud
 				std::string jobFile_;
 				std::string apiProduct_;
 				std::string apiRevision_;
+				long scheduledTime_;
 
 			};
 		}

+ 6 - 0
iot/include/alibabacloud/iot/model/DeleteDevicePropRequest.h

@@ -35,10 +35,14 @@ namespace AlibabaCloud
 				DeleteDevicePropRequest();
 				~DeleteDevicePropRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getPropKey()const;
 				void setPropKey(const std::string& propKey);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotId()const;
 				void setIotId(const std::string& iotId);
 				std::string getIotInstanceId()const;
@@ -53,8 +57,10 @@ namespace AlibabaCloud
 				void setDeviceName(const std::string& deviceName);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
 				std::string propKey_;
+				std::string realTripartiteKey_;
 				std::string iotId_;
 				std::string iotInstanceId_;
 				std::string productKey_;

+ 63 - 0
iot/include/alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DELETEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DeleteEdgeInstanceMessageRoutingRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteEdgeInstanceMessageRoutingRequest();
+				~DeleteEdgeInstanceMessageRoutingRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				long getRouteId()const;
+				void setRouteId(long routeId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string instanceId_;
+				long routeId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DELETEEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DeleteEdgeInstanceMessageRoutingResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteEdgeInstanceMessageRoutingResult();
+				explicit DeleteEdgeInstanceMessageRoutingResult(const std::string &payload);
+				~DeleteEdgeInstanceMessageRoutingResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETEEDGEINSTANCEMESSAGEROUTINGRESULT_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/DeleteSpeechRequest.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DELETESPEECHREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETESPEECHREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DeleteSpeechRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteSpeechRequest();
+				~DeleteSpeechRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::vector<std::string> getSpeechCodeList()const;
+				void setSpeechCodeList(const std::vector<std::string>& speechCodeList);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string iotInstanceId_;
+				std::vector<std::string> speechCodeList_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETESPEECHREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/DeleteSpeechResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DELETESPEECHRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETESPEECHRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DeleteSpeechResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteSpeechResult();
+				explicit DeleteSpeechResult(const std::string &payload);
+				~DeleteSpeechResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETESPEECHRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/DisableDeviceTunnelRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DisableDeviceTunnelRequest : public RpcServiceRequest
+			{
+
+			public:
+				DisableDeviceTunnelRequest();
+				~DisableDeviceTunnelRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/DisableDeviceTunnelResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DisableDeviceTunnelResult : public ServiceResult
+			{
+			public:
+
+
+				DisableDeviceTunnelResult();
+				explicit DisableDeviceTunnelResult(const std::string &payload);
+				~DisableDeviceTunnelResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/DisableDeviceTunnelShareRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELSHAREREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELSHAREREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DisableDeviceTunnelShareRequest : public RpcServiceRequest
+			{
+
+			public:
+				DisableDeviceTunnelShareRequest();
+				~DisableDeviceTunnelShareRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELSHAREREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/DisableDeviceTunnelShareResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELSHARERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELSHARERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT DisableDeviceTunnelShareResult : public ServiceResult
+			{
+			public:
+
+
+				DisableDeviceTunnelShareResult();
+				explicit DisableDeviceTunnelShareResult(const std::string &payload);
+				~DisableDeviceTunnelShareResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DISABLEDEVICETUNNELSHARERESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/EnableDeviceTunnelRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT EnableDeviceTunnelRequest : public RpcServiceRequest
+			{
+
+			public:
+				EnableDeviceTunnelRequest();
+				~EnableDeviceTunnelRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/EnableDeviceTunnelResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT EnableDeviceTunnelResult : public ServiceResult
+			{
+			public:
+
+
+				EnableDeviceTunnelResult();
+				explicit EnableDeviceTunnelResult(const std::string &payload);
+				~EnableDeviceTunnelResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/EnableDeviceTunnelShareRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELSHAREREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELSHAREREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT EnableDeviceTunnelShareRequest : public RpcServiceRequest
+			{
+
+			public:
+				EnableDeviceTunnelShareRequest();
+				~EnableDeviceTunnelShareRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELSHAREREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/EnableDeviceTunnelShareResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELSHARERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELSHARERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT EnableDeviceTunnelShareResult : public ServiceResult
+			{
+			public:
+
+
+				EnableDeviceTunnelShareResult();
+				explicit EnableDeviceTunnelShareResult(const std::string &payload);
+				~EnableDeviceTunnelShareResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ENABLEDEVICETUNNELSHARERESULT_H_

+ 1 - 0
iot/include/alibabacloud/iot/model/GetDeviceStatusResult.h

@@ -35,6 +35,7 @@ namespace AlibabaCloud
 				struct Data
 				{
 					std::string status;
+					long timestamp;
 				};
 
 

+ 63 - 0
iot/include/alibabacloud/iot/model/GetDeviceTunnelShareStatusRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSHARESTATUSREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSHARESTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT GetDeviceTunnelShareStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetDeviceTunnelShareStatusRequest();
+				~GetDeviceTunnelShareStatusRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSHARESTATUSREQUEST_H_

+ 64 - 0
iot/include/alibabacloud/iot/model/GetDeviceTunnelShareStatusResult.h

@@ -0,0 +1,64 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSHARESTATUSRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSHARESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT GetDeviceTunnelShareStatusResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					long gmtOpened;
+					std::string shareId;
+					std::string password;
+					bool isOpen;
+				};
+
+
+				GetDeviceTunnelShareStatusResult();
+				explicit GetDeviceTunnelShareStatusResult(const std::string &payload);
+				~GetDeviceTunnelShareStatusResult();
+				Data getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSHARESTATUSRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/GetDeviceTunnelStatusRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSTATUSREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT GetDeviceTunnelStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetDeviceTunnelStatusRequest();
+				~GetDeviceTunnelStatusRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSTATUSREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/GetDeviceTunnelStatusResult.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSTATUSRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT GetDeviceTunnelStatusResult : public ServiceResult
+			{
+			public:
+
+
+				GetDeviceTunnelStatusResult();
+				explicit GetDeviceTunnelStatusResult(const std::string &payload);
+				~GetDeviceTunnelStatusResult();
+				std::string getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_GETDEVICETUNNELSTATUSRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/GetEdgeInstanceMessageRoutingRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_GETEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_GETEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT GetEdgeInstanceMessageRoutingRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetEdgeInstanceMessageRoutingRequest();
+				~GetEdgeInstanceMessageRoutingRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				long getRouteId()const;
+				void setRouteId(long routeId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string instanceId_;
+				long routeId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_GETEDGEINSTANCEMESSAGEROUTINGREQUEST_H_

+ 83 - 0
iot/include/alibabacloud/iot/model/GetEdgeInstanceMessageRoutingResult.h

@@ -0,0 +1,83 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_GETEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_GETEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT GetEdgeInstanceMessageRoutingResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct RouteContext
+					{
+						std::string targetFcServiceName;
+						std::string targetFcFunctionName;
+						std::string targetApplicationName;
+						std::string qos;
+						std::string sourceFcServiceName;
+						std::string targetStreamName;
+						std::string sourceFcFunctionName;
+						std::string sourceApplicationName;
+						std::string sourceStreamName;
+					};
+					std::string targetData;
+					std::string topicFilter;
+					std::string gmtCreate;
+					long gmtCreateTimestamp;
+					std::string sourceType;
+					std::string targetType;
+					std::string gmtModified;
+					long gmtModifiedTimestamp;
+					std::string sourceData;
+					RouteContext routeContext;
+					std::string name;
+				};
+
+
+				GetEdgeInstanceMessageRoutingResult();
+				explicit GetEdgeInstanceMessageRoutingResult(const std::string &payload);
+				~GetEdgeInstanceMessageRoutingResult();
+				Data getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_GETEDGEINSTANCEMESSAGEROUTINGRESULT_H_

+ 0 - 3
iot/include/alibabacloud/iot/model/GetThingModelTslRequest.h

@@ -43,8 +43,6 @@ namespace AlibabaCloud
 				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getRealTripartiteKey()const;
 				void setRealTripartiteKey(const std::string& realTripartiteKey);
-				std::string getResourceGroupId()const;
-				void setResourceGroupId(const std::string& resourceGroupId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -63,7 +61,6 @@ namespace AlibabaCloud
 				bool simple_;
 				std::string accessKeyId_;
 				std::string realTripartiteKey_;
-				std::string resourceGroupId_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				std::string apiProduct_;

+ 6 - 0
iot/include/alibabacloud/iot/model/GetThingTopoRequest.h

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				GetThingTopoRequest();
 				~GetThingTopoRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotId()const;
 				void setIotId(const std::string& iotId);
 				std::string getIotInstanceId()const;
@@ -55,7 +59,9 @@ namespace AlibabaCloud
 				void setDeviceName(const std::string& deviceName);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotId_;
 				std::string iotInstanceId_;
 				int pageSize_;

+ 3 - 0
iot/include/alibabacloud/iot/model/ListDeviceDistributeJobRequest.h

@@ -35,6 +35,8 @@ namespace AlibabaCloud
 				ListDeviceDistributeJobRequest();
 				~ListDeviceDistributeJobRequest();
 
+				std::string getJobId()const;
+				void setJobId(const std::string& jobId);
 				int getPageSize()const;
 				void setPageSize(int pageSize);
 				int getCurrentPage()const;
@@ -49,6 +51,7 @@ namespace AlibabaCloud
 				void setStatus(int status);
 
             private:
+				std::string jobId_;
 				int pageSize_;
 				int currentPage_;
 				std::string apiProduct_;

+ 4 - 0
iot/include/alibabacloud/iot/model/ListDeviceDistributeJobResult.h

@@ -38,9 +38,12 @@ namespace AlibabaCloud
 					{
 						struct TargetInstanceConfigsItem
 						{
+							std::string targetRegion;
+							std::string targetInstanceName;
 							std::string targetInstanceId;
 						};
 						int status;
+						std::string sourceInstanceName;
 						long gmtCreate;
 						std::string sourceUid;
 						int total;
@@ -48,6 +51,7 @@ namespace AlibabaCloud
 						std::string targetUid;
 						std::vector<Items::TargetInstanceConfigsItem> targetInstanceConfigs;
 						std::string sourceInstanceId;
+						std::string sourceRegion;
 						std::string jobId;
 						std::string productKey;
 					};

+ 1 - 0
iot/include/alibabacloud/iot/model/ListJobResult.h

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					std::string status;
 					std::string type;
+					long scheduledTime;
 					std::string description;
 					std::string utcCreate;
 					std::string jobName;

+ 1 - 0
iot/include/alibabacloud/iot/model/ListOTATaskByJobResult.h

@@ -38,6 +38,7 @@ namespace AlibabaCloud
 					std::string taskId;
 					std::string productName;
 					std::string firmwareId;
+					std::string timeout;
 					std::string taskStatus;
 					std::string iotId;
 					std::string utcCreate;

+ 0 - 3
iot/include/alibabacloud/iot/model/ListThingModelVersionRequest.h

@@ -37,8 +37,6 @@ namespace AlibabaCloud
 
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
-				std::string getResourceGroupId()const;
-				void setResourceGroupId(const std::string& resourceGroupId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -50,7 +48,6 @@ namespace AlibabaCloud
 
             private:
 				std::string accessKeyId_;
-				std::string resourceGroupId_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				std::string apiProduct_;

+ 0 - 3
iot/include/alibabacloud/iot/model/ListThingTemplatesRequest.h

@@ -37,8 +37,6 @@ namespace AlibabaCloud
 
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
-				std::string getResourceGroupId()const;
-				void setResourceGroupId(const std::string& resourceGroupId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getApiProduct()const;
@@ -48,7 +46,6 @@ namespace AlibabaCloud
 
             private:
 				std::string accessKeyId_;
-				std::string resourceGroupId_;
 				std::string iotInstanceId_;
 				std::string apiProduct_;
 				std::string apiRevision_;

+ 1 - 0
iot/include/alibabacloud/iot/model/PrintByTemplateResult.h

@@ -35,6 +35,7 @@ namespace AlibabaCloud
 				struct Data
 				{
 					int retryCount;
+					int maxRetryCount;
 					std::string deviceErrorCode;
 					std::string id;
 					std::string deviceErrorMessage;

+ 6 - 0
iot/include/alibabacloud/iot/model/QueryDeviceBySQLRequest.h

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				QueryDeviceBySQLRequest();
 				~QueryDeviceBySQLRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getSQL()const;
 				void setSQL(const std::string& sQL);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getApiProduct()const;
@@ -45,7 +49,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string sQL_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string apiProduct_;
 				std::string apiRevision_;

+ 66 - 0
iot/include/alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_QUERYEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT QueryEdgeInstanceMessageRoutingRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryEdgeInstanceMessageRoutingRequest();
+				~QueryEdgeInstanceMessageRoutingRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				int pageSize_;
+				int currentPage_;
+				std::string instanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYEDGEINSTANCEMESSAGEROUTINGREQUEST_H_

+ 91 - 0
iot/include/alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingResult.h

@@ -0,0 +1,91 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_QUERYEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT QueryEdgeInstanceMessageRoutingResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct MessageRoute
+					{
+						struct RouteContext
+						{
+							std::string targetFcServiceName;
+							std::string targetFcFunctionName;
+							std::string targetApplicationName;
+							std::string qos;
+							std::string sourceFcServiceName;
+							std::string targetStreamName;
+							std::string sourceFcFunctionName;
+							std::string sourceApplicationName;
+							std::string sourceStreamName;
+						};
+						std::string targetData;
+						std::string topicFilter;
+						std::string gmtCreate;
+						long gmtCreateTimestamp;
+						std::string sourceType;
+						std::string targetType;
+						std::string gmtModified;
+						int routeId;
+						long gmtModifiedTimestamp;
+						std::string sourceData;
+						RouteContext routeContext;
+						std::string name;
+					};
+					int pageSize;
+					int currentPage;
+					int total;
+					std::vector<MessageRoute> messageRouteList;
+				};
+
+
+				QueryEdgeInstanceMessageRoutingResult();
+				explicit QueryEdgeInstanceMessageRoutingResult(const std::string &payload);
+				~QueryEdgeInstanceMessageRoutingResult();
+				Data getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYEDGEINSTANCEMESSAGEROUTINGRESULT_H_

+ 5 - 4
iot/include/alibabacloud/iot/model/QueryJobResult.h

@@ -61,16 +61,17 @@ namespace AlibabaCloud
 						std::string targetProduct;
 					};
 					std::string status;
-					RolloutConfig rolloutConfig;
 					TimeoutConfig timeoutConfig;
-					std::string type;
+					long scheduledTime;
 					std::string description;
 					JobFile jobFile;
-					std::string utcCreate;
 					std::string jobDocument;
 					std::string jobName;
-					std::string utcModified;
 					TargetConfig targetConfig;
+					RolloutConfig rolloutConfig;
+					std::string type;
+					std::string utcCreate;
+					std::string utcModified;
 					std::string jobId;
 				};
 

+ 63 - 0
iot/include/alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_REFRESHDEVICETUNNELSHAREPASSWORDREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_REFRESHDEVICETUNNELSHAREPASSWORDREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT RefreshDeviceTunnelSharePasswordRequest : public RpcServiceRequest
+			{
+
+			public:
+				RefreshDeviceTunnelSharePasswordRequest();
+				~RefreshDeviceTunnelSharePasswordRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_REFRESHDEVICETUNNELSHAREPASSWORDREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordResult.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_REFRESHDEVICETUNNELSHAREPASSWORDRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_REFRESHDEVICETUNNELSHAREPASSWORDRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT RefreshDeviceTunnelSharePasswordResult : public ServiceResult
+			{
+			public:
+
+
+				RefreshDeviceTunnelSharePasswordResult();
+				explicit RefreshDeviceTunnelSharePasswordResult(const std::string &payload);
+				~RefreshDeviceTunnelSharePasswordResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+				std::string getPassword()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+				std::string password_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_REFRESHDEVICETUNNELSHAREPASSWORDRESULT_H_

+ 78 - 0
iot/include/alibabacloud/iot/model/ReleaseProductRequest.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_RELEASEPRODUCTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_RELEASEPRODUCTREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT ReleaseProductRequest : public RpcServiceRequest
+			{
+
+			public:
+				ReleaseProductRequest();
+				~ReleaseProductRequest();
+
+				int get_Template()const;
+				void set_Template(int _template);
+				std::string getCategoryKey()const;
+				void setCategoryKey(const std::string& categoryKey);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getTemplateIdentifier()const;
+				void setTemplateIdentifier(const std::string& templateIdentifier);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getTemplateName()const;
+				void setTemplateName(const std::string& templateName);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getCategoryName()const;
+				void setCategoryName(const std::string& categoryName);
+				std::string getBizTenantId()const;
+				void setBizTenantId(const std::string& bizTenantId);
+
+            private:
+				int _template_;
+				std::string categoryKey_;
+				std::string accessKeyId_;
+				std::string templateIdentifier_;
+				std::string iotInstanceId_;
+				std::string templateName_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string categoryName_;
+				std::string bizTenantId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_RELEASEPRODUCTREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/ReleaseProductResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_RELEASEPRODUCTRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_RELEASEPRODUCTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT ReleaseProductResult : public ServiceResult
+			{
+			public:
+
+
+				ReleaseProductResult();
+				explicit ReleaseProductResult(const std::string &payload);
+				~ReleaseProductResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_RELEASEPRODUCTRESULT_H_

+ 4 - 0
iot/include/alibabacloud/iot/model/SyncSpeechByCombinationResult.h

@@ -35,7 +35,11 @@ namespace AlibabaCloud
 				struct Data
 				{
 					int retryCount;
+					int maxRetryCount;
 					std::string id;
+					std::string deviceErrorCode;
+					std::string deviceErrorMessage;
+					bool success;
 				};
 
 

+ 84 - 0
iot/include/alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingRequest.h

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_UPDATEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_UPDATEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT UpdateEdgeInstanceMessageRoutingRequest : public RpcServiceRequest
+			{
+
+			public:
+				UpdateEdgeInstanceMessageRoutingRequest();
+				~UpdateEdgeInstanceMessageRoutingRequest();
+
+				std::string getSourceData()const;
+				void setSourceData(const std::string& sourceData);
+				std::string getTargetType()const;
+				void setTargetType(const std::string& targetType);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getSourceType()const;
+				void setSourceType(const std::string& sourceType);
+				std::string getTopicFilter()const;
+				void setTopicFilter(const std::string& topicFilter);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				long getRouteId()const;
+				void setRouteId(long routeId);
+				std::string getTargetData()const;
+				void setTargetData(const std::string& targetData);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getName()const;
+				void setName(const std::string& name);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				int getTargetIotHubQos()const;
+				void setTargetIotHubQos(int targetIotHubQos);
+
+            private:
+				std::string sourceData_;
+				std::string targetType_;
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string sourceType_;
+				std::string topicFilter_;
+				std::string instanceId_;
+				long routeId_;
+				std::string targetData_;
+				std::string apiProduct_;
+				std::string name_;
+				std::string apiRevision_;
+				int targetIotHubQos_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_UPDATEEDGEINSTANCEMESSAGEROUTINGREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_UPDATEEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_UPDATEEDGEINSTANCEMESSAGEROUTINGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/iot/IotExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Iot
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IOT_EXPORT UpdateEdgeInstanceMessageRoutingResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateEdgeInstanceMessageRoutingResult();
+				explicit UpdateEdgeInstanceMessageRoutingResult(const std::string &payload);
+				~UpdateEdgeInstanceMessageRoutingResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_UPDATEEDGEINSTANCEMESSAGEROUTINGRESULT_H_

+ 543 - 3
iot/src/IotClient.cc

@@ -31,21 +31,21 @@ IotClient::IotClient(const Credentials &credentials, const ClientConfiguration &
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "iot");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
 }
 
 IotClient::IotClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "iot");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
 }
 
 IotClient::IotClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "iot");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
 }
 
 IotClient::~IotClient()
@@ -1347,6 +1347,42 @@ IotClient::CancelOTATaskByJobOutcomeCallable IotClient::cancelOTATaskByJobCallab
 	return task->get_future();
 }
 
+IotClient::CancelReleaseProductOutcome IotClient::cancelReleaseProduct(const CancelReleaseProductRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CancelReleaseProductOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CancelReleaseProductOutcome(CancelReleaseProductResult(outcome.result()));
+	else
+		return CancelReleaseProductOutcome(outcome.error());
+}
+
+void IotClient::cancelReleaseProductAsync(const CancelReleaseProductRequest& request, const CancelReleaseProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, cancelReleaseProduct(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CancelReleaseProductOutcomeCallable IotClient::cancelReleaseProductCallable(const CancelReleaseProductRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CancelReleaseProductOutcome()>>(
+			[this, request]()
+			{
+			return this->cancelReleaseProduct(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::ClearEdgeInstanceDriverConfigsOutcome IotClient::clearEdgeInstanceDriverConfigs(const ClearEdgeInstanceDriverConfigsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1815,6 +1851,42 @@ IotClient::CreateEdgeInstanceDeploymentOutcomeCallable IotClient::createEdgeInst
 	return task->get_future();
 }
 
+IotClient::CreateEdgeInstanceMessageRoutingOutcome IotClient::createEdgeInstanceMessageRouting(const CreateEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateEdgeInstanceMessageRoutingOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateEdgeInstanceMessageRoutingOutcome(CreateEdgeInstanceMessageRoutingResult(outcome.result()));
+	else
+		return CreateEdgeInstanceMessageRoutingOutcome(outcome.error());
+}
+
+void IotClient::createEdgeInstanceMessageRoutingAsync(const CreateEdgeInstanceMessageRoutingRequest& request, const CreateEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createEdgeInstanceMessageRouting(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateEdgeInstanceMessageRoutingOutcomeCallable IotClient::createEdgeInstanceMessageRoutingCallable(const CreateEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateEdgeInstanceMessageRoutingOutcome()>>(
+			[this, request]()
+			{
+			return this->createEdgeInstanceMessageRouting(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateEdgeOssPreSignedAddressOutcome IotClient::createEdgeOssPreSignedAddress(const CreateEdgeOssPreSignedAddressRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2895,6 +2967,42 @@ IotClient::DeleteEdgeInstanceOutcomeCallable IotClient::deleteEdgeInstanceCallab
 	return task->get_future();
 }
 
+IotClient::DeleteEdgeInstanceMessageRoutingOutcome IotClient::deleteEdgeInstanceMessageRouting(const DeleteEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteEdgeInstanceMessageRoutingOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteEdgeInstanceMessageRoutingOutcome(DeleteEdgeInstanceMessageRoutingResult(outcome.result()));
+	else
+		return DeleteEdgeInstanceMessageRoutingOutcome(outcome.error());
+}
+
+void IotClient::deleteEdgeInstanceMessageRoutingAsync(const DeleteEdgeInstanceMessageRoutingRequest& request, const DeleteEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteEdgeInstanceMessageRouting(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteEdgeInstanceMessageRoutingOutcomeCallable IotClient::deleteEdgeInstanceMessageRoutingCallable(const DeleteEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteEdgeInstanceMessageRoutingOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteEdgeInstanceMessageRouting(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DeleteJobOutcome IotClient::deleteJob(const DeleteJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3219,6 +3327,42 @@ IotClient::DeleteSceneRuleOutcomeCallable IotClient::deleteSceneRuleCallable(con
 	return task->get_future();
 }
 
+IotClient::DeleteSpeechOutcome IotClient::deleteSpeech(const DeleteSpeechRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteSpeechOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteSpeechOutcome(DeleteSpeechResult(outcome.result()));
+	else
+		return DeleteSpeechOutcome(outcome.error());
+}
+
+void IotClient::deleteSpeechAsync(const DeleteSpeechRequest& request, const DeleteSpeechAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteSpeech(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteSpeechOutcomeCallable IotClient::deleteSpeechCallable(const DeleteSpeechRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteSpeechOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteSpeech(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DeleteSubscribeRelationOutcome IotClient::deleteSubscribeRelation(const DeleteSubscribeRelationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3327,6 +3471,78 @@ IotClient::DeleteTopicRouteTableOutcomeCallable IotClient::deleteTopicRouteTable
 	return task->get_future();
 }
 
+IotClient::DisableDeviceTunnelOutcome IotClient::disableDeviceTunnel(const DisableDeviceTunnelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DisableDeviceTunnelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DisableDeviceTunnelOutcome(DisableDeviceTunnelResult(outcome.result()));
+	else
+		return DisableDeviceTunnelOutcome(outcome.error());
+}
+
+void IotClient::disableDeviceTunnelAsync(const DisableDeviceTunnelRequest& request, const DisableDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, disableDeviceTunnel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DisableDeviceTunnelOutcomeCallable IotClient::disableDeviceTunnelCallable(const DisableDeviceTunnelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DisableDeviceTunnelOutcome()>>(
+			[this, request]()
+			{
+			return this->disableDeviceTunnel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::DisableDeviceTunnelShareOutcome IotClient::disableDeviceTunnelShare(const DisableDeviceTunnelShareRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DisableDeviceTunnelShareOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DisableDeviceTunnelShareOutcome(DisableDeviceTunnelShareResult(outcome.result()));
+	else
+		return DisableDeviceTunnelShareOutcome(outcome.error());
+}
+
+void IotClient::disableDeviceTunnelShareAsync(const DisableDeviceTunnelShareRequest& request, const DisableDeviceTunnelShareAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, disableDeviceTunnelShare(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DisableDeviceTunnelShareOutcomeCallable IotClient::disableDeviceTunnelShareCallable(const DisableDeviceTunnelShareRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DisableDeviceTunnelShareOutcome()>>(
+			[this, request]()
+			{
+			return this->disableDeviceTunnelShare(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DisableSceneRuleOutcome IotClient::disableSceneRule(const DisableSceneRuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3399,6 +3615,78 @@ IotClient::DisableThingOutcomeCallable IotClient::disableThingCallable(const Dis
 	return task->get_future();
 }
 
+IotClient::EnableDeviceTunnelOutcome IotClient::enableDeviceTunnel(const EnableDeviceTunnelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return EnableDeviceTunnelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return EnableDeviceTunnelOutcome(EnableDeviceTunnelResult(outcome.result()));
+	else
+		return EnableDeviceTunnelOutcome(outcome.error());
+}
+
+void IotClient::enableDeviceTunnelAsync(const EnableDeviceTunnelRequest& request, const EnableDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, enableDeviceTunnel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::EnableDeviceTunnelOutcomeCallable IotClient::enableDeviceTunnelCallable(const EnableDeviceTunnelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<EnableDeviceTunnelOutcome()>>(
+			[this, request]()
+			{
+			return this->enableDeviceTunnel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::EnableDeviceTunnelShareOutcome IotClient::enableDeviceTunnelShare(const EnableDeviceTunnelShareRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return EnableDeviceTunnelShareOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return EnableDeviceTunnelShareOutcome(EnableDeviceTunnelShareResult(outcome.result()));
+	else
+		return EnableDeviceTunnelShareOutcome(outcome.error());
+}
+
+void IotClient::enableDeviceTunnelShareAsync(const EnableDeviceTunnelShareRequest& request, const EnableDeviceTunnelShareAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, enableDeviceTunnelShare(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::EnableDeviceTunnelShareOutcomeCallable IotClient::enableDeviceTunnelShareCallable(const EnableDeviceTunnelShareRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<EnableDeviceTunnelShareOutcome()>>(
+			[this, request]()
+			{
+			return this->enableDeviceTunnelShare(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::EnableSceneRuleOutcome IotClient::enableSceneRule(const EnableSceneRuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3687,6 +3975,78 @@ IotClient::GetDeviceStatusOutcomeCallable IotClient::getDeviceStatusCallable(con
 	return task->get_future();
 }
 
+IotClient::GetDeviceTunnelShareStatusOutcome IotClient::getDeviceTunnelShareStatus(const GetDeviceTunnelShareStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetDeviceTunnelShareStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetDeviceTunnelShareStatusOutcome(GetDeviceTunnelShareStatusResult(outcome.result()));
+	else
+		return GetDeviceTunnelShareStatusOutcome(outcome.error());
+}
+
+void IotClient::getDeviceTunnelShareStatusAsync(const GetDeviceTunnelShareStatusRequest& request, const GetDeviceTunnelShareStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getDeviceTunnelShareStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::GetDeviceTunnelShareStatusOutcomeCallable IotClient::getDeviceTunnelShareStatusCallable(const GetDeviceTunnelShareStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetDeviceTunnelShareStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->getDeviceTunnelShareStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::GetDeviceTunnelStatusOutcome IotClient::getDeviceTunnelStatus(const GetDeviceTunnelStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetDeviceTunnelStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetDeviceTunnelStatusOutcome(GetDeviceTunnelStatusResult(outcome.result()));
+	else
+		return GetDeviceTunnelStatusOutcome(outcome.error());
+}
+
+void IotClient::getDeviceTunnelStatusAsync(const GetDeviceTunnelStatusRequest& request, const GetDeviceTunnelStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getDeviceTunnelStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::GetDeviceTunnelStatusOutcomeCallable IotClient::getDeviceTunnelStatusCallable(const GetDeviceTunnelStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetDeviceTunnelStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->getDeviceTunnelStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::GetEdgeDriverVersionOutcome IotClient::getEdgeDriverVersion(const GetEdgeDriverVersionRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3795,6 +4155,42 @@ IotClient::GetEdgeInstanceDeploymentOutcomeCallable IotClient::getEdgeInstanceDe
 	return task->get_future();
 }
 
+IotClient::GetEdgeInstanceMessageRoutingOutcome IotClient::getEdgeInstanceMessageRouting(const GetEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetEdgeInstanceMessageRoutingOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetEdgeInstanceMessageRoutingOutcome(GetEdgeInstanceMessageRoutingResult(outcome.result()));
+	else
+		return GetEdgeInstanceMessageRoutingOutcome(outcome.error());
+}
+
+void IotClient::getEdgeInstanceMessageRoutingAsync(const GetEdgeInstanceMessageRoutingRequest& request, const GetEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getEdgeInstanceMessageRouting(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::GetEdgeInstanceMessageRoutingOutcomeCallable IotClient::getEdgeInstanceMessageRoutingCallable(const GetEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetEdgeInstanceMessageRoutingOutcome()>>(
+			[this, request]()
+			{
+			return this->getEdgeInstanceMessageRouting(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::GetGatewayBySubDeviceOutcome IotClient::getGatewayBySubDevice(const GetGatewayBySubDeviceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -6819,6 +7215,42 @@ IotClient::QueryEdgeInstanceHistoricDeploymentOutcomeCallable IotClient::queryEd
 	return task->get_future();
 }
 
+IotClient::QueryEdgeInstanceMessageRoutingOutcome IotClient::queryEdgeInstanceMessageRouting(const QueryEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryEdgeInstanceMessageRoutingOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryEdgeInstanceMessageRoutingOutcome(QueryEdgeInstanceMessageRoutingResult(outcome.result()));
+	else
+		return QueryEdgeInstanceMessageRoutingOutcome(outcome.error());
+}
+
+void IotClient::queryEdgeInstanceMessageRoutingAsync(const QueryEdgeInstanceMessageRoutingRequest& request, const QueryEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryEdgeInstanceMessageRouting(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryEdgeInstanceMessageRoutingOutcomeCallable IotClient::queryEdgeInstanceMessageRoutingCallable(const QueryEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryEdgeInstanceMessageRoutingOutcome()>>(
+			[this, request]()
+			{
+			return this->queryEdgeInstanceMessageRouting(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryEdgeInstanceSceneRuleOutcome IotClient::queryEdgeInstanceSceneRule(const QueryEdgeInstanceSceneRuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7647,6 +8079,42 @@ IotClient::RRpcOutcomeCallable IotClient::rRpcCallable(const RRpcRequest &reques
 	return task->get_future();
 }
 
+IotClient::RefreshDeviceTunnelSharePasswordOutcome IotClient::refreshDeviceTunnelSharePassword(const RefreshDeviceTunnelSharePasswordRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return RefreshDeviceTunnelSharePasswordOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return RefreshDeviceTunnelSharePasswordOutcome(RefreshDeviceTunnelSharePasswordResult(outcome.result()));
+	else
+		return RefreshDeviceTunnelSharePasswordOutcome(outcome.error());
+}
+
+void IotClient::refreshDeviceTunnelSharePasswordAsync(const RefreshDeviceTunnelSharePasswordRequest& request, const RefreshDeviceTunnelSharePasswordAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, refreshDeviceTunnelSharePassword(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::RefreshDeviceTunnelSharePasswordOutcomeCallable IotClient::refreshDeviceTunnelSharePasswordCallable(const RefreshDeviceTunnelSharePasswordRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<RefreshDeviceTunnelSharePasswordOutcome()>>(
+			[this, request]()
+			{
+			return this->refreshDeviceTunnelSharePassword(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::RegisterDeviceOutcome IotClient::registerDevice(const RegisterDeviceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7719,6 +8187,42 @@ IotClient::ReleaseEdgeDriverVersionOutcomeCallable IotClient::releaseEdgeDriverV
 	return task->get_future();
 }
 
+IotClient::ReleaseProductOutcome IotClient::releaseProduct(const ReleaseProductRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ReleaseProductOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ReleaseProductOutcome(ReleaseProductResult(outcome.result()));
+	else
+		return ReleaseProductOutcome(outcome.error());
+}
+
+void IotClient::releaseProductAsync(const ReleaseProductRequest& request, const ReleaseProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, releaseProduct(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::ReleaseProductOutcomeCallable IotClient::releaseProductCallable(const ReleaseProductRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ReleaseProductOutcome()>>(
+			[this, request]()
+			{
+			return this->releaseProduct(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::RemoveThingTopoOutcome IotClient::removeThingTopo(const RemoveThingTopoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8655,6 +9159,42 @@ IotClient::UpdateEdgeInstanceChannelOutcomeCallable IotClient::updateEdgeInstanc
 	return task->get_future();
 }
 
+IotClient::UpdateEdgeInstanceMessageRoutingOutcome IotClient::updateEdgeInstanceMessageRouting(const UpdateEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateEdgeInstanceMessageRoutingOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateEdgeInstanceMessageRoutingOutcome(UpdateEdgeInstanceMessageRoutingResult(outcome.result()));
+	else
+		return UpdateEdgeInstanceMessageRoutingOutcome(outcome.error());
+}
+
+void IotClient::updateEdgeInstanceMessageRoutingAsync(const UpdateEdgeInstanceMessageRoutingRequest& request, const UpdateEdgeInstanceMessageRoutingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateEdgeInstanceMessageRouting(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::UpdateEdgeInstanceMessageRoutingOutcomeCallable IotClient::updateEdgeInstanceMessageRoutingCallable(const UpdateEdgeInstanceMessageRoutingRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateEdgeInstanceMessageRoutingOutcome()>>(
+			[this, request]()
+			{
+			return this->updateEdgeInstanceMessageRouting(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::UpdateJobOutcome IotClient::updateJob(const UpdateJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 22 - 0
iot/src/model/BatchGetDeviceStateRequest.cc

@@ -27,6 +27,17 @@ BatchGetDeviceStateRequest::BatchGetDeviceStateRequest() :
 BatchGetDeviceStateRequest::~BatchGetDeviceStateRequest()
 {}
 
+std::string BatchGetDeviceStateRequest::getRealTenantId()const
+{
+	return realTenantId_;
+}
+
+void BatchGetDeviceStateRequest::setRealTenantId(const std::string& realTenantId)
+{
+	realTenantId_ = realTenantId;
+	setParameter("RealTenantId", realTenantId);
+}
+
 std::string BatchGetDeviceStateRequest::getAccessKeyId()const
 {
 	return accessKeyId_;
@@ -38,6 +49,17 @@ void BatchGetDeviceStateRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string BatchGetDeviceStateRequest::getRealTripartiteKey()const
+{
+	return realTripartiteKey_;
+}
+
+void BatchGetDeviceStateRequest::setRealTripartiteKey(const std::string& realTripartiteKey)
+{
+	realTripartiteKey_ = realTripartiteKey;
+	setParameter("RealTripartiteKey", realTripartiteKey);
+}
+
 std::vector<std::string> BatchGetDeviceStateRequest::getIotId()const
 {
 	return iotId_;

+ 117 - 0
iot/src/model/CancelReleaseProductRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/CancelReleaseProductRequest.h>
+
+using AlibabaCloud::Iot::Model::CancelReleaseProductRequest;
+
+CancelReleaseProductRequest::CancelReleaseProductRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CancelReleaseProduct")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CancelReleaseProductRequest::~CancelReleaseProductRequest()
+{}
+
+std::string CancelReleaseProductRequest::getRealTenantId()const
+{
+	return realTenantId_;
+}
+
+void CancelReleaseProductRequest::setRealTenantId(const std::string& realTenantId)
+{
+	realTenantId_ = realTenantId;
+	setParameter("RealTenantId", realTenantId);
+}
+
+std::string CancelReleaseProductRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void CancelReleaseProductRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string CancelReleaseProductRequest::getRealTripartiteKey()const
+{
+	return realTripartiteKey_;
+}
+
+void CancelReleaseProductRequest::setRealTripartiteKey(const std::string& realTripartiteKey)
+{
+	realTripartiteKey_ = realTripartiteKey;
+	setParameter("RealTripartiteKey", realTripartiteKey);
+}
+
+std::string CancelReleaseProductRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void CancelReleaseProductRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string CancelReleaseProductRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void CancelReleaseProductRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string CancelReleaseProductRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CancelReleaseProductRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CancelReleaseProductRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CancelReleaseProductRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string CancelReleaseProductRequest::getBizTenantId()const
+{
+	return bizTenantId_;
+}
+
+void CancelReleaseProductRequest::setBizTenantId(const std::string& bizTenantId)
+{
+	bizTenantId_ = bizTenantId;
+	setParameter("BizTenantId", bizTenantId);
+}
+

+ 65 - 0
iot/src/model/CancelReleaseProductResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/CancelReleaseProductResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+CancelReleaseProductResult::CancelReleaseProductResult() :
+	ServiceResult()
+{}
+
+CancelReleaseProductResult::CancelReleaseProductResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CancelReleaseProductResult::~CancelReleaseProductResult()
+{}
+
+void CancelReleaseProductResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+
+}
+
+std::string CancelReleaseProductResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string CancelReleaseProductResult::getCode()const
+{
+	return code_;
+}
+
+bool CancelReleaseProductResult::getSuccess()const
+{
+	return success_;
+}
+

+ 161 - 0
iot/src/model/CreateEdgeInstanceMessageRoutingRequest.cc

@@ -0,0 +1,161 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateEdgeInstanceMessageRoutingRequest;
+
+CreateEdgeInstanceMessageRoutingRequest::CreateEdgeInstanceMessageRoutingRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateEdgeInstanceMessageRouting")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateEdgeInstanceMessageRoutingRequest::~CreateEdgeInstanceMessageRoutingRequest()
+{}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getSourceData()const
+{
+	return sourceData_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setSourceData(const std::string& sourceData)
+{
+	sourceData_ = sourceData;
+	setParameter("SourceData", sourceData);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getTargetType()const
+{
+	return targetType_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setTargetType(const std::string& targetType)
+{
+	targetType_ = targetType;
+	setParameter("TargetType", targetType);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getSourceType()const
+{
+	return sourceType_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setSourceType(const std::string& sourceType)
+{
+	sourceType_ = sourceType;
+	setParameter("SourceType", sourceType);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getTopicFilter()const
+{
+	return topicFilter_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setTopicFilter(const std::string& topicFilter)
+{
+	topicFilter_ = topicFilter;
+	setParameter("TopicFilter", topicFilter);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getTargetData()const
+{
+	return targetData_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setTargetData(const std::string& targetData)
+{
+	targetData_ = targetData;
+	setParameter("TargetData", targetData);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getName()const
+{
+	return name_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setName(const std::string& name)
+{
+	name_ = name;
+	setParameter("Name", name);
+}
+
+std::string CreateEdgeInstanceMessageRoutingRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+int CreateEdgeInstanceMessageRoutingRequest::getTargetIotHubQos()const
+{
+	return targetIotHubQos_;
+}
+
+void CreateEdgeInstanceMessageRoutingRequest::setTargetIotHubQos(int targetIotHubQos)
+{
+	targetIotHubQos_ = targetIotHubQos;
+	setParameter("TargetIotHubQos", std::to_string(targetIotHubQos));
+}
+

+ 72 - 0
iot/src/model/CreateEdgeInstanceMessageRoutingResult.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/CreateEdgeInstanceMessageRoutingResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+CreateEdgeInstanceMessageRoutingResult::CreateEdgeInstanceMessageRoutingResult() :
+	ServiceResult()
+{}
+
+CreateEdgeInstanceMessageRoutingResult::CreateEdgeInstanceMessageRoutingResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateEdgeInstanceMessageRoutingResult::~CreateEdgeInstanceMessageRoutingResult()
+{}
+
+void CreateEdgeInstanceMessageRoutingResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["RouteId"].isNull())
+		routeId_ = std::stol(value["RouteId"].asString());
+
+}
+
+long CreateEdgeInstanceMessageRoutingResult::getRouteId()const
+{
+	return routeId_;
+}
+
+std::string CreateEdgeInstanceMessageRoutingResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string CreateEdgeInstanceMessageRoutingResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateEdgeInstanceMessageRoutingResult::getSuccess()const
+{
+	return success_;
+}
+

+ 11 - 0
iot/src/model/CreateJobRequest.cc

@@ -148,3 +148,14 @@ void CreateJobRequest::setApiRevision(const std::string& apiRevision)
 	setBodyParameter("ApiRevision", apiRevision);
 }
 
+long CreateJobRequest::getScheduledTime()const
+{
+	return scheduledTime_;
+}
+
+void CreateJobRequest::setScheduledTime(long scheduledTime)
+{
+	scheduledTime_ = scheduledTime;
+	setParameter("ScheduledTime", std::to_string(scheduledTime));
+}
+

+ 22 - 0
iot/src/model/DeleteDevicePropRequest.cc

@@ -27,6 +27,17 @@ DeleteDevicePropRequest::DeleteDevicePropRequest() :
 DeleteDevicePropRequest::~DeleteDevicePropRequest()
 {}
 
+std::string DeleteDevicePropRequest::getRealTenantId()const
+{
+	return realTenantId_;
+}
+
+void DeleteDevicePropRequest::setRealTenantId(const std::string& realTenantId)
+{
+	realTenantId_ = realTenantId;
+	setParameter("RealTenantId", realTenantId);
+}
+
 std::string DeleteDevicePropRequest::getAccessKeyId()const
 {
 	return accessKeyId_;
@@ -49,6 +60,17 @@ void DeleteDevicePropRequest::setPropKey(const std::string& propKey)
 	setParameter("PropKey", propKey);
 }
 
+std::string DeleteDevicePropRequest::getRealTripartiteKey()const
+{
+	return realTripartiteKey_;
+}
+
+void DeleteDevicePropRequest::setRealTripartiteKey(const std::string& realTripartiteKey)
+{
+	realTripartiteKey_ = realTripartiteKey;
+	setParameter("RealTripartiteKey", realTripartiteKey);
+}
+
 std::string DeleteDevicePropRequest::getIotId()const
 {
 	return iotId_;

+ 95 - 0
iot/src/model/DeleteEdgeInstanceMessageRoutingRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingRequest.h>
+
+using AlibabaCloud::Iot::Model::DeleteEdgeInstanceMessageRoutingRequest;
+
+DeleteEdgeInstanceMessageRoutingRequest::DeleteEdgeInstanceMessageRoutingRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DeleteEdgeInstanceMessageRouting")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteEdgeInstanceMessageRoutingRequest::~DeleteEdgeInstanceMessageRoutingRequest()
+{}
+
+std::string DeleteEdgeInstanceMessageRoutingRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DeleteEdgeInstanceMessageRoutingRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DeleteEdgeInstanceMessageRoutingRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DeleteEdgeInstanceMessageRoutingRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string DeleteEdgeInstanceMessageRoutingRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DeleteEdgeInstanceMessageRoutingRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+long DeleteEdgeInstanceMessageRoutingRequest::getRouteId()const
+{
+	return routeId_;
+}
+
+void DeleteEdgeInstanceMessageRoutingRequest::setRouteId(long routeId)
+{
+	routeId_ = routeId;
+	setParameter("RouteId", std::to_string(routeId));
+}
+
+std::string DeleteEdgeInstanceMessageRoutingRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DeleteEdgeInstanceMessageRoutingRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DeleteEdgeInstanceMessageRoutingRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DeleteEdgeInstanceMessageRoutingRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 65 - 0
iot/src/model/DeleteEdgeInstanceMessageRoutingResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DeleteEdgeInstanceMessageRoutingResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DeleteEdgeInstanceMessageRoutingResult::DeleteEdgeInstanceMessageRoutingResult() :
+	ServiceResult()
+{}
+
+DeleteEdgeInstanceMessageRoutingResult::DeleteEdgeInstanceMessageRoutingResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteEdgeInstanceMessageRoutingResult::~DeleteEdgeInstanceMessageRoutingResult()
+{}
+
+void DeleteEdgeInstanceMessageRoutingResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string DeleteEdgeInstanceMessageRoutingResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DeleteEdgeInstanceMessageRoutingResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteEdgeInstanceMessageRoutingResult::getSuccess()const
+{
+	return success_;
+}
+

+ 75 - 0
iot/src/model/DeleteSpeechRequest.cc

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DeleteSpeechRequest.h>
+
+using AlibabaCloud::Iot::Model::DeleteSpeechRequest;
+
+DeleteSpeechRequest::DeleteSpeechRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DeleteSpeech")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteSpeechRequest::~DeleteSpeechRequest()
+{}
+
+std::string DeleteSpeechRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DeleteSpeechRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::vector<std::string> DeleteSpeechRequest::getSpeechCodeList()const
+{
+	return speechCodeList_;
+}
+
+void DeleteSpeechRequest::setSpeechCodeList(const std::vector<std::string>& speechCodeList)
+{
+	speechCodeList_ = speechCodeList;
+	for(int dep1 = 0; dep1!= speechCodeList.size(); dep1++) {
+		setBodyParameter("SpeechCodeList."+ std::to_string(dep1), speechCodeList.at(dep1));
+	}
+}
+
+std::string DeleteSpeechRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DeleteSpeechRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DeleteSpeechRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DeleteSpeechRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 65 - 0
iot/src/model/DeleteSpeechResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DeleteSpeechResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DeleteSpeechResult::DeleteSpeechResult() :
+	ServiceResult()
+{}
+
+DeleteSpeechResult::DeleteSpeechResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteSpeechResult::~DeleteSpeechResult()
+{}
+
+void DeleteSpeechResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string DeleteSpeechResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DeleteSpeechResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteSpeechResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/DisableDeviceTunnelRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DisableDeviceTunnelRequest.h>
+
+using AlibabaCloud::Iot::Model::DisableDeviceTunnelRequest;
+
+DisableDeviceTunnelRequest::DisableDeviceTunnelRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DisableDeviceTunnel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DisableDeviceTunnelRequest::~DisableDeviceTunnelRequest()
+{}
+
+std::string DisableDeviceTunnelRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DisableDeviceTunnelRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DisableDeviceTunnelRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DisableDeviceTunnelRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string DisableDeviceTunnelRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void DisableDeviceTunnelRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string DisableDeviceTunnelRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DisableDeviceTunnelRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DisableDeviceTunnelRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DisableDeviceTunnelRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string DisableDeviceTunnelRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void DisableDeviceTunnelRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 65 - 0
iot/src/model/DisableDeviceTunnelResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DisableDeviceTunnelResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DisableDeviceTunnelResult::DisableDeviceTunnelResult() :
+	ServiceResult()
+{}
+
+DisableDeviceTunnelResult::DisableDeviceTunnelResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DisableDeviceTunnelResult::~DisableDeviceTunnelResult()
+{}
+
+void DisableDeviceTunnelResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string DisableDeviceTunnelResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DisableDeviceTunnelResult::getCode()const
+{
+	return code_;
+}
+
+bool DisableDeviceTunnelResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/DisableDeviceTunnelShareRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DisableDeviceTunnelShareRequest.h>
+
+using AlibabaCloud::Iot::Model::DisableDeviceTunnelShareRequest;
+
+DisableDeviceTunnelShareRequest::DisableDeviceTunnelShareRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DisableDeviceTunnelShare")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DisableDeviceTunnelShareRequest::~DisableDeviceTunnelShareRequest()
+{}
+
+std::string DisableDeviceTunnelShareRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DisableDeviceTunnelShareRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DisableDeviceTunnelShareRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DisableDeviceTunnelShareRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string DisableDeviceTunnelShareRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void DisableDeviceTunnelShareRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string DisableDeviceTunnelShareRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DisableDeviceTunnelShareRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DisableDeviceTunnelShareRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DisableDeviceTunnelShareRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string DisableDeviceTunnelShareRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void DisableDeviceTunnelShareRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 65 - 0
iot/src/model/DisableDeviceTunnelShareResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/DisableDeviceTunnelShareResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DisableDeviceTunnelShareResult::DisableDeviceTunnelShareResult() :
+	ServiceResult()
+{}
+
+DisableDeviceTunnelShareResult::DisableDeviceTunnelShareResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DisableDeviceTunnelShareResult::~DisableDeviceTunnelShareResult()
+{}
+
+void DisableDeviceTunnelShareResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+
+}
+
+std::string DisableDeviceTunnelShareResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DisableDeviceTunnelShareResult::getCode()const
+{
+	return code_;
+}
+
+bool DisableDeviceTunnelShareResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/EnableDeviceTunnelRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/EnableDeviceTunnelRequest.h>
+
+using AlibabaCloud::Iot::Model::EnableDeviceTunnelRequest;
+
+EnableDeviceTunnelRequest::EnableDeviceTunnelRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "EnableDeviceTunnel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+EnableDeviceTunnelRequest::~EnableDeviceTunnelRequest()
+{}
+
+std::string EnableDeviceTunnelRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void EnableDeviceTunnelRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string EnableDeviceTunnelRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void EnableDeviceTunnelRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string EnableDeviceTunnelRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void EnableDeviceTunnelRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string EnableDeviceTunnelRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void EnableDeviceTunnelRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string EnableDeviceTunnelRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void EnableDeviceTunnelRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string EnableDeviceTunnelRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void EnableDeviceTunnelRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 65 - 0
iot/src/model/EnableDeviceTunnelResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/EnableDeviceTunnelResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+EnableDeviceTunnelResult::EnableDeviceTunnelResult() :
+	ServiceResult()
+{}
+
+EnableDeviceTunnelResult::EnableDeviceTunnelResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+EnableDeviceTunnelResult::~EnableDeviceTunnelResult()
+{}
+
+void EnableDeviceTunnelResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string EnableDeviceTunnelResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string EnableDeviceTunnelResult::getCode()const
+{
+	return code_;
+}
+
+bool EnableDeviceTunnelResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/EnableDeviceTunnelShareRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/EnableDeviceTunnelShareRequest.h>
+
+using AlibabaCloud::Iot::Model::EnableDeviceTunnelShareRequest;
+
+EnableDeviceTunnelShareRequest::EnableDeviceTunnelShareRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "EnableDeviceTunnelShare")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+EnableDeviceTunnelShareRequest::~EnableDeviceTunnelShareRequest()
+{}
+
+std::string EnableDeviceTunnelShareRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void EnableDeviceTunnelShareRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string EnableDeviceTunnelShareRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void EnableDeviceTunnelShareRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string EnableDeviceTunnelShareRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void EnableDeviceTunnelShareRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string EnableDeviceTunnelShareRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void EnableDeviceTunnelShareRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string EnableDeviceTunnelShareRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void EnableDeviceTunnelShareRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string EnableDeviceTunnelShareRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void EnableDeviceTunnelShareRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 65 - 0
iot/src/model/EnableDeviceTunnelShareResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/EnableDeviceTunnelShareResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+EnableDeviceTunnelShareResult::EnableDeviceTunnelShareResult() :
+	ServiceResult()
+{}
+
+EnableDeviceTunnelShareResult::EnableDeviceTunnelShareResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+EnableDeviceTunnelShareResult::~EnableDeviceTunnelShareResult()
+{}
+
+void EnableDeviceTunnelShareResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+
+}
+
+std::string EnableDeviceTunnelShareResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string EnableDeviceTunnelShareResult::getCode()const
+{
+	return code_;
+}
+
+bool EnableDeviceTunnelShareResult::getSuccess()const
+{
+	return success_;
+}
+

+ 2 - 0
iot/src/model/GetDeviceStatusResult.cc

@@ -42,6 +42,8 @@ void GetDeviceStatusResult::parse(const std::string &payload)
 	auto dataNode = value["Data"];
 	if(!dataNode["Status"].isNull())
 		data_.status = dataNode["Status"].asString();
+	if(!dataNode["Timestamp"].isNull())
+		data_.timestamp = std::stol(dataNode["Timestamp"].asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

+ 95 - 0
iot/src/model/GetDeviceTunnelShareStatusRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/GetDeviceTunnelShareStatusRequest.h>
+
+using AlibabaCloud::Iot::Model::GetDeviceTunnelShareStatusRequest;
+
+GetDeviceTunnelShareStatusRequest::GetDeviceTunnelShareStatusRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "GetDeviceTunnelShareStatus")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+GetDeviceTunnelShareStatusRequest::~GetDeviceTunnelShareStatusRequest()
+{}
+
+std::string GetDeviceTunnelShareStatusRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void GetDeviceTunnelShareStatusRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string GetDeviceTunnelShareStatusRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void GetDeviceTunnelShareStatusRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string GetDeviceTunnelShareStatusRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void GetDeviceTunnelShareStatusRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string GetDeviceTunnelShareStatusRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void GetDeviceTunnelShareStatusRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string GetDeviceTunnelShareStatusRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void GetDeviceTunnelShareStatusRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string GetDeviceTunnelShareStatusRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void GetDeviceTunnelShareStatusRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 79 - 0
iot/src/model/GetDeviceTunnelShareStatusResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/GetDeviceTunnelShareStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+GetDeviceTunnelShareStatusResult::GetDeviceTunnelShareStatusResult() :
+	ServiceResult()
+{}
+
+GetDeviceTunnelShareStatusResult::GetDeviceTunnelShareStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetDeviceTunnelShareStatusResult::~GetDeviceTunnelShareStatusResult()
+{}
+
+void GetDeviceTunnelShareStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["ShareId"].isNull())
+		data_.shareId = dataNode["ShareId"].asString();
+	if(!dataNode["Password"].isNull())
+		data_.password = dataNode["Password"].asString();
+	if(!dataNode["IsOpen"].isNull())
+		data_.isOpen = dataNode["IsOpen"].asString() == "true";
+	if(!dataNode["GmtOpened"].isNull())
+		data_.gmtOpened = std::stol(dataNode["GmtOpened"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+
+}
+
+GetDeviceTunnelShareStatusResult::Data GetDeviceTunnelShareStatusResult::getData()const
+{
+	return data_;
+}
+
+std::string GetDeviceTunnelShareStatusResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string GetDeviceTunnelShareStatusResult::getCode()const
+{
+	return code_;
+}
+
+bool GetDeviceTunnelShareStatusResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/GetDeviceTunnelStatusRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/GetDeviceTunnelStatusRequest.h>
+
+using AlibabaCloud::Iot::Model::GetDeviceTunnelStatusRequest;
+
+GetDeviceTunnelStatusRequest::GetDeviceTunnelStatusRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "GetDeviceTunnelStatus")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+GetDeviceTunnelStatusRequest::~GetDeviceTunnelStatusRequest()
+{}
+
+std::string GetDeviceTunnelStatusRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void GetDeviceTunnelStatusRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string GetDeviceTunnelStatusRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void GetDeviceTunnelStatusRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string GetDeviceTunnelStatusRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void GetDeviceTunnelStatusRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string GetDeviceTunnelStatusRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void GetDeviceTunnelStatusRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string GetDeviceTunnelStatusRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void GetDeviceTunnelStatusRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string GetDeviceTunnelStatusRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void GetDeviceTunnelStatusRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 72 - 0
iot/src/model/GetDeviceTunnelStatusResult.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/GetDeviceTunnelStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+GetDeviceTunnelStatusResult::GetDeviceTunnelStatusResult() :
+	ServiceResult()
+{}
+
+GetDeviceTunnelStatusResult::GetDeviceTunnelStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetDeviceTunnelStatusResult::~GetDeviceTunnelStatusResult()
+{}
+
+void GetDeviceTunnelStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string GetDeviceTunnelStatusResult::getData()const
+{
+	return data_;
+}
+
+std::string GetDeviceTunnelStatusResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string GetDeviceTunnelStatusResult::getCode()const
+{
+	return code_;
+}
+
+bool GetDeviceTunnelStatusResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/GetEdgeInstanceMessageRoutingRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/GetEdgeInstanceMessageRoutingRequest.h>
+
+using AlibabaCloud::Iot::Model::GetEdgeInstanceMessageRoutingRequest;
+
+GetEdgeInstanceMessageRoutingRequest::GetEdgeInstanceMessageRoutingRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "GetEdgeInstanceMessageRouting")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+GetEdgeInstanceMessageRoutingRequest::~GetEdgeInstanceMessageRoutingRequest()
+{}
+
+std::string GetEdgeInstanceMessageRoutingRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void GetEdgeInstanceMessageRoutingRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string GetEdgeInstanceMessageRoutingRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void GetEdgeInstanceMessageRoutingRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string GetEdgeInstanceMessageRoutingRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void GetEdgeInstanceMessageRoutingRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+long GetEdgeInstanceMessageRoutingRequest::getRouteId()const
+{
+	return routeId_;
+}
+
+void GetEdgeInstanceMessageRoutingRequest::setRouteId(long routeId)
+{
+	routeId_ = routeId;
+	setParameter("RouteId", std::to_string(routeId));
+}
+
+std::string GetEdgeInstanceMessageRoutingRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void GetEdgeInstanceMessageRoutingRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string GetEdgeInstanceMessageRoutingRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void GetEdgeInstanceMessageRoutingRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 110 - 0
iot/src/model/GetEdgeInstanceMessageRoutingResult.cc

@@ -0,0 +1,110 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/GetEdgeInstanceMessageRoutingResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+GetEdgeInstanceMessageRoutingResult::GetEdgeInstanceMessageRoutingResult() :
+	ServiceResult()
+{}
+
+GetEdgeInstanceMessageRoutingResult::GetEdgeInstanceMessageRoutingResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetEdgeInstanceMessageRoutingResult::~GetEdgeInstanceMessageRoutingResult()
+{}
+
+void GetEdgeInstanceMessageRoutingResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["TopicFilter"].isNull())
+		data_.topicFilter = dataNode["TopicFilter"].asString();
+	if(!dataNode["SourceType"].isNull())
+		data_.sourceType = dataNode["SourceType"].asString();
+	if(!dataNode["Name"].isNull())
+		data_.name = dataNode["Name"].asString();
+	if(!dataNode["SourceData"].isNull())
+		data_.sourceData = dataNode["SourceData"].asString();
+	if(!dataNode["TargetType"].isNull())
+		data_.targetType = dataNode["TargetType"].asString();
+	if(!dataNode["TargetData"].isNull())
+		data_.targetData = dataNode["TargetData"].asString();
+	if(!dataNode["GmtCreate"].isNull())
+		data_.gmtCreate = dataNode["GmtCreate"].asString();
+	if(!dataNode["GmtModified"].isNull())
+		data_.gmtModified = dataNode["GmtModified"].asString();
+	if(!dataNode["GmtCreateTimestamp"].isNull())
+		data_.gmtCreateTimestamp = std::stol(dataNode["GmtCreateTimestamp"].asString());
+	if(!dataNode["GmtModifiedTimestamp"].isNull())
+		data_.gmtModifiedTimestamp = std::stol(dataNode["GmtModifiedTimestamp"].asString());
+	auto routeContextNode = dataNode["RouteContext"];
+	if(!routeContextNode["SourceFcServiceName"].isNull())
+		data_.routeContext.sourceFcServiceName = routeContextNode["SourceFcServiceName"].asString();
+	if(!routeContextNode["SourceFcFunctionName"].isNull())
+		data_.routeContext.sourceFcFunctionName = routeContextNode["SourceFcFunctionName"].asString();
+	if(!routeContextNode["SourceStreamName"].isNull())
+		data_.routeContext.sourceStreamName = routeContextNode["SourceStreamName"].asString();
+	if(!routeContextNode["SourceApplicationName"].isNull())
+		data_.routeContext.sourceApplicationName = routeContextNode["SourceApplicationName"].asString();
+	if(!routeContextNode["TargetFcServiceName"].isNull())
+		data_.routeContext.targetFcServiceName = routeContextNode["TargetFcServiceName"].asString();
+	if(!routeContextNode["TargetFcFunctionName"].isNull())
+		data_.routeContext.targetFcFunctionName = routeContextNode["TargetFcFunctionName"].asString();
+	if(!routeContextNode["TargetStreamName"].isNull())
+		data_.routeContext.targetStreamName = routeContextNode["TargetStreamName"].asString();
+	if(!routeContextNode["TargetApplicationName"].isNull())
+		data_.routeContext.targetApplicationName = routeContextNode["TargetApplicationName"].asString();
+	if(!routeContextNode["Qos"].isNull())
+		data_.routeContext.qos = routeContextNode["Qos"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+GetEdgeInstanceMessageRoutingResult::Data GetEdgeInstanceMessageRoutingResult::getData()const
+{
+	return data_;
+}
+
+std::string GetEdgeInstanceMessageRoutingResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string GetEdgeInstanceMessageRoutingResult::getCode()const
+{
+	return code_;
+}
+
+bool GetEdgeInstanceMessageRoutingResult::getSuccess()const
+{
+	return success_;
+}
+

+ 0 - 11
iot/src/model/GetThingModelTslRequest.cc

@@ -71,17 +71,6 @@ void GetThingModelTslRequest::setRealTripartiteKey(const std::string& realTripar
 	setParameter("RealTripartiteKey", realTripartiteKey);
 }
 
-std::string GetThingModelTslRequest::getResourceGroupId()const
-{
-	return resourceGroupId_;
-}
-
-void GetThingModelTslRequest::setResourceGroupId(const std::string& resourceGroupId)
-{
-	resourceGroupId_ = resourceGroupId;
-	setParameter("ResourceGroupId", resourceGroupId);
-}
-
 std::string GetThingModelTslRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 22 - 0
iot/src/model/GetThingTopoRequest.cc

@@ -27,6 +27,17 @@ GetThingTopoRequest::GetThingTopoRequest() :
 GetThingTopoRequest::~GetThingTopoRequest()
 {}
 
+std::string GetThingTopoRequest::getRealTenantId()const
+{
+	return realTenantId_;
+}
+
+void GetThingTopoRequest::setRealTenantId(const std::string& realTenantId)
+{
+	realTenantId_ = realTenantId;
+	setParameter("RealTenantId", realTenantId);
+}
+
 std::string GetThingTopoRequest::getAccessKeyId()const
 {
 	return accessKeyId_;
@@ -38,6 +49,17 @@ void GetThingTopoRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string GetThingTopoRequest::getRealTripartiteKey()const
+{
+	return realTripartiteKey_;
+}
+
+void GetThingTopoRequest::setRealTripartiteKey(const std::string& realTripartiteKey)
+{
+	realTripartiteKey_ = realTripartiteKey;
+	setParameter("RealTripartiteKey", realTripartiteKey);
+}
+
 std::string GetThingTopoRequest::getIotId()const
 {
 	return iotId_;

+ 11 - 0
iot/src/model/ListDeviceDistributeJobRequest.cc

@@ -27,6 +27,17 @@ ListDeviceDistributeJobRequest::ListDeviceDistributeJobRequest() :
 ListDeviceDistributeJobRequest::~ListDeviceDistributeJobRequest()
 {}
 
+std::string ListDeviceDistributeJobRequest::getJobId()const
+{
+	return jobId_;
+}
+
+void ListDeviceDistributeJobRequest::setJobId(const std::string& jobId)
+{
+	jobId_ = jobId;
+	setBodyParameter("JobId", jobId);
+}
+
 int ListDeviceDistributeJobRequest::getPageSize()const
 {
 	return pageSize_;

+ 8 - 0
iot/src/model/ListDeviceDistributeJobResult.cc

@@ -64,12 +64,20 @@ void ListDeviceDistributeJobResult::parse(const std::string &payload)
 			itemsObject.status = std::stoi(dataNodeJobInfoitems["Status"].asString());
 		if(!dataNodeJobInfoitems["Strategy"].isNull())
 			itemsObject.strategy = std::stoi(dataNodeJobInfoitems["Strategy"].asString());
+		if(!dataNodeJobInfoitems["SourceRegion"].isNull())
+			itemsObject.sourceRegion = dataNodeJobInfoitems["SourceRegion"].asString();
+		if(!dataNodeJobInfoitems["SourceInstanceName"].isNull())
+			itemsObject.sourceInstanceName = dataNodeJobInfoitems["SourceInstanceName"].asString();
 		auto allTargetInstanceConfigsNode = dataNodeJobInfoitems["TargetInstanceConfigs"]["targetInstanceConfigsItem"];
 		for (auto dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem : allTargetInstanceConfigsNode)
 		{
 			Data::Items::TargetInstanceConfigsItem targetInstanceConfigsObject;
 			if(!dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceId"].isNull())
 				targetInstanceConfigsObject.targetInstanceId = dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceId"].asString();
+			if(!dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetRegion"].isNull())
+				targetInstanceConfigsObject.targetRegion = dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetRegion"].asString();
+			if(!dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceName"].isNull())
+				targetInstanceConfigsObject.targetInstanceName = dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceName"].asString();
 			itemsObject.targetInstanceConfigs.push_back(targetInstanceConfigsObject);
 		}
 		data_.jobInfo.push_back(itemsObject);

+ 2 - 0
iot/src/model/ListJobResult.cc

@@ -57,6 +57,8 @@ void ListJobResult::parse(const std::string &payload)
 			dataObject.description = valueDatadataItem["Description"].asString();
 		if(!valueDatadataItem["Type"].isNull())
 			dataObject.type = valueDatadataItem["Type"].asString();
+		if(!valueDatadataItem["ScheduledTime"].isNull())
+			dataObject.scheduledTime = std::stol(valueDatadataItem["ScheduledTime"].asString());
 		data_.push_back(dataObject);
 	}
 	if(!value["Success"].isNull())

+ 2 - 0
iot/src/model/ListOTATaskByJobResult.cc

@@ -71,6 +71,8 @@ void ListOTATaskByJobResult::parse(const std::string &payload)
 			dataObject.iotId = valueDataSimpleOTATaskInfo["IotId"].asString();
 		if(!valueDataSimpleOTATaskInfo["UtcCreate"].isNull())
 			dataObject.utcCreate = valueDataSimpleOTATaskInfo["UtcCreate"].asString();
+		if(!valueDataSimpleOTATaskInfo["Timeout"].isNull())
+			dataObject.timeout = valueDataSimpleOTATaskInfo["Timeout"].asString();
 		data_.push_back(dataObject);
 	}
 	if(!value["Success"].isNull())

+ 0 - 11
iot/src/model/ListThingModelVersionRequest.cc

@@ -38,17 +38,6 @@ void ListThingModelVersionRequest::setAccessKeyId(const std::string& accessKeyId
 	setParameter("AccessKeyId", accessKeyId);
 }
 
-std::string ListThingModelVersionRequest::getResourceGroupId()const
-{
-	return resourceGroupId_;
-}
-
-void ListThingModelVersionRequest::setResourceGroupId(const std::string& resourceGroupId)
-{
-	resourceGroupId_ = resourceGroupId;
-	setParameter("ResourceGroupId", resourceGroupId);
-}
-
 std::string ListThingModelVersionRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 0 - 11
iot/src/model/ListThingTemplatesRequest.cc

@@ -38,17 +38,6 @@ void ListThingTemplatesRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
-std::string ListThingTemplatesRequest::getResourceGroupId()const
-{
-	return resourceGroupId_;
-}
-
-void ListThingTemplatesRequest::setResourceGroupId(const std::string& resourceGroupId)
-{
-	resourceGroupId_ = resourceGroupId;
-	setParameter("ResourceGroupId", resourceGroupId);
-}
-
 std::string ListThingTemplatesRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 2 - 0
iot/src/model/PrintByTemplateResult.cc

@@ -50,6 +50,8 @@ void PrintByTemplateResult::parse(const std::string &payload)
 		data_.id = dataNode["Id"].asString();
 	if(!dataNode["RetryCount"].isNull())
 		data_.retryCount = std::stoi(dataNode["RetryCount"].asString());
+	if(!dataNode["MaxRetryCount"].isNull())
+		data_.maxRetryCount = std::stoi(dataNode["MaxRetryCount"].asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

+ 22 - 0
iot/src/model/QueryDeviceBySQLRequest.cc

@@ -27,6 +27,17 @@ QueryDeviceBySQLRequest::QueryDeviceBySQLRequest() :
 QueryDeviceBySQLRequest::~QueryDeviceBySQLRequest()
 {}
 
+std::string QueryDeviceBySQLRequest::getRealTenantId()const
+{
+	return realTenantId_;
+}
+
+void QueryDeviceBySQLRequest::setRealTenantId(const std::string& realTenantId)
+{
+	realTenantId_ = realTenantId;
+	setParameter("RealTenantId", realTenantId);
+}
+
 std::string QueryDeviceBySQLRequest::getSQL()const
 {
 	return sQL_;
@@ -38,6 +49,17 @@ void QueryDeviceBySQLRequest::setSQL(const std::string& sQL)
 	setParameter("SQL", sQL);
 }
 
+std::string QueryDeviceBySQLRequest::getRealTripartiteKey()const
+{
+	return realTripartiteKey_;
+}
+
+void QueryDeviceBySQLRequest::setRealTripartiteKey(const std::string& realTripartiteKey)
+{
+	realTripartiteKey_ = realTripartiteKey;
+	setParameter("RealTripartiteKey", realTripartiteKey);
+}
+
 std::string QueryDeviceBySQLRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 106 - 0
iot/src/model/QueryEdgeInstanceMessageRoutingRequest.cc

@@ -0,0 +1,106 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingRequest.h>
+
+using AlibabaCloud::Iot::Model::QueryEdgeInstanceMessageRoutingRequest;
+
+QueryEdgeInstanceMessageRoutingRequest::QueryEdgeInstanceMessageRoutingRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "QueryEdgeInstanceMessageRouting")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+QueryEdgeInstanceMessageRoutingRequest::~QueryEdgeInstanceMessageRoutingRequest()
+{}
+
+std::string QueryEdgeInstanceMessageRoutingRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string QueryEdgeInstanceMessageRoutingRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+int QueryEdgeInstanceMessageRoutingRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int QueryEdgeInstanceMessageRoutingRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+
+std::string QueryEdgeInstanceMessageRoutingRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string QueryEdgeInstanceMessageRoutingRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string QueryEdgeInstanceMessageRoutingRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void QueryEdgeInstanceMessageRoutingRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 124 - 0
iot/src/model/QueryEdgeInstanceMessageRoutingResult.cc

@@ -0,0 +1,124 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/QueryEdgeInstanceMessageRoutingResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryEdgeInstanceMessageRoutingResult::QueryEdgeInstanceMessageRoutingResult() :
+	ServiceResult()
+{}
+
+QueryEdgeInstanceMessageRoutingResult::QueryEdgeInstanceMessageRoutingResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryEdgeInstanceMessageRoutingResult::~QueryEdgeInstanceMessageRoutingResult()
+{}
+
+void QueryEdgeInstanceMessageRoutingResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stoi(dataNode["Total"].asString());
+	if(!dataNode["PageSize"].isNull())
+		data_.pageSize = std::stoi(dataNode["PageSize"].asString());
+	if(!dataNode["CurrentPage"].isNull())
+		data_.currentPage = std::stoi(dataNode["CurrentPage"].asString());
+	auto allMessageRouteListNode = dataNode["MessageRouteList"]["MessageRoute"];
+	for (auto dataNodeMessageRouteListMessageRoute : allMessageRouteListNode)
+	{
+		Data::MessageRoute messageRouteObject;
+		if(!dataNodeMessageRouteListMessageRoute["RouteId"].isNull())
+			messageRouteObject.routeId = std::stoi(dataNodeMessageRouteListMessageRoute["RouteId"].asString());
+		if(!dataNodeMessageRouteListMessageRoute["Name"].isNull())
+			messageRouteObject.name = dataNodeMessageRouteListMessageRoute["Name"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["TopicFilter"].isNull())
+			messageRouteObject.topicFilter = dataNodeMessageRouteListMessageRoute["TopicFilter"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["SourceType"].isNull())
+			messageRouteObject.sourceType = dataNodeMessageRouteListMessageRoute["SourceType"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["SourceData"].isNull())
+			messageRouteObject.sourceData = dataNodeMessageRouteListMessageRoute["SourceData"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["TargetType"].isNull())
+			messageRouteObject.targetType = dataNodeMessageRouteListMessageRoute["TargetType"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["TargetData"].isNull())
+			messageRouteObject.targetData = dataNodeMessageRouteListMessageRoute["TargetData"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["GmtCreate"].isNull())
+			messageRouteObject.gmtCreate = dataNodeMessageRouteListMessageRoute["GmtCreate"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["GmtModified"].isNull())
+			messageRouteObject.gmtModified = dataNodeMessageRouteListMessageRoute["GmtModified"].asString();
+		if(!dataNodeMessageRouteListMessageRoute["GmtCreateTimestamp"].isNull())
+			messageRouteObject.gmtCreateTimestamp = std::stol(dataNodeMessageRouteListMessageRoute["GmtCreateTimestamp"].asString());
+		if(!dataNodeMessageRouteListMessageRoute["GmtModifiedTimestamp"].isNull())
+			messageRouteObject.gmtModifiedTimestamp = std::stol(dataNodeMessageRouteListMessageRoute["GmtModifiedTimestamp"].asString());
+		auto routeContextNode = value["RouteContext"];
+		if(!routeContextNode["SourceFcServiceName"].isNull())
+			messageRouteObject.routeContext.sourceFcServiceName = routeContextNode["SourceFcServiceName"].asString();
+		if(!routeContextNode["SourceFcFunctionName"].isNull())
+			messageRouteObject.routeContext.sourceFcFunctionName = routeContextNode["SourceFcFunctionName"].asString();
+		if(!routeContextNode["SourceStreamName"].isNull())
+			messageRouteObject.routeContext.sourceStreamName = routeContextNode["SourceStreamName"].asString();
+		if(!routeContextNode["SourceApplicationName"].isNull())
+			messageRouteObject.routeContext.sourceApplicationName = routeContextNode["SourceApplicationName"].asString();
+		if(!routeContextNode["TargetFcServiceName"].isNull())
+			messageRouteObject.routeContext.targetFcServiceName = routeContextNode["TargetFcServiceName"].asString();
+		if(!routeContextNode["TargetFcFunctionName"].isNull())
+			messageRouteObject.routeContext.targetFcFunctionName = routeContextNode["TargetFcFunctionName"].asString();
+		if(!routeContextNode["TargetStreamName"].isNull())
+			messageRouteObject.routeContext.targetStreamName = routeContextNode["TargetStreamName"].asString();
+		if(!routeContextNode["TargetApplicationName"].isNull())
+			messageRouteObject.routeContext.targetApplicationName = routeContextNode["TargetApplicationName"].asString();
+		if(!routeContextNode["Qos"].isNull())
+			messageRouteObject.routeContext.qos = routeContextNode["Qos"].asString();
+		data_.messageRouteList.push_back(messageRouteObject);
+	}
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+QueryEdgeInstanceMessageRoutingResult::Data QueryEdgeInstanceMessageRoutingResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryEdgeInstanceMessageRoutingResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryEdgeInstanceMessageRoutingResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryEdgeInstanceMessageRoutingResult::getSuccess()const
+{
+	return success_;
+}
+

+ 2 - 0
iot/src/model/QueryJobResult.cc

@@ -56,6 +56,8 @@ void QueryJobResult::parse(const std::string &payload)
 		data_.jobDocument = dataNode["JobDocument"].asString();
 	if(!dataNode["UtcModified"].isNull())
 		data_.utcModified = dataNode["UtcModified"].asString();
+	if(!dataNode["ScheduledTime"].isNull())
+		data_.scheduledTime = std::stol(dataNode["ScheduledTime"].asString());
 	auto rolloutConfigNode = dataNode["RolloutConfig"];
 	if(!rolloutConfigNode["MaximumPerMinute"].isNull())
 		data_.rolloutConfig.maximumPerMinute = std::stoi(rolloutConfigNode["MaximumPerMinute"].asString());

+ 95 - 0
iot/src/model/RefreshDeviceTunnelSharePasswordRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordRequest.h>
+
+using AlibabaCloud::Iot::Model::RefreshDeviceTunnelSharePasswordRequest;
+
+RefreshDeviceTunnelSharePasswordRequest::RefreshDeviceTunnelSharePasswordRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "RefreshDeviceTunnelSharePassword")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+RefreshDeviceTunnelSharePasswordRequest::~RefreshDeviceTunnelSharePasswordRequest()
+{}
+
+std::string RefreshDeviceTunnelSharePasswordRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void RefreshDeviceTunnelSharePasswordRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string RefreshDeviceTunnelSharePasswordRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void RefreshDeviceTunnelSharePasswordRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string RefreshDeviceTunnelSharePasswordRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void RefreshDeviceTunnelSharePasswordRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string RefreshDeviceTunnelSharePasswordRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void RefreshDeviceTunnelSharePasswordRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string RefreshDeviceTunnelSharePasswordRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void RefreshDeviceTunnelSharePasswordRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string RefreshDeviceTunnelSharePasswordRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void RefreshDeviceTunnelSharePasswordRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

+ 72 - 0
iot/src/model/RefreshDeviceTunnelSharePasswordResult.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/RefreshDeviceTunnelSharePasswordResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+RefreshDeviceTunnelSharePasswordResult::RefreshDeviceTunnelSharePasswordResult() :
+	ServiceResult()
+{}
+
+RefreshDeviceTunnelSharePasswordResult::RefreshDeviceTunnelSharePasswordResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+RefreshDeviceTunnelSharePasswordResult::~RefreshDeviceTunnelSharePasswordResult()
+{}
+
+void RefreshDeviceTunnelSharePasswordResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Password"].isNull())
+		password_ = value["Password"].asString();
+
+}
+
+std::string RefreshDeviceTunnelSharePasswordResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string RefreshDeviceTunnelSharePasswordResult::getCode()const
+{
+	return code_;
+}
+
+bool RefreshDeviceTunnelSharePasswordResult::getSuccess()const
+{
+	return success_;
+}
+
+std::string RefreshDeviceTunnelSharePasswordResult::getPassword()const
+{
+	return password_;
+}
+

+ 150 - 0
iot/src/model/ReleaseProductRequest.cc

@@ -0,0 +1,150 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/ReleaseProductRequest.h>
+
+using AlibabaCloud::Iot::Model::ReleaseProductRequest;
+
+ReleaseProductRequest::ReleaseProductRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "ReleaseProduct")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ReleaseProductRequest::~ReleaseProductRequest()
+{}
+
+int ReleaseProductRequest::get_Template()const
+{
+	return _template_;
+}
+
+void ReleaseProductRequest::set_Template(int _template)
+{
+	_template_ = _template;
+	setParameter("_Template", std::to_string(_template));
+}
+
+std::string ReleaseProductRequest::getCategoryKey()const
+{
+	return categoryKey_;
+}
+
+void ReleaseProductRequest::setCategoryKey(const std::string& categoryKey)
+{
+	categoryKey_ = categoryKey;
+	setParameter("CategoryKey", categoryKey);
+}
+
+std::string ReleaseProductRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void ReleaseProductRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string ReleaseProductRequest::getTemplateIdentifier()const
+{
+	return templateIdentifier_;
+}
+
+void ReleaseProductRequest::setTemplateIdentifier(const std::string& templateIdentifier)
+{
+	templateIdentifier_ = templateIdentifier;
+	setParameter("TemplateIdentifier", templateIdentifier);
+}
+
+std::string ReleaseProductRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void ReleaseProductRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string ReleaseProductRequest::getTemplateName()const
+{
+	return templateName_;
+}
+
+void ReleaseProductRequest::setTemplateName(const std::string& templateName)
+{
+	templateName_ = templateName;
+	setParameter("TemplateName", templateName);
+}
+
+std::string ReleaseProductRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void ReleaseProductRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string ReleaseProductRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void ReleaseProductRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string ReleaseProductRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void ReleaseProductRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string ReleaseProductRequest::getCategoryName()const
+{
+	return categoryName_;
+}
+
+void ReleaseProductRequest::setCategoryName(const std::string& categoryName)
+{
+	categoryName_ = categoryName;
+	setParameter("CategoryName", categoryName);
+}
+
+std::string ReleaseProductRequest::getBizTenantId()const
+{
+	return bizTenantId_;
+}
+
+void ReleaseProductRequest::setBizTenantId(const std::string& bizTenantId)
+{
+	bizTenantId_ = bizTenantId;
+	setParameter("BizTenantId", bizTenantId);
+}
+

+ 65 - 0
iot/src/model/ReleaseProductResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/ReleaseProductResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+ReleaseProductResult::ReleaseProductResult() :
+	ServiceResult()
+{}
+
+ReleaseProductResult::ReleaseProductResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ReleaseProductResult::~ReleaseProductResult()
+{}
+
+void ReleaseProductResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+
+}
+
+std::string ReleaseProductResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string ReleaseProductResult::getCode()const
+{
+	return code_;
+}
+
+bool ReleaseProductResult::getSuccess()const
+{
+	return success_;
+}
+

+ 8 - 0
iot/src/model/SyncSpeechByCombinationResult.cc

@@ -44,6 +44,14 @@ void SyncSpeechByCombinationResult::parse(const std::string &payload)
 		data_.id = dataNode["Id"].asString();
 	if(!dataNode["RetryCount"].isNull())
 		data_.retryCount = std::stoi(dataNode["RetryCount"].asString());
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!dataNode["MaxRetryCount"].isNull())
+		data_.maxRetryCount = std::stoi(dataNode["MaxRetryCount"].asString());
+	if(!dataNode["DeviceErrorCode"].isNull())
+		data_.deviceErrorCode = dataNode["DeviceErrorCode"].asString();
+	if(!dataNode["DeviceErrorMessage"].isNull())
+		data_.deviceErrorMessage = dataNode["DeviceErrorMessage"].asString();
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

+ 172 - 0
iot/src/model/UpdateEdgeInstanceMessageRoutingRequest.cc

@@ -0,0 +1,172 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingRequest.h>
+
+using AlibabaCloud::Iot::Model::UpdateEdgeInstanceMessageRoutingRequest;
+
+UpdateEdgeInstanceMessageRoutingRequest::UpdateEdgeInstanceMessageRoutingRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "UpdateEdgeInstanceMessageRouting")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+UpdateEdgeInstanceMessageRoutingRequest::~UpdateEdgeInstanceMessageRoutingRequest()
+{}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getSourceData()const
+{
+	return sourceData_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setSourceData(const std::string& sourceData)
+{
+	sourceData_ = sourceData;
+	setParameter("SourceData", sourceData);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getTargetType()const
+{
+	return targetType_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setTargetType(const std::string& targetType)
+{
+	targetType_ = targetType;
+	setParameter("TargetType", targetType);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getSourceType()const
+{
+	return sourceType_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setSourceType(const std::string& sourceType)
+{
+	sourceType_ = sourceType;
+	setParameter("SourceType", sourceType);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getTopicFilter()const
+{
+	return topicFilter_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setTopicFilter(const std::string& topicFilter)
+{
+	topicFilter_ = topicFilter;
+	setParameter("TopicFilter", topicFilter);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+long UpdateEdgeInstanceMessageRoutingRequest::getRouteId()const
+{
+	return routeId_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setRouteId(long routeId)
+{
+	routeId_ = routeId;
+	setParameter("RouteId", std::to_string(routeId));
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getTargetData()const
+{
+	return targetData_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setTargetData(const std::string& targetData)
+{
+	targetData_ = targetData;
+	setParameter("TargetData", targetData);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getName()const
+{
+	return name_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setName(const std::string& name)
+{
+	name_ = name;
+	setParameter("Name", name);
+}
+
+std::string UpdateEdgeInstanceMessageRoutingRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+int UpdateEdgeInstanceMessageRoutingRequest::getTargetIotHubQos()const
+{
+	return targetIotHubQos_;
+}
+
+void UpdateEdgeInstanceMessageRoutingRequest::setTargetIotHubQos(int targetIotHubQos)
+{
+	targetIotHubQos_ = targetIotHubQos;
+	setParameter("TargetIotHubQos", std::to_string(targetIotHubQos));
+}
+

+ 65 - 0
iot/src/model/UpdateEdgeInstanceMessageRoutingResult.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * 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.
+ */
+
+#include <alibabacloud/iot/model/UpdateEdgeInstanceMessageRoutingResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+UpdateEdgeInstanceMessageRoutingResult::UpdateEdgeInstanceMessageRoutingResult() :
+	ServiceResult()
+{}
+
+UpdateEdgeInstanceMessageRoutingResult::UpdateEdgeInstanceMessageRoutingResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateEdgeInstanceMessageRoutingResult::~UpdateEdgeInstanceMessageRoutingResult()
+{}
+
+void UpdateEdgeInstanceMessageRoutingResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string UpdateEdgeInstanceMessageRoutingResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string UpdateEdgeInstanceMessageRoutingResult::getCode()const
+{
+	return code_;
+}
+
+bool UpdateEdgeInstanceMessageRoutingResult::getSuccess()const
+{
+	return success_;
+}
+